

- 関連記事
Windows・自作パソコン・スマホ・ソフトウェア等‥の設定操作を紹介してます。
black #000000 |
gray #808080 |
||
silver #c0c0c0 |
white #ffffff |
||
maroon #800000 |
red #ff0000 |
||
purple #800080 |
fuchsia #ff00ff |
||
green #008000 |
lime #00ff00 |
||
olive #808000 |
yellow #ffff00 |
||
navy #000080 |
blue #0000ff |
||
teal #008080 |
aqua #00ffff |
1 |
2 |
3 |
横の配列
{}の中に,カンマで区切って各要素を入れます。
{1,2,3}
1 | 2 | 3 |
そこで、ここまでの例で示した「含む」のほとんどは
縦の配列であることを理解してください。
E2:E51="東京都"
これは、
{FALSE;FALSE;…;TRUE,FALSE;…}
行数分の縦の配列になります、
条件に合致した行はTRUE、それ以外はFALSEです。
そして、TRUEは1、FALSEは0として代用できます。
そこで、「含む」に直接この配列を指定してみましょう。
「含む」の行数は元配列と同じ行数に
しなければならないので、ここでは5行だけにしました。
=FILTER(A2:E6,{1;0;1;0;1})
「含む」に指定した配列の1(TRUE)の行だけが出力されました。
とはいえ、このような使い方をすることはまずないでしょう。
では、横の配列を指定してみましょう
=FILTER(A2:E6,{1,0,1,0,1})
見事に元範囲の1,3,5列だけが出力されました。
これは使えそうです。
FILTER関数の結果をFILTERすれば、
条件で絞り込んだ後に必要な列だけに絞り込めます。
FILTER関数をネストして表示する列を選択
=FILTER(FILTER(A2:E51,C2:C51<30),{1,0,1,0,0})
外側のFILTER関数に指定した配列通りの列のみ出力されました。
これを使えば、元表から欲しい列だけにすることができます。
注意点としては、「含む」に指定する
配列の大きさは、元表の列数に必ず合わせることです。
表示する列の選択を自動化する
配列{1,0,1,0,0}を自動的に作成すれば良いだけです。
FILTER関数を入れる上の行に事前に見出し文字列を入れておくことで、
配列{1,0,1,0,0}を見出し文字列から自動生成します。
=COUNTIF(G1:H1,A1:E1)
この数式はスピルして、
1 | 0 | 1 | 0 | 0 |
このようになりますので、これをそのま引数に指定できます。
=FILTER(FILTER(A2:E51,C2:C51<30),COUNTIF(G1:H1,A1:E1))
FILTER関数の結果を他の関数で使う
FILTER関数が返すものは配列です。
したがって、配列を受け入れる関数の引数として使う事が出来ます。
"東京都"の"男"の平均年齢を出して見ましょう。
もちろん、AVERAGEIFSで簡単に求められます。
=AVERAGEIFS(C2:C51,B2:B51,"男",E2:E51,"東京都")
あくまで、ここまでの総復習としてやってみましょう。
=AVERAGE(FILTER(FILTER(A2:E51,(B2:B51="男")*
(E2:E51="東京都")),COUNTIF(C1,A1:E1)))
この数式は解読してみてください。
ここまでに説明してきたことを組み合わせて
使っているだけです。
この数式が読めれば、FILTER関数はほぼ確実に
理解できたと言えるでしょう。
大きく変わろうとしています。
FILTER関数は、その中核となる関数と言えると思います。
= LET (name1, name_value1, name2, name_value2, ……calculation) |
・name:変数の名前。文字で始まる必要があり、
数式の出力や範囲構文と競合してはならない
・name_value:“name”に割り当てる値
・calculation:変数を利用した計算。
最後の引数はこれでなければならない
変数は最大126個が利用でき、その数だけ
名前と値のペアを引数に指定する。
最後の引数は変数を利用した
計算式(calculation)である必要があるため、
引数の数はかならず奇数個になる(最短の引数は3)。
たとえば以下の売り上げデータから社員名が
“Fred”のものだけを抽出したい場合は以下のようになります。
LET を利用しない場合: =IF(ISBLANK(FILTER(A2:D8,A2:A8="Fred")),"-", FILTER(A2:D8,A2:A8="Fred")) LETを利用した場合: =LET(filterCriteria,"Fred”,filteredRange,FILTER (A2:D8,A2:A8=filterCriteria), IF(ISBLANK(filteredRange),"-",filteredRange)) |
“Fred”や“FILTER(A2:D8,A2:A8=……)”を繰り返し記述する
代わりにわかりやすい変数名を付けられるので、
あとでフィルタリングの条件を変更する
必要が生じても容易に式を再利用できる。
計算速度も「LET」関数を
利用した方が2倍速いという。
正式版の「LET」関数では、“name1”“name2”などで宣言した
変数を“calculation”引数でオートコンプリートできるようになった。
データ参照の競合を防ぐため
変数の名前に“.”(ドット)を利用できなくしたり、
関数名のローカライゼーションが廃止されたのも、
“Office Insider”のフィードバックを取り入れた成果です。
どの言語の「Excel」でも
「LET」という名前で関数を利用できます。
「LET」関数は「Office 365」または「Microsoft 365」の「Excel」
「Excel 2021」で利用可能。Webを含めたすべての
プラットフォームの“Current”チャネルで利用できます。