◆[数式]VLOOKUPの限界を超える
2つの表をマージしたい場合、VLOOKUP関数では、キー(VLOOKUPのリファレンスでは「範囲」と呼ばれるパラメータ)となる列はソートされている必要があるため、思うとおりの結果を得られない場合がある。


※ここでは、A列とB列全体を「郵便番号一覧」と名前付けしています。

上記の例は、郵便番号とその対になる住所の一覧表(A列~B列)から、もう一方の表(D列~F列)に「住所」をキーとして「郵便番号」をマージしたいケースです。
ところが、A列がソートされていないため、Bさんの郵便番号が正しくマージできていません。

※本来は「100-5555」となるはずです。

そこで、まずA列のみを「郵便番号用住所」という名前付けをして、合致(MATCH)する住所が存在する行番号を検索し、G列に表示します。

※G3、G4、G5とセルが変わるごとに「MATCH(E3,・・・」、「MATCH(E4,・・・」、「MATCH(E5,・・・」のようにセルの参照先が変わります。


次に、G列の検索結果(該当行番号)は、「郵便番号」と名前付けしたB列の順番と対応しているので、それを取得(INDEX)します。


A列がソートされていない状態でも、Bさんの郵便番号が正しくマージできました。

過去のエクセルTIPS

Vol.4
◆[便利]セルの名前付け

Vol.3
◆[ショートカット]特定セルを参照しているセルの検索

Vol.2
◆[ショートカット]セル参照形式の変更

Vol.1
◆[マクロ]マウスクリックでセルに着色
◆[ショートカット]プルダウンの選択
◆[ショートカット]シートの追加
◆[ショートカット]列、行の一括選択
◆[ショートカット]ブックの切り替え、シートの移動
◆[ショートカット]セル編集モード
◆[ショートカット]直前操作の繰り返し
◆[ショートカット]セルの書式設定
◆[ショートカット]本日日付の入力
◆[書式]文字列+数字+文字列から数字のみを取り出す方法
◆[書式]日付データを曜日や元号表示する方法
◆[数式]年齢を計算する方法
◆[数式]ファイル名/シート名を取得する方法
◆[数式]セルの型を判別する方法