はじめに
エンジニアといえども保守運用の現場ではプログラミングとは縁遠く、Excelベースので業務を実施することが多いのではないでしょうか。
僕の常駐している現場でも連携される手順書等でこれでもかというほどVLOOKUPが使われており、挙句の果てにVLOOKUPを使う為に手順が増えてしまっている始末です。
今回紹介する関数はVLOOKUPの完全上位互換といっても差し支えないので、業務でExcelを使う方は是非使いこなしてもらえればと思います。
VLOOKUP
VLOOKUP(検索値,検索範囲,列番号,検索方法)
念の為VLOOKUPについておさらいします。
検索値、検索範囲を指定し検索値を基準として何列目の値が欲しいのかを列番号で指定します。検索方法は基本False。
例:以下の表でD子のIDが欲しい場合
=VLOOKUP("D子",A:C,3,FALSE)
以上のように値を持ってこれるので膨大なデータから値を持ってきたいとき等に使えます。
しかし、検索値は検索範囲の再左になければならない制限があるのでこの表だとIDから名前を持ってきたりすることはできません。
それこそ元の表の列を入れ替える等のデータの加工が必要になります。
XLOOKUP
XLOOKUP(検索値,検索範囲,戻り範囲,見つからない場合,一致モード,検索モード)
検索値と検索範囲を指定し、欲しい値を範囲で指定します。それ以外の3つはここでは省略します。
例:以下の表でID1003の名前が欲しい場合
=XLOOKUP(1003,C:C,A:A)
以上のようにどの列からでも値を持ってこれます。
ちなみに以下のように戻り範囲を広げると複数の値を持ってこれます。
=XLOOKUP(1003,C:C,A:B)
FILTER
=FILTER(配列,含む,空の場合)
配列で欲しい値の範囲を指定し、含むで条件を指定する。空の場合はここでは省略します。
例:以下の表で役職が技術の名前がすべて欲しい場合
=FILTER(A:A,B:B="技術")
縦ではなく横に出力したいときはTRANSPOSEを使いましょう
例:TRANSPOSE(FILTER(A:A,B:B="技術"))
1セルに収めたいときはTEXTJOINを使いましょう
例:TEXTJOIN(",",TRUE,FILTER(A:A,B:B="技術"))
終わりに
いかがでしたでしょうか。かなり省略したので細かい使い方までは理解できないかもしれませんが、こんなものもあるんだと知っていただき、業務内で選択肢の一つとして思い出してもらえれば幸いです。特にFILTER関数知れば世界が変わるのでこの機会に調べてみてはいかがでしょうか。