Skip to main content

Kutools for Office — 一套工具,五種功能。完成更多工作。

Excel SCAN 函數 (365)

Author Zhoumandy Last modified

SCAN 函數會將 LAMBDA 函數應用於陣列中的每個值,並返回一個包含掃描陣列時的中間值的陣列。

scan-function 1


語法

=REDUCE ([初始值],陣列,lambda(累加器, 值))


參數

  • 初始值(可選):累加器的起始值。
  • 陣列(必填):要掃描的陣列。
  • Lambda (必填):用於掃描陣列的自定義 LAMBDA 函數。
    • 累加器(必填):總計後返回的最終結果值。
    • (必填):應用於陣列中每個元素的計算。

返回值

SCAN 函數返回一個結果陣列。


函數說明

  1. SCAN 函數是新引入到 Excel for Microsoft 365 的功能,因此在早期版本的 Excel 中不可用。新的動態陣列公式已在 Excel for Microsoft 365 中引入,這意味著無需使用 Ctrl+Shift+Enter 將 SCAN 公式作為陣列公式輸入。
  2. 如果出現以下情況之一,則會發生 #VALUE! 錯誤值:
    • 提供了無效的 LAMBDA 函數;
    • 提供了錯誤的參數數量。
  3. 初始值參數用於設置累加器參數的起始值。返回第一個結果後,初始值變為結果值。然後該過程遍歷陣列中的所有元素,從列到行。如果您正在處理文本,請將初始值設置為""

範例一:

如下圖所示,有一個數據陣列。我希望從列到行,持續將每個單元格中的值與其相鄰單元格的值相加,請執行以下操作:

請將以下公式複製到 F6 單元格中,然後按 Enter 鍵以獲取結果。

=SCAN (0,B6:D9,LAMBDA(a,b,a+b))

scan-function 2

注意:在上面的例子中,SCAN 函數處理的是數字,並且提供的 初始值參數設置為 0。在此情況下,它也可以省略並用空格代替。例如,F6 單元格中的公式可以更改為:

=SCAN ( ,B6:D9,LAMBDA(a,b,a+b))

範例二:

如下圖所示,有一個數據陣列。我希望連接給定陣列中的字符,並返回包含中間值的陣列,請執行以下操作:

請將以下公式複製到 F6 單元格中,然後按 Enter 鍵以獲取結果。

=SCAN ("",B6:D7,LAMBDA(a,b,a&b))

scan-function 3

相關函數:

  • Excel MAP 函數
    MAP 函數應用 LAMBDA 函數來創建新值,並返回一個由將供應陣列中的每個值映射到新值形成的陣列。

  • Excel LAMBDA 函數
    Excel LAMBDA 函數用於創建可在整個工作簿中重複使用的自定義函數。

  • Excel REDUCE 函數
    REDUCE 函數將 LAMBDA 函數應用於陣列中的每個值,並返回累加器中的總值,將陣列減少為累積值。