横方向でデータを検索したいHLOOKUP関数-GSS/Excel/関数
横方向でデータを検索したいHLOOKUP関数-GSS/Excel/関数
横方向に並んだデータから特定の値を検索して対応する値を取得したいことってありますよね。月別売上データや四半期データなど、横方向に時系列で並んだ表でよく使われます。
今回はHLOOKUP関数をご紹介します。VLOOKUPの横方向版と考えていただければ分かりやすいです!早速やっていきましょう。
HLOOKUP関数とは
HLOOKUP(Horizontal Lookup)関数は、水平方向(横方向)に配置されたデータの中から検索値に一致する値を見つけ、指定した行から対応する値を返す関数です。
項目 | 1月 | 2月 | 3月 | 4月 |
---|---|---|---|---|
売上 | 500 | 750 | 620 | 890 |
利益 | 150 | 225 | 186 | 267 |
上の表で「2月の利益は?」を調べる場合、HLOOKUPが威力を発揮します。
構文
=HLOOKUP(検索値, 表配列, 行番号, [検索方法])
- 検索値:検索したい値(例:「2月」)
- 表配列:検索対象となる表全体の範囲
- 行番号:表配列の何行目から値を取得するか
- 検索方法:完全一致の場合はFALSE、近似一致の場合はTRUE(省略可)
基本的な使用例
1データの準備
A | B | C | D | E |
---|---|---|---|---|
月 | 1月 | 2月 | 3月 | 4月 |
売上 | 500 | 750 | 620 | 890 |
利益 | 150 | 225 | 186 | 267 |
コスト | 350 | 525 | 434 | 623 |
2実際の関数
2月の利益を取得する場合:
=HLOOKUP("2月", B1:E4, 3, FALSE)
結果:225
詳細解説
先ほどの例を詳しく見ていきましょう。
- 検索値:「2月」- C1セルにある値を検索
- 表配列:B1:E4 - 検索対象の表全体
- 行番号:3 - 表配列の3行目(利益の行)から値を取得
- 検索方法:FALSE - 完全一致で検索
重要なポイント
行番号は表配列の1行目を「1」として数えます。上の例では、1行目が月名、2行目が売上、3行目が利益、4行目がコストとなります。
行番号は表配列の1行目を「1」として数えます。上の例では、1行目が月名、2行目が売上、3行目が利益、4行目がコストとなります。
実践的な活用例
セル参照を使った動的な検索
検索月 | 3月 | ||
---|---|---|---|
検索項目 | 売上 | ||
結果 | 620 |
G3セルの関数:
=HLOOKUP(G1, B1:E4, IF(G2="売上",2,IF(G2="利益",3,4)), FALSE)
この方法なら、検索月や検索項目を変更するだけで、自動的に結果が更新されます。
絶対参照と相対参照の活用
複数のセルに同じようなHLOOKUP関数をコピーして使う場合は、絶対参照($マーク)を適切に使いましょう。
コピー可能な関数の作り方
=HLOOKUP($G$1, $B$1:$E$4, ROW(A2), FALSE)
この関数をコピーすると、表配列と検索値は固定され、行番号だけが自動調整されます。
エラー対処とトラブルシューティング
よくあるエラーと対策
- #N/A エラー:検索値が見つからない場合。IFERROR関数と組み合わせて対処
- #REF! エラー:行番号が表配列の行数を超えている場合
- #VALUE! エラー:行番号に数値以外が入力されている場合
エラー対策の例:
=IFERROR(HLOOKUP("2月", B1:E4, 3, FALSE), "データなし")
まとめ
- HLOOKUP関数の使い所:横方向に配置されたデータから特定の値を検索したいとき
- 構文:=HLOOKUP(検索値, 表配列, 行番号, [検索方法])
- 例文:=HLOOKUP("2月", B1:E4, 3, FALSE)
- VLOOKUPとの違い:VLOOKUPは縦方向、HLOOKUPは横方向の検索
- 活用場面:月別データ、四半期データ、時系列データの分析に最適
- エラー対策:IFERROR関数と組み合わせることで安全性向上
HLOOKUP関数をマスターすることで、横方向に展開されたデータの分析が格段に楽になります。ぜひ実際のデータで試してみてくださいね!