エクセル実践塾 > エクセル実践塾マンスリー

 

型番から小売価格を表引きする

検索値も範囲も行番号も正しいはずなのに、HLOOKUP関数式で「#N/A」エラーが出てしまうHLOOKUP関数式の検索値を、もっと簡単に入力したい入力規則として設定できるリストの値に、別のシートにあるデータを指定したいHLOOKUP関数で2つの表を検索対象にしたい複雑な計算に使ったシートを、目の付かないところに隠したい

検索値も範囲も行番号も正しいはずなんだけど、HLOOKUP関数式で「#N/A」エラーが出てしまうのはなぜ?

HLOOKUPは、指定範囲の先頭行を検索し、同じ列にある指定行のデータを抽出する関数です。標準では、検索対象となる先頭行のデータは昇順に並べられていなければなりません。

昇順に並んでいない先頭行を検索対象にする場合は、引数「検索の型」として「FALSE」を指定する必要があります。

HLOOKUP関数式の検索値を、もっと簡単に入力する方法ってない?

入力規則を使うと、検索値をリストから選択入力することができるようになります。

メニューバー「データ」−「入力規則」は、検索値入力セルを選択してから実行します。表示されるダイアログボックスで、「入力値の種類」を「リスト」にして、「元の値」欄に検索対象となる先頭行のデータ範囲を指定します。

「元の値」への指定は、右端のボタンをクリックして行うと、実際のシートでその範囲を選択できます。
「OK」でダイアログボックスを閉じると、検索値をリストから選択できるようになります。

入力規則として設定できるリストの値には、別のシートにあるデータを指定できないの?

メニューバー「データ」−「入力規則」で、リストからのデータ選択を有効にするには、タブ「設定」で「入力値の種類」を「リスト」にします。そのうえで、「元の値」欄に検索対象となるリスト表示するデータ範囲を指定します。

このとき、そのセル範囲をドラッグで指定できますが、シートを切り替えられず、別のシートにあるデータを指定できません。

それを容易に可能とするのが、セル範囲の名前付けです。メニューバー「挿入」−「名前」−「貼り付け」を使うと、セル範囲名を「元の値」欄に指定でき、それが他のシートのデータでもリストから入力できるようになります。

検索対象の表が2つあるんだけど、HLOOKUP関数で処理できる?

HLOOKUP関数で、2つの表を検索対象にしたいときには、どちらかをまず検索し、そこにデータが見つからないときに、もうひとつの表を検索する方法を採ります。

HLOOKUP関数式では、データが見つからないときには「#N/A」がエラー表示されます。エラーの有無をTYPE関数で調べて、エラーとなったときにもうひとつの表をHLOOKUP関数式で検索するようにします。

画面では検索式を2つに分けましたが、もちろんひとつにまとめることもできます。IF関数式内の「B2」の箇所を、B2セルに設定したHLOOKUP関数式と置き換えれば、ひとつの計算式となります。

私以外の人も同じブックファイルを使うので、複雑な計算に使ったシートを、できれば目の付かないところに隠したいんだけど・・・

複雑な計算は、ひとつの式にまとめず、いくつかの式で段階的に計算したほうが、うまくいかなかったときなどの調整に便利です。そして、そうした計算式を作業用シートにまとめてしまい、その結果だけを本来のシートで参照表示するようにすれば、見た目にもすっきりします。

第三者が同じブックファイルを利用する場合には、作業用シートは、メニューバー「書式」−「シート」−「表示しない」で非表示にしておくといいでしょう。