あおいです。
今回は数式を変数に格納して数式の見やすさ(可読性)を改善する方法をお話します。
IF関数において、VLOOKUP関数のように同じ数式を何回も使う時が多くありませんか?
例えば、
=IF(VLOOKUP([検索値],[検索範囲A],[列番号],[完全一致])=””,0,IF(VLOOKUP([検索値],[検索範囲A],[列番号],[完全一致]))
のように、VLOOKUP([検索値],[検索範囲A],[列番号],[完全一致])が2回使われてたりしますよね。
これだけでも数式が長く感じます。
もし、この関数を変数Fに格納することができたら、
=IF(F=””,0,F)
のようにかなり短くなって可読性が上がるのではないでしょうか。
数式の意味としてはFが空白ならば0、空白以外ならFとなります。
では実際に、数式を変数に格納する関数を使ってみましょう。今回使う関数はLET関数です。
=LET([変数1],[変数に格納する数式1],[計算式])
複数個の変数を使いたい場合には、
=LET([変数1],[変数に格納する数式1],[変数2],[変数に格納する数式2],[計算式])
のように増やしていきます。
これだけでは分からないと思うので、先程のVLOOKUP関数を当ててみましょう。
変数はFとします。
=LET(F,VLOOKUP([検索値],[検索範囲A],[列番号],[完全一致]),IF(F=””,0,F))
いかがでしょうか。だいぶスッキリしたと思います。
これを応用するといろんな事ができるようになります。
Microsoftの新機能ガイドでLET関数を調べた際に使われている表を使って実際にやってみましょう。
テーブル名は「利益一覧」です。
今回は、この利益一覧から社員Fredの北部地域の利益一覧を利益が少ない順で昇順にした結果に対して、空白のセルがあれば「-」(ハイフン)に変え、そもそも検索した結果が1件もなければ(エラーになれば)、「なし」を出力する関数を作りたいと思います。
関数結果のイメージは以下のようになります。上の表で空白だったセルにハイフンが入っています。
では早速関数を作っていきます。
まず、社員Fredの北部地域の利益一覧を利益が少ない順で昇順にする関数は、
=SORT(FILTER(利益一覧,(利益一覧[社員名]=”Fred”)*(利益一覧[地域]=”北部”)),4,1)
となります。社員名と地域にフィルターをかけて、最後にソートで4列目(利益)を昇順にしています。
次に、上記の検索結果(フィルターした結果)に空白のセルがあればハイフンに変え、そもそも検索した結果が1件もなければ「なし」を出力する関数は、検索結果の変数をFとして、
=IF(ISBLANK(F),”-“,IFERROR(F,”なし”))
となります。変数Fを2回使っていることが分かります。
最後にLET関数を使用して1つの関数にすると、
=LET(F,SORT(FILTER(利益一覧,(利益一覧[社員名]=”Fred”)*(利益一覧[地域]=”北部”)),4,1),IF(ISBLANK(F),”-“,IFERROR(F,”なし”)))
となります。
いかがだったでしょうか。関数がスッキリして見やすくなり可読性が上がったのではないでしょうか。
分からない関数等があればネットで調べてみましょう。
これら全ての関数を理解することで可能性が広がっていきます。
比較的いろんな事ができるようになるので是非マスターしましょう。
今回は以上です。
---コメント---