XLOOKUP で見つからなくてもエラーにしない(IFERROR)
カスタマーサービスが、すでに販売終了した SKU を入力するたびに、価格レポートに #N/A が並んでしまいます。A2:C6 の一覧から E2 の SKU の価格を検索し、見つからないときはエラーではなく文字列 "Not found" を返してください。Price のセル F2 に入力します。解き方は2通りあり、そのうち1つは IFERROR さえ必要ありません。
セル参照を使って数式を書いてください。テストケースを切り替えても正しい結果になる必要があります。
ポイント解説
定番の対処法は2つあります。昔ながらの方法は、検索を IFERROR で包むことです:=IFERROR(XLOOKUP(…), "Not found")。新しい方法は、XLOOKUP の4つ目の引数 if_not_found(見つからない場合)です:=XLOOKUP(E2, A2:A6, C2:C6, "Not found") なら、包まなくても見つからないケースを処理できます。新しい Excel を使う人が相手なら、4つ目の引数をおすすめします。見つからないときだけを拾うので、列の削除による #REF! のような本当の不具合まで IFERROR が隠してしまう心配がありません。
関数ガイド
よくある質問
XLOOKUP で見つからないとき、#N/A ではなく空白にするには?
4つ目の引数に空の文字列を指定します。=XLOOKUP(E2, A2:A6, C2:C6, "") なら、見つからないときに空白に見えるセルを返します。メッセージを表示したいときは =XLOOKUP(E2, A2:A6, C2:C6, "Not found") と書きます。
IFERROR と XLOOKUP の「見つからない場合」の引数は、どちらを使うべきですか?
新しい Excel や Google スプレッドシートなら、4つ目の引数がおすすめです。見つからないときだけを拾います。IFERROR(式, 値) は #REF!、#VALUE!、#DIV/0! までまとめて隠すので、手軽な反面、数式の本当の不具合に気づきにくくなります。
Google スプレッドシートの XLOOKUP でも「見つからない場合」の引数は使えますか?
使えます。スプレッドシートの XLOOKUP にも同じ4つ目の引数があり、=XLOOKUP(E2, A2:A6, C2:C6, "Not found") はそのまま動きます。XLOOKUP がない古い Excel では、代わりに =IFERROR(VLOOKUP(…), "Not found") を使います。