ExcelやスプレッドシートのVLOOKUP関数で、文字や数値だけでなく、特定の日付に関して検索したいパターンも多いですよね。
この記事では、VLOOKUP関数で参照範囲を日付の検索値で検索する方法について解説します。式の立て方自体は基本の使い方と同様なのですが、やや書式設定に注意が必要です。
日付の検索値で検索する方法
VLOOKUP関数でデータを日付で抽出したい場合は、検索値で日付セルを指定します。
例では、B3セルの日付に該当する商品番号を、一覧表から取得します。
C3セルに以下の式を設定します。検索値にB3セルを、参照範囲は一覧表(B6~C15セル)を設定しています。
=VLOOKUP(B3,B6:C15,2,FALSE)
2019/4/2に入荷した商品「A002」を取得することができました。
日付で検索できない時の対処
日付で検索しようとするとエラーが表示されることがあります。
下の例では、検索値の「2019/4/2」が一覧表に存在するにも拘わらず検索できません。
検索値のセルにカーソルをあてて右クリックし、「セルの書式設定」を開くと表示形式が「文字列」になっています。
VLOOKUP関数では、検索値と参照範囲の左端の表示形式が一致していないと正しく検索ができません。
このような場合の対処については以下のような方法が考えられます。
対処1:表示形式の修正
まず思いつく方法としては表示形式の修正が挙げられます。
文字列と日付で形式が異なっているので、いずれかの書式を日付形式(または文字列形式)に統一すればOKです。
- 検索値のセルを右クリックし、「セルの書式設定」を開きます。
- 表示形式を「文字列」ではなく「日付」に変更して「OK」をクリックします。
B3セルの値を再度入力しなおすと、VLOOKUP関数の結果に反映されるようになります。※書式を変更しただけでは結果は変わらないのでご注意ください。
対処2:DATEVALUE関数を使用する
2つめの対処方法は、DATEVALUE関数を使用して文字列を日付に変換する方法です。
「DATEVALUE(文字列)関数」を使って文字列の「2019//4/2」を日付形式に変換して、VLOOKUP関数の検索値にします。
VLOOKUP式と合わせて使うと以下の式になります。
=VLOOKUP(DATEVALUE(B3),B6:C15,2,FALSE)
変換後の検索値の書式と参照範囲の左端列の書式が一致したので、商品番号を取得することができるようになりました。
注意点として、DATEVALUEの引数は1つのみです。VLOOKUP関数中の参照範囲には適用はできないので、上の例のように検索値を変換するか、または参照範囲に変換列を追加するなどの対応が必要となります。
以上、VLOOKUP関数で範囲を日付で検索する方法の解説でした。
コメント