練習問題一覧 / 検索・参照

担当と四半期で1つの値を引く(INDEX MATCH の2次元検索)

むずかしい 検索・参照
問題文
ヒント 0/4
模範解答 2
–
テストケース
1
2
3
リセット
提出
fx
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
インタラクティブなスプレッドシートを読み込み中...
セルと数式の計算エンジンを準備しています
○ 準備完了 ハイライトされたセルに数式を入力し、「提出」を押してください。

問題

問題文

営業ダッシュボードで必要なのは1つの数字です。F1 の担当の F2 の四半期の値で、表は B2:D4、担当の見出しは A2:A4、四半期の見出しは B1:D1 にあります。Result セル F3 に値を入れてください。セルごとに式を書き分けず、1つの式で両方の見出しを読みます。

2つの見出しはどちらも式で探します。F1 や F2 を変えたら式を触らずに答えが変わる必要があります。

問題のデータ

表でデータ全体を見る(選択・コピーできます)
この問題のデータ表
ABCDEF
1RepQ1Q2Q3RepBen
2Ada120150180QuarterQ3
3Ben90110140Result
4Cleo200180210

ポイント解説

INDEX の中に MATCH を2つ入れます。1つ目が担当の見出しの中で行を、2つ目が四半期の見出しの中で列を探し、INDEX が行と列の位置で値を返します。クロス集計の定番で、行や列を並べ替えても壊れません。

解き方のヒント

回答は F3 に入力します。送信時は 3 通りの入力で数式を再実行するので、数値を直接書くと必ず失敗します。数式はセルを参照してください。

  1. 対象セルは F3
  2. INDEX の第1引数は表の本体 B2:D4
  3. 行は MATCH(F1, A2:A4, 0)、列は MATCH(F2, B1:D1, 0)
  4. 形:=INDEX(?, MATCH(?,?,?), MATCH(?,?,?))

模範解答

模範解答を表示(2 通り・まずは自分で試してみましょう)

方法1:INDEX と2つの MATCH

=INDEX(B2:D4, MATCH(F1, A2:A4, 0), MATCH(F2, B1:D1, 0))

MATCH("Ben", A2:A4, 0) は 2、MATCH("Q3", B1:D1, 0) は 3 なので、INDEX は B2:D4 の2行3列目、140 を返します。

方法2:VLOOKUP の列番号に MATCH

=VLOOKUP(F1, A2:D4, MATCH(F2, B1:D1, 0) + 1, FALSE)

MATCH が四半期の見出しを B1:D1 内の位置(3)に変え、+1 で VLOOKUP の列番号に合わせます(VLOOKUP は A 列から数えるため)。答えは INDEX MATCH と同じですが、キーが左端の列にある必要があり、この +1 を忘れがちです。

関数ガイド

関連する練習問題

よくある質問

行と列の両方で値を探すには?

=INDEX(表, MATCH(行見出し, 行見出しの範囲, 0), MATCH(列見出し, 列見出しの範囲, 0)) と書きます。MATCH が2つ、INDEX が1つです。

ここで VLOOKUP を使わない理由は?

VLOOKUP でも列番号に MATCH(F2, 見出し行, 0) を渡せば可能です。ただしキーが左端の列にある必要があり、INDEX MATCH のほうが適用範囲が広くなります。