先日のエクセルセミナーで、20代の男性からこんな相談を受けました。
「売掛の入金チェックをしたいんですが、
上司から『検索なんだからVLOOKUP関数でできるはず』
と言われたんです。
本当にこのやり方が最適なんでしょうか?」
男性の会社では、毎月、請求一覧表が以下のようなデータで届くそうです。
[入金日]に日付が入っていれば、その企業は入金済み。
逆に、日付が入っていなければ、その企業は未入金となります。
この一覧表の中から未入金の会社を検索したい、というのが男性からのオーダーでした。
そのために、上司の方は、VLOOKUP関数を使って計算式を作るようにとおっしゃっています。
さあ、どうでしょうか。
あなたなら、どんな関数を使って計算式を作りますか?
フィルターを使っての手作業抽出は避けましょう
一覧表にフィルターをかけ、手作業で抽出しようと考えた方。
この方法はちょっといただけませんね。
手作業は非効率ですし、うっかりミスを招きかねません。
ミスを防ぐためにも、関数を使って計算式を作るようにしましょう。
それでは、どの関数を使ってどんな計算式を作るのがベストなのでしょうか。
本当に「検索=VLOOKUP関数」というワンパターンで解決してしまっていいのでしょうか。
もう少し、一緒に考えてみましょう。
VLOOKUP関数は「別の表・シートから必要な情報を参照するときに利用」する関数
入金済みか未入金かの判断基準となるのは[入金日]ですよね。
つまり、[入金日]が入っていない売上先を探せばいいわけです。
探す = 検索
たしかに言葉としては「探す」も「検索」も同じ意味でしょう。
しかし、「検索=VLOOKUP関数」がいつも最適とは限りません。
それは、VLOOKUP関数がどんな関数で、どういう使い方をするのかを考えれば分かります。
=VLOOKUP(検索値, 範囲, 列番号, 検索の型)
基本的に、VLOOKUP関数は、別の表あるいはシートから必要な情報を参照するときに利用します。
1つの表の中で、なにかを探すために使う関数ではないのです。
今回のケースでは「IF関数」こそが最適解
それでは、今回のケースだとどの関数を使って計算式を作るのがベストなのでしょうか。
答えは「IF関数」です。
=IF(論理式, 真の場合, 偽の場合)
IF関数とは、指定した[論理式]をもとに、その結果が真(True)の場合は[真の場合]の値を返し、偽(False)の場合は[偽の場合]の値を返す関数です。
早速計算式を作ってみましょう。
まずは、一覧表に「回収チェック」という列を追加します。
今回は、表の右端(F列)に列を追加しました。
そこに、次のIF関数を入力します。
=IF(E3=””,”未入金”,””)
この計算式の意味は、以下のとおりです。
E3セル([入金日]の列)の値が空欄だった場合、F3セル([回収チェック]の列)に「未入金」の値を返す。
E3セルの値が空欄でなかった場合、F3セルは空欄にする。
これを適用した結果、以下のようになりました。
当初の目的通り、入金日が空欄(=未入金)の企業のセルにのみ「未入金」という値が返っていますね。
さいごに
関数を選ぶときは、それがどんな関数で、どういう使い方をするのかを常に考えて選ぶようにしましょう。
そうすることで、余計な手間がなくなったり、面倒な計算式を組み立てることなく、シンプルで目的に合致した関数を見つけることができるはずですよ。