エクセルのHLOOKUP関数(エイチ・ルックアップ)は表を横方向に検索して、検索値を抽出する大変便利な関数です。
IF関数は、設定した条件に合わせて返す値を指定する関数です。
以前投稿した【VLOOKUP関数とIF関数を組み合わせた3つの使い方!】の記事では、VLOOKUP関数とIF関数を組み合わた便利な使い方を紹介しました。
今回は、『IF関数とHLOOKUP関数を組み合わせて利用』することで『抽出値を別の値に変換して表示』する便利な活用方法を解説します。
HLOOKUP関数を複数条件で使用する方法も合わせて参考にしてください。
IF関数とは?
IF関数について使い方をおさらいしましょう。すでに使い方を理解している方は読み飛ばしてください。
IF関数の構文は以下のように3つの引数で構成されています。
=IF(論理式,[値が真の場合],[値が偽の場合])
論理式に当てはまるものは、[値が真の場合]の結果を表示し、そうでない場合は[値が偽の場合]の結果を表示します。
条件フロー図で表すと以下のようになります。
上の論理式の引数の文字色と下の図の色は同じ内容を表しています。
シンプルなIF関数の使い方を1つ紹介します。
下のテスト結果表のD列に以下のIF関数を使って、80点以上であれば”〇、そうでなければ”×”を表示しています。
=IF(C4>=80、”〇”,”×”)
HLOOKUP関数とは?
続いて、HLOOKUP関数の使い方をおさらいしましょう。
すでに構文や引数の設定の仕方などを理解出来ている方は、読み飛ばしていただいて結構です。
HLOOKUP関数(エイチルックアップ)は、表を横方向に検索して情報を抽出する関数です。
HLOOKUP関数の構文は、検索値、検索範囲、行番号、検索方法の4つの引数で構成されています。
=HLOOKUP(検索値、検索範囲、行番号、[検索方法])
下の商品リスト表を例に具体的に説明します。
商品リスト表には、[商品番号][商品カテゴリ][商品名][値段]がまとめられています。
この商品リスト表から商品番号”25”の商品名を検索するために、セルC11にHLOOKUP関数を挿入します。
HLOOKUP関数を使った結果、商品番号”25”の商品名である”風邪薬”が返されました。
引数の設定の仕方や細かい関数の使い方については以下の記事で紹介していますので、参考にしてみてください。
IF関数とHLOOKUP関数で出来ること
『IF関数とHLOOKUP関数とを組み合わせる』とは、どういうことかをまず説明します。
IF関数は『条件を指定して、セルの値によって他のセルの値を変換する関数』です。
一方で、HLOOKUP関数は、『表を横方向に検索して情報を抽出する関数』です。
そのため、この2つの関数を組み合わせると、『表を横方向に検索して情報を抽出し、その抽出値を条件によって別の値を変換する』ことが出来るようになります。
下の図解で説明すると、上半分がHLOOKUP関数の領域で「表から値を抽出」します。
下半分がIF関数の領域で、抽出された値に条件を設定して、条件に合うか合わないかで表示する結果を変換します。
IF関数の中に挿入するHLOOKUP関数は、IF関数の第1~3引数のどこにでも挿入して利用することが可能です。
実例は下の3つの見出しで紹介します。
IF関数とHLOOKUP関数の組み合わせ:実例1(販売高で〇×判定)
それでは、IF関数とHLOOKUP関数を組み合わせた実例を紹介します。
まず1つ目の実例は、「商品販売高リストから販売高を判定して〇か×を表示する」使い方です。
HLOOKUP関数をIF関数の1つ目の引数に挿入して利用します。
今回は、下の商品販売高リストを用いて、C10セルに販売高が『600以上は“〇”、600未満は“×”』を表示する使い方を解説します。
手順1.IF関数を挿入し、第1引数を入力
IF関数を挿入して、第1引数にHLOOKUP関数を挿入します。
販売高が600以上であれば”〇”を返すため、IF関数の論理式を”HLOOKUP(B10,$B$3:$I$5,3,FALSE)>=600”と設定します。
=IF(HLOOKUP(B10,$B$3:$I$5,3,FALSE)>=600,
手順2.論理式が真の場合の値を作成
手順1で作成したHLOOKUP関数の論理式が真の場合(=当てはまる場合)に”○”と表示したいため、関数に真の値を”○”で入力します。
=IF(HLOOKUP(B10,$B$3:$I$5,3,FALSE)>=600,"○",
手順3.条件が当てはまらなかった場合の値を作成
手順1で作成したHLOOKUP関数の論理式が偽の場合(=当てはまらない場合)は”×”と表示します。
=IF(HLOOKUP(B10,$B$3:$I$5,3,FALSE)>=600,"○","×"
手順4.関数が完成しているかを確認
IF関数をENTERを押して確定し、正しく判定できるか確認します。下図のように商品番号15の場合は、販売高が400千円のため、判定は”×”となります。
IF関数とHLOOKUP関数の組み合わせ:実例2(販売高で〇×△判定)
続いて2つ目の実例の紹介です。
上の見出しの実例1では、”○”か”×”かで判定する使い方を解説しましたが、”○”か”×”か”△”かの3つの判定を設定することも可能です。
今回は、IF関数の3つ目の引数に、『HLOOKUP関数が中に使われているIF関数』を挿入します。
今回は、下の商品販売高リストを用いて、C10セルに販売高が『700以上は“〇”、500~699は”△”、500未満は“×”』を表示する使い方を解説します。
手順1.IF関数の第1~2引数を入力
販売高が700以上であれば”〇”を返すため、IF関数の論理式と第1引数と第2引数を以下のように設定します。
=IF(HLOOKUP(B10,$B$3:$I$5,3,FALSE)>=700,"○",
手順2.IF関数の第3引数を入力
IF関数の第3引数に、IF関数とHLOOKUP関数を組み合わせた関数を挿入します。
引数に500以下であれば”×”、そうでなければ”△”という分岐を設けます。
=IF(HLOOKUP(B10,$B$3:$I$5,3,FALSE)>=700,"○",IF(HLOOKUP(B10,$B$3:$I$5,3,FALSE)<500,"×","△"))
手順3.関数が完成しているかを確認
関数をENTERを押して確定し、正しく判定できるか確認します。
下図のように商品番号15の場合は、販売高が550千円のため、判定は”△”となります。
IF関数とHLOOKUP関数の組み合わせ:実例3(会員価格・非会員価格の自動表示)
最後に、IF関数とVLOOKUP関数を組み合わせた3つ目の使い方をご紹介します。
下の商品価格表を使って、C10セルが”会員”であれば会員価格を表示し、C10セルが”非会員”であれば非会員価格を表示する使い方を紹介します。
今回は、IF関数の2つ目の引数にHLOOKUP関数を挿入し、3つ目の引数に『HLOOKUP関数が中に使われているIF関数』を挿入します。
手順1.IF関数を挿入し第1引数を設定
C10セルが”会員”だった場合を真の値に設定するために、以下のIF関数を挿入します。
=IF(C10="会員",
手順2.IF関数の第2引数にHLOOKUP関数を設定
C10セルが”会員”だった場合、B10セルに表示された商品番号の会員価格が表示されるようHLOOKUP関数を挿入します。
=IF(C10="会員",HLOOKUP($B$10,$B$3:$H$6,3,FALSE),
手順3.IF関数の第3引数にIF関数を設定
IF関数の第3引数に、C10セルが”会員”以外だった場合に返す値を指定します。そのために、IF関数とHLOOKUP関数を使って、以下の関数を挿入します。
=IF(C10="会員",HLOOKUP($B$10,$B$3:$H$6,3,FALSE),IF(C10="非会員",HLOOKUP(B10,$B$3:$H$6,4,FALSE))
手順4.ENTERで関数を確定
ENTERで関数を確定すると、商品番号”18”の会員価格”550”が表示されます。
手順5.非会員価格の表示を確認
念のため会員区分を”非会員”に切替します。そうすると、下の図のように非会員価格の”550”が表示されます。