FLATTEN 函數

套用到
Microsoft 365 Excel Mac 版 Microsoft 365 Excel

FLATTEN 函數可簡化巢狀陣列 () 陣列的內部陣列,方法是將其內部陣列取代為其內容。

語法

FLATTEN 函數會從陣列中移除巢狀的一或多個內部層。

FLATTEN 函數的語法為:

FLATTEN (陣列, [pad_value], [levels])

引數 說明
陣列
(必要)
您想要展平的巢狀陣列,或包含巢狀陣列的儲存格或範圍的參照。
pad_value 用於展平時填滿空白位置的值會產生非矩形結果。 根據預設,空白倉位會填入 #N/A 錯誤。
層級 要從陣列內部移除的圖層數。 根據預設,會移除一層。 輸入 0 以移除每一層巢狀。

注意

  • FLATTEN 對非陣列的值沒有作用。 =FLATTEN(42) 傳回 42。
  • 如果 層 次大於陣列中的層數,則會移除每一層

範例

複製範例資料,並將其貼到新 Excel 工作表的儲存格 A1 中。 如有需要,您可以調整欄寬來查看所有資料。

範例 1

將巢狀陣列的欄展開成格線。 欄 A 中的每一個儲存格都含有三個值的巢狀列。

複製整個表格,並將其貼到新工作表的儲存格 A1。 FLATTEN 公式出現在 A6 並將平面 3 x 3 格線溢出到 A6:C8。

資料
={{1,2,3}}
={{4,5,6}}
={{7,8,9}}
公式
=FLATTEN (A2:A4)

下圖顯示結果。

在一欄儲存格上使用 FLATTEN,其中每一欄都包含巢狀列,產生平面 3 x 3 格線

範例 2

當巢狀陣列大小不同時填補間隙。 欄 A 中的每一個儲存格都有一個巢狀列,但兩列的長度並不相同。

資料
={{1,2,3}}
={{4,5}}

將它們壓平會產生鋸齒狀結果。 Excel 陣列必須是矩形,才能填入遺漏的位置,預設情況下是 #N/A 錯誤,或是您在 pad_value 中提供的值。

因為每個結果都會溢出,所以請在有兩個空白列和三個空白欄的儲存格中輸入公式。

=FLATTEN(A2:A3) 傳回空白儲存格中的 #N/A (預設) 。

=FLATTEN(A2:A3,0) 在空白儲存格中傳回 0。

=FLATTEN(A2:A3,"") 傳回空白儲存格中的空白文字。

下圖顯示結果。

在 FLATTEN 中使用 pad_value 引數取代鋸齒狀結果中的 #N/A 錯誤