メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excel SCAN関数 (365)

Author Zhoumandy Last modified

SCAN関数は、配列内の各値にLAMBDA関数を適用し、配列をスキャンする際に中間値を含む配列を返します。

scan-function 1


構文

=REDUCE ([initial_value],配列,lambda(累積値, 値))


引数

  • 初期値(オプション): 累積値の開始値です。
  • 配列(必須): スキャンされる配列です。
  • ラムダ (必須): 配列をスキャンするために適用されるカスタムLAMBDA関数です。
    • 累積値(必須): 合計され、最終結果として返される値です。
    • (必須): 配列内の各要素に適用される計算です。

戻り値

SCAN関数は結果の配列を返します。


関数に関する注意

  1. SCAN関数はMicrosoft 365用のExcelで新たに導入されました。そのため、以前のバージョンのExcelでは利用できません。Microsoft 365用のExcelでは新しい動的配列数式が導入されており、SCAN数式を配列数式として入力するためにCtrl+Shift+Enterを使用する必要はありません。
  2. The #VALUE! 以下のいずれかの状況が発生した場合、エラー値が表示されます:
    • 無効なLAMBDA関数が指定された場合;
    • パラメータの数が間違っている場合。
  3. initial_value引数は、累積値パラメータの開始値を設定するために使用されます。最初の結果が返された後、initial_valueは結果値に変わります。そして、このプロセスは配列内のすべての要素に対して列から行へと反復処理を行います。テキストを扱う場合は、初期値を""に設定してください。

例1:

下のスクリーンショットに示すように、データの配列があります。セル内の値とその隣接するセルの値を列から行にかけて順次加算したい場合は、次の手順を実行してください:

次の数式をセルF6にコピーし、Enterキーを押して結果を得てください。

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

scan-function 2

注: 上記の例では、SCAN関数は数値を扱い、提供された initial_value引数は0に設定されています。この場合、省略して空白に置き換えることもできます。例えば、セルF6の数式は次のように変更できます:

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

例2:

下のスクリーンショットに示すように、データの配列があります。与えられた配列内の文字を連結し、中間値を含む配列を返したい場合は、次の手順を実行してください:

次の数式をセル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関数を適用し、累積値内の合計値を返します。これにより、配列が累積値に縮小されます。