数値の1001と文字列の「1001」は、完全一致の検索で同じキーとして扱われない場合があります。検索値と表の先頭列のデータ型をそろえてください。
Excel 2016以降を想定 / XLOOKUPの対応状況は別途確認
見た目ではなくデータ型を調べる
A2の検索値が数値かどうかはISNUMBER、文字列かどうかはISTEXTで確認できます。検索表の先頭列にも同じ検査を行ってください。
=ISNUMBER(A2)
=ISTEXT(A2)| 値の例 | データ型 | 注意点 |
|---|---|---|
| 1001 | 数値 | 通常は数値同士で比較 |
| '1001 | 文字列 | 先頭のアポストロフィは入力時の指定 |
| 00123 | 文字列推奨 | 先頭の0に意味があるIDは保持 |
完全一致と範囲を先に確認する
次の式は、E2:E10でA2を探し、同じ行のF列の値を返します。FALSEは完全一致の指定です。検索キーは範囲の左端列に必要です。
=VLOOKUP(A2,$E$2:$F$10,2,FALSE)データ型がそろっていても、キーが範囲外なら見つかりません。同じキーが複数ある場合は先頭の一致が返ります。
本当に数値なら、補助列で変換する
商品コードではなく、数値として扱ってよいキーなら、補助列に次の式を入力して内容を確認します。検索値と検索表の両側で同じ型に統一してください。
=VALUE(TRIM(A2))セルの表示形式を「数値」に変えるだけでは、文字列が数値へ変換されるとは限りません。VALUEがエラーになる場合は、全角文字・余分な記号・通常と異なる空白がないか確認します。
先頭の0が必要なIDは文字列で統一する
00123のようなIDにVALUEを使うと123になり、情報が失われます。両側を文字列として取り込むか、固定5桁のIDであることが確実な場合に限り、数値123を次の式で00123へそろえます。
=TEXT(A2,"00000")サンプルをダウンロード
この記事のサンプル素材無料ダウンロード · .csvUTF-8のCSVデータです。Excelの[データ]→[テキストまたはCSVから]で取り込めます。ID列の先頭の0を残す場合は、その列のデータ型をテキストに指定してください。
本記事は旧URLの参照情報をもとに、新たに執筆した解説です。旧サイトの記事本文の復元・転載ではありません。画面や機能はExcelのバージョンによって異なります。