Excel Formulas Academy · レッスン

左方向と下方向から検索する

右から左、最後から最初まで、任意の方向に検索します。

レッスン 3/413 ステップ

「左方向と下方向から検索する」はCoddyKit上の無料Excel Formulas Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはExcel Formulas Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Excel Formulas Academyコースには全4レッスンが含まれています。

方向の自由度

VLOOKUPの大きな制限の1つは、検索列の右にある値しか返せなかったことです。XLOOKUPにはこの制限がありません。

検索配列と戻り配列を別々に指定するため、検索結果は検索する列の左、右、上、下のどこにあってもかまいません。

=XLOOKUP(D2, B2:B20, A2:A20)

左方向を検索する

B列にIDがあり、名前がその左のA列にあるとします。VLOOKUPでは、列を並べ替えない限りこれを実行できませんでした。

XLOOKUPなら、B列を検索してA列を返すだけです。検索列の左側にある値も問題なく返せます。

=XLOOKUP(D2, B2:B20, A2:A20)

5番目の引数:search_mode

XLOOKUPには、検索する方向を制御する5番目の引数、search_modeがあります。

  • 1 - 最初から最後まで検索(デフォルト)
  • -1 - 最後から最初まで検索
  • 2 - 昇順データを対象に二分探索
  • -2 - 降順データを対象に二分探索
=XLOOKUP(lookup_value, lookup_array, return_array, if_not_found, match_mode, search_mode)

デフォルトの検索方向

デフォルトでは、XLOOKUPは上から下へ検索し、最初に見つかった最初の一致を返します。

リスト内に同じ値が複数回現れる場合、このデフォルト設定では最も早いものが返されます。ほとんどの場合はこれで問題ありませんが、最も新しいエントリが必要になることもあります。

=XLOOKUP(D2, A2:A20, B2:B20)

下から検索する

-1をsearch_modeに設定すると、下から上へ検索できます。するとXLOOKUPは、最後に一致した値を返します。

if_not_foundとmatch_modeはsearch_modeより前にあるため、空であっても、前の引数をプレースホルダーとして指定する必要があります。

=XLOOKUP(D2, A2:A20, B2:B20, "Not found", 0, -1)

最後の一致が重要な理由

各行に注文のステータス更新を記録したログを想像してください。上にある行ほど古いものとします。

上から下へ検索すると、注文の最初のステータスが返されます。-1を指定して下から上へ検索すると、最新のステータスが返されます。同じデータでも、検索方向によって答えは大きく異なります。

=XLOOKUP(D2, OrderID, Status, "No record", 0, -1)

プレースホルダーを埋める

引数は位置で決まるため、前の引数を指定せずに6番目の引数へ進むことはできません。

=XLOOKUP(D2, A2:A20, B2:B20, "Not found", 0, -1)では、"Not found"がif_not_found、0がmatch_mode(完全一致)です。これらが引数の位置を埋めるため、-1がsearch_modeに入ります。

=XLOOKUP(D2, A2:A20, B2:B20, "Not found", 0, -1)

match_modeの概要

5番目の引数の隣にあるmatch_modeは、一致方法を制御します。

  • 0 - 完全一致(デフォルト)
  • -1 - 完全一致または次に小さい値
  • 1 - 完全一致または次に大きい値
  • 2 - *と?を使ったワイルドカード一致

左方向や下方向の検索では、通常0のままにします。

=XLOOKUP(D2, A2:A20, B2:B20, "Not found", 0, -1)

下から検索する実例

価格変更シートに、価格が更新されるたびに各商品の情報が記録されているとします。現在の価格を取得するには、その商品の最後のエントリが必要です。

-1を指定して下から検索すると、並べ替えや補助列を追加せずに、最新の価格を返せます。

=XLOOKUP("Laptop", A2:A500, B2:B500, "No price", 0, -1)

高速化のための二分探索

2と-2の検索モードでは、より高速な二分探索を使用します。ただし、検索配列が並べ替えられている必要があり、2では昇順、-2では降順にします。

非常に大きな並べ替え済みリストでは、かなり高速になります。データが正しく並べ替えられていない場合、二分探索は誤った結果を返す可能性があるため、注意して使用してください。

=XLOOKUP(D2, A2:A100000, B2:B100000, "Not found", 0, 2)

検索方向を活用する

XLOOKUPで、どこを、どちらの方向に検索するかを制御できるようになりました。

  • 左側にある値も自由に返せます
  • 最初の一致には1(デフォルト)
  • 最後の一致には-1
  • 並べ替え済みデータの高速な二分探索には2または-2

search_modeの前に、if_not_foundとmatch_modeの位置を埋めることを忘れないでください。

=XLOOKUP(D2, A2:A20, B2:B20, "Not found", 0, -1)

理解度チェック

search_mode引数についての理解度を確認しましょう。

まとめ:任意の方向に検索する

XLOOKUPで方向を指定して検索する方法を学びました。

  • 戻り配列は検索配列の左側にも置けます
  • search_mode(6番目の引数)で検索方向を設定します
  • -1で最後の一致を検索でき、最新レコードの検索に適しています
  • 2と-2で、並べ替え済みデータを高速に二分探索できます

次は、1つのXLOOKUPで行全体または列全体を返す方法を学びます。

=XLOOKUP(D2, A2:A20, B2:B20, "Not found", 0, -1)
無料で開始

AI チューターと学ぶ Excel — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「左方向と下方向から検索する」レッスンは無料ですか?

はい。「左方向と下方向から検索する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Excel Formulas Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Excel Formulas Academyコースには全4レッスンが含まれています。

「左方向と下方向から検索する」で何を学びますか?

右から左、最後から最初まで、任意の方向に検索します。 ブラウザで直接実行するハンズオンコードでExcel Formulas Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Excel Formulas Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのExcel Formulas Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「左方向と下方向から検索する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このExcel Formulas Academyレッスンでコードを書いて実行できますか?

はい。すべてのExcel Formulas Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. XLOOKUPの構文
  2. if_not_foundで見つからない場合に対応する
  3. 左方向と下方向から検索する
  4. 行全体または列全体を返す
← Excel Formulas Academyに戻る