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

切り替えセルが指す価格表から引く(IF + 検索)

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

問題

問題文

価格表が2つ並んでいます。旧価格が A2:B5、新価格が D2:E5 で、どちらを使うかは H2 の "New" / "Old" で決まります。SKU は H1 にあります。価格を Price セル H3 に入れてください。

1つの式で SKU と切り替えの両方を読みます。作業列に IF を置いたり、価格を別の場所へ写したりしないでください。

問題のデータ

表でデータ全体を見る(選択・コピーできます)
この問題のデータ表
ABDEGH
1SKUOld priceSKUNew priceSKUSKU-103
2SKU-10149SKU-10152Price listNew
3SKU-10219.5SKU-10221Price
4SKU-10322.5SKU-10324.99
5SKU-10489SKU-10495

ポイント解説

IF が選ぶのは「値」ではなく「検索そのもの」です。各分岐が1つの表に対する完全な VLOOKUP になります。2つの表は独立した範囲なので、価格改定のたびに並べ替える必要はありません。INDEX + MATCH も同じ考え方で、位置を明示的に探すため、列の並びが違う2表では読みやすくなります。

解き方のヒント

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

  1. 対象セルは H3
  2. H2 の切り替えが表を選ぶ
  3. IF の各分岐が VLOOKUP まるごと1つ
  4. 形:=IF(?, VLOOKUP(?, ?, ?, ?), VLOOKUP(?, ?, ?, ?))

模範解答

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

方法1:2つの VLOOKUP を IF で選ぶ

=IF($H$2 = "New", VLOOKUP($H$1, $D$2:$E$5, 2, FALSE), VLOOKUP($H$1, $A$2:$B$5, 2, FALSE))

H2 が New なら新しい表から 24.99、Old に変えれば同じセルが 22.50 になります。H1 と H2 を $ で固定しているので、式をコピーしても参照がずれません。

方法2:2組の INDEX MATCH を IF で選ぶ

=IF($H$2 = "New", INDEX($E$2:$E$5, MATCH($H$1, $D$2:$D$5, 0)), INDEX($B$2:$B$5, MATCH($H$1, $A$2:$A$5, 0)))

切り替えは同じで、返す列を番号ではなく範囲で指定します。2つの表で列の順序が違うときに便利です。

関数ガイド

関連する練習問題

よくある質問

2つの表のどちらかから値を引くには?

各分岐に検索を丸ごと置きます:=IF(切り替え="New", VLOOKUP(キー, 新表, 2, 0), VLOOKUP(キー, 旧表, 2, 0))。

2つの表を1つにまとめないのはなぜ?

多くの場合はまとめるべきです。表の構造が違う場合や、旧表を過去のレポート用に凍結する必要がある場合だけ分けます。