型番から小売価格を表引きする
検索値も範囲も行番号も正しいはずなのに、HLOOKUP関数式で「#N/A」エラーが出てしまう/HLOOKUP関数式の検索値を、もっと簡単に入力したい/入力規則として設定できるリストの値に、別のシートにあるデータを指定したい/HLOOKUP関数で2つの表を検索対象にしたい/複雑な計算に使ったシートを、目の付かないところに隠したい
HLOOKUPは、指定範囲の先頭行を検索し、同じ列にある指定行のデータを抽出する関数です。標準では、検索対象となる先頭行のデータは昇順に並べられていなければなりません。
昇順に並んでいない先頭行を検索対象にする場合は、引数「検索の型」として「FALSE」を指定する必要があります。
入力規則を使うと、検索値をリストから選択入力することができるようになります。
メニューバー「データ」−「入力規則」は、検索値入力セルを選択してから実行します。表示されるダイアログボックスで、「入力値の種類」を「リスト」にして、「元の値」欄に検索対象となる先頭行のデータ範囲を指定します。
「元の値」への指定は、右端のボタンをクリックして行うと、実際のシートでその範囲を選択できます。
「OK」でダイアログボックスを閉じると、検索値をリストから選択できるようになります。
メニューバー「データ」−「入力規則」で、リストからのデータ選択を有効にするには、タブ「設定」で「入力値の種類」を「リスト」にします。そのうえで、「元の値」欄に検索対象となるリスト表示するデータ範囲を指定します。
このとき、そのセル範囲をドラッグで指定できますが、シートを切り替えられず、別のシートにあるデータを指定できません。
それを容易に可能とするのが、セル範囲の名前付けです。メニューバー「挿入」−「名前」−「貼り付け」を使うと、セル範囲名を「元の値」欄に指定でき、それが他のシートのデータでもリストから入力できるようになります。
HLOOKUP関数で、2つの表を検索対象にしたいときには、どちらかをまず検索し、そこにデータが見つからないときに、もうひとつの表を検索する方法を採ります。
HLOOKUP関数式では、データが見つからないときには「#N/A」がエラー表示されます。エラーの有無をTYPE関数で調べて、エラーとなったときにもうひとつの表をHLOOKUP関数式で検索するようにします。
画面では検索式を2つに分けましたが、もちろんひとつにまとめることもできます。IF関数式内の「B2」の箇所を、B2セルに設定したHLOOKUP関数式と置き換えれば、ひとつの計算式となります。
複雑な計算は、ひとつの式にまとめず、いくつかの式で段階的に計算したほうが、うまくいかなかったときなどの調整に便利です。そして、そうした計算式を作業用シートにまとめてしまい、その結果だけを本来のシートで参照表示するようにすれば、見た目にもすっきりします。
第三者が同じブックファイルを利用する場合には、作業用シートは、メニューバー「書式」−「シート」−「表示しない」で非表示にしておくといいでしょう。