FILTER 関数を使用すると、定義した条件に基づいてデータの範囲をフィルター処理できます。
次の例では、数式 =FILTER(A5:D20,C5:C20=H2,"") を 使用して、セル H2 で選択されている Apple のすべてのレコードを返し、Apple がない場合は空の文字列 ("") を返します。
構文
FILTER 関数は、ブール値 (True または False) の配列に基づいて配列をフィルター処理します。
=FILTER(array,include,[if_empty])
| 引数 | 説明 |
|---|---|
|
配列 必須 |
フィルター処理の対象となる配列または範囲 |
|
include 必須 |
高さまたは幅が array と同じブール値の配列 |
|
[if_empty] 省略可能 |
include 配列内のすべての値が空の場合 (フィルターが何も返さない場合) に返す値 |
注
- 配列は、値の行、値の列、または値の行と列の組み合わせと考えることができます。 上記の例では、FILTER 式の対象のソース配列は範囲 A5:D20 です。
- FILTER 関数では配列が返され、式の最終結果である場合はスピルします。 つまり、Enter キーを押すと、適切なサイズの配列範囲が動的に作成されます。 サポートしているデータが Excel テーブル内にある場合、構造化参照を使用すると、配列範囲のデータの追加または削除に応じて、配列のサイズが自動的に変更されます。 詳しくは、スピルした配列の動作に関する記事をご覧ください。
- データセットから空の値が返る可能性がある場合は、3 番目の引数 ([if_empty]) を使用します。 そうしないと、Excel では現在空の配列がサポートされていないため、 #CALC! エラーが発生 します。
- include 引数の値がエラー (#N/A、#VALUE など) であるか、ブール型 (Boolean) に変換できない場合、FILTER 関数はエラーを返します。
- Excel では、ブック間の動的配列のサポートが制限されており、このシナリオは双方のブックが開いているときにのみサポートされます。 ソース ブックを閉じると、リンクされた動的配列数式は、更新時 に #REF! エラー を返します。
例
複数の条件を返すために使用されている FILTER
この場合、乗算演算子 (*) を使用して、Apple を持つ配列範囲 (A5:D20) 内のすべての値を返 します 。 =FILTER(A5:D20,(C5:C20=H1)*(A5:A20=H2),""))。
複数の条件を返して並べ替えるために使用されている FILTER
この場合、SORT 関数で前の FILTER 関数を使用して、Apples と が東リージョンにある配列範囲内のすべての値 (A5:D20) を返し、次に単位を降順で並べ替えます: =SORT(FILTER(A5:D20,(C5:C20=H1)*(A5:A20=H2),"),"),4,-1)
この場合、FILTER 関数と加算演算子 (+) を使用して、Apples OR が東のリージョンにある配列範囲 (A5:D20) 内のすべての値を返し、次に降順で単位を並べ替えます: =SORT(FILTER(A5:D20,(C5:C20=H1)+(A5:A20=H2),""),4,-1)。
関数は 1 つのセルにのみ存在し、結果は隣接したセルにスピルするので、どの関数にも絶対参照は必要ないことに注意してください。
補足説明
Excel Tech Community の専門家にいつでも依頼したり、コミュニティでサポートを受けたりすることができます。