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

スキャンした崩れた SKU で検索する(TRIM + UPPER)

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

問題

問題文

バーコードリーダーは前後に空白を付け、小文字で書き出すため、E1 は sku-103 になっています。一方 A2:C6 の価格表は整った大文字のキーです。そのスキャン値の価格を Price セル E2 に入れ、表にないときは "Not found" を返してください。

スキャン値を式の中で整えます。E1 を書き換えたり、作業用の列を足したりしないでください。

問題のデータ

表でデータ全体を見る(選択・コピーできます)
この問題のデータ表
ABCDE
1SKUProductPriceScanned SKU sku-103
2SKU-101Keyboard49Price
3SKU-102Mouse19.5
4SKU-103Monitor24.99
5SKU-104Dock89
6SKU-105Cable12.5

ポイント解説

TRIM が前後の空白を除き、UPPER が大文字に揃えるので、整えたキーが表と一致します。XLOOKUP の4つ目の引数が「見つからないときの値」なので IFERROR で包む必要はありません。INDEX + MATCH では IFERROR を使います。

解き方のヒント

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

  1. 対象セルは E2
  2. 先にキーを整える:TRIM(UPPER(E1))
  3. XLOOKUP の4つ目の引数が見つからないときの戻り値
  4. 形:=XLOOKUP(?, ?, ?, ?)

模範解答

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

方法1:XLOOKUP と整えたキー・見つからない場合の値

=XLOOKUP(TRIM(UPPER(E1)), A2:A6, C2:C6, "Not found")

TRIM(UPPER(" sku-103 ")) は "SKU-103" になり A4 と一致するので、C4 の 24.99 を返します。見つからないときは4つ目の引数が "Not found" を返し、#N/A にはなりません。

方法2:INDEX + MATCH を IFERROR で包む

=IFERROR(INDEX(C2:C6, MATCH(TRIM(UPPER(E1)), A2:A6, 0)), "Not found")

整え方は同じです。MATCH が行を見つけ、INDEX が価格を返し、見つからないときは IFERROR が既定値を返します。XLOOKUP が引数で行うことを式で表しています。

関数ガイド

関連する練習問題

よくある質問

同じに見える値なのに検索が失敗するのはなぜ?

見えない空白か大文字小文字が原因です。"SKU-103" と " sku-103 " は別の文字列です。比較の前に TRIM と UPPER で整えます。

#N/A ではなく分かりやすい文言を出すには?

XLOOKUP の4つ目の引数が既定値です:=XLOOKUP(キー, キーの範囲, 値の範囲, "Not found")。INDEX + MATCH では IFERROR で包みます。