【新関数】指定した会社の売上明細をFILTER関数で抽出する

A〜B列に売上明細が入力されています。このときに、関数を使って、E1セルに入力した会社「A社」の明細を抽出して、金額をE4セル以下に表示させたいと思います。

少し前までは、このような処理は、フィルターを使うか、複雑な数式を組む必要がありました。

でも、今は、Microsoft365で新しく導入された「FILTER関数」を使うことで、比較的簡単に明細を抽出することができます。

FILTER関数を使って条件に合う複数の明細を抽出する

さきほどの図では、E4セルに次の数式が入力されています。

=FILTER(B4:B12,A4:A12=E1)

ポイントは、「数式をコピー・貼り付けしていない」というところです。数式をE4セルに入れただけで、E4セル〜E6セルに値が表示されています。

このように、数式を入力したセルだけでなく、その下や右のセルにも値が自動的に入力されることを「スピル」と呼びます。

「スピル」は、英語で「spill」と書きます。日本語に訳すと「こぼれる」「あふれ出る」というような意味があります。数式を入れると、その他のセルに値が「あふれる」イメージから名づけられたのだろうと思います。

数式の意味

この数式は次のような意味があります。

引数内容意味
1つめの引数B4:B12表示する(候補となる)元データを指定します。
2つめの引数A4:A12=E1表示するデータの条件を指定します。

1つ目の引数で指定した元データのうち、2つ目の引数で指定した条件を満たすデータだけが表示されます。

2つめの引数で指定している条件

少しややこしいのが、2つめの引数です。

2つめの引数は、いわゆる「配列数式」の形の数式です。

配列数式というのは、「1つの数式」で「複数の数式」を同時に入力するような数式の入力方法です。

たとえば、今回、入力されている「A4:A12=E1」というのは、イメージ的には、次のように、9つの数式を同時に入力しているイメージです。

数式のイメージ 判定結果
A4=E1→FALSE
A5=E1→FALSE
A6=E1→FALSE
A7=E1→FALSE
A8=E1→TRUE
A9=E1→FALSE
A10=E1→TRUE
A11=E1→TRUE
A12=E1→FALSE

要は、「A4:A12=E1」という数式の「=」の左側を「A4」「A5」・・・「A12」に分解して、「A4=E1」「A5=E1」・・・「A12=E1」という9つの数式を同時に入力している、と考えてください。

そして、1つ目の引数で指定したセル範囲と、比較して、条件を満たしている行だけを表示します。

1つめの引数で指定したセル範囲2つめの引数の判定結果表示するかどうか
27,374FALSE表示しない
69,909FALSE表示しない
98,158FALSE表示しない
40,632FALSE表示しない
22,658TRUE表示する
35,735FALSE表示しない
66,469TRUE表示する
70,542TRUE表示する
92,651FALSE表示しない

このようにして、条件を満たす3つのデータ「22,658」「66,469」「70,542」が表示されます。