0Pricing
Excel Formulas Academy · レッスン

段階表で近似一致を使う

並べ替えたMATCHを使って、価格表や評価表の適切な区分を検索します。

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

段階表とは

段階表は、連続した値を複数の範囲に分類する表です。税率区分、重量別の送料、数量割引、得点別のレターグレードなどがその例です。

考えられるすべての値について行を用意するのではなく、各範囲の開始しきい値だけを登録します。たとえば、87という得点に完全一致する項目がなくても、80から始まる範囲に該当します。

このような場合に近似一致が力を発揮します。完全一致を要求するのではなく、該当する範囲を検索できます。

完全一致と近似一致

これまでは、MATCH(value, range, 0)を使って完全一致を検索してきました。第3引数の0は、「この値に正確に一致するものを検索し、見つからなければ#N/Aを返す」という意味です。

段階表では、代わりに一致の種類として1を使います。検索値以下で最大の値を検索します。これは、範囲を検索するときに必要な動作そのものです。

重要なルールが1つあります。一致の種類が1の場合、しきい値の一覧は昇順に並べる必要があります。

=MATCH(87, E2:E6, 1)

範囲を設定する

成績表を考えてみましょう。E列には、0、60、70、80、90という下限しきい値を昇順で入力します。F列には、F、D、C、B、Aというラベルを入力します。

得点が0~59点ならF、60~69点ならDというように判定します。保存するのは各範囲の開始値だけで、すべての得点を登録する必要はありません。

ここでは、G1の得点に対応するレターグレードを返すことが目標です。

範囲の位置を検索する

近似一致のMATCHを使って、得点がどの範囲に入るかを検索します。得点が87の場合、MATCH(G1, E2:E6, 1)は87以下で最大のしきい値を検索します。

しきい値は0、60、70、80、90です。87を超えない最大の値は80で、位置は4です。そのためMATCHは4を返します。

87自体が一覧に含まれていなくても、この位置によって正しい範囲を特定できます。

=MATCH(G1, E2:E6, 1)

段階ラベルを返す

次に、その位置をラベル列F2:F6のINDEXに渡します。

INDEX(F2:F6, MATCH(G1, E2:E6, 1))は位置4を受け取り、4番目のラベルである「B」を返します。

したがって、得点87は正しくグレードBに対応します。G1を95に変更するとMATCHは5を返して「A」になり、55に変更するとMATCHは1を返して「F」になります。

=INDEX(F2:F6, MATCH(G1, E2:E6, 1))

並べ替えの要件

近似一致のMATCH(種類1)では、検索範囲を昇順に並べる必要があります。データが小さい順に並んでいることを前提とし、検索値を超えた時点で検索を停止します。

しきい値の順序が正しくないと、MATCHが早い段階で停止して誤った位置を返す可能性があります。エラーは表示されないため、誤りに気付きにくい点にも注意が必要です。段階表を使う前に、しきい値列を必ず小さい順に並べてください。

=INDEX(F2:F6, MATCH(G1, E2:E6, 1))

XLOOKUPでも同じことを行う

XLOOKUPでも近似一致を使えます。第5引数である一致モードには、段階表に最適な「完全一致、または次に小さい項目」を表す-1を指定できます。

これにより、G1以下で最大のしきい値を検索し、対応するラベルを返せます。INDEXは必要ないため、範囲検索ではINDEX-MATCHより読みやすいことがよくあります。

=XLOOKUP(G1, E2:E6, F2:F6, "Out of range", -1)

価格段階の例

次は、数量割引の例です。E列に注文数量のしきい値として0、10、50、100を入力し、F列に割引率として0%、5%、10%、15%を入力します。

  • 注文数が7の場合:7以下で最大のしきい値は0、位置は1なので、0%を返します。
  • 注文数が60の場合:60以下で最大のしきい値は50、位置は3なので、10%を返します。
  • 注文数が200の場合:200以下で最大のしきい値は100、位置は4なので、15%を返します。

数量がいくつであっても、1つの数式で対応できます。

=INDEX(F2:F5, MATCH(G1, E2:E5, 1))

最初の段階より小さい値への対処

値がすべてのしきい値より小さい場合はどうなるでしょうか。近似一致のMATCHでは、その値以下に該当する値がないため、#N/Aを返します。

これを避けるには、最初のしきい値で最小値(通常は0)をカバーするか、数式をIFERRORで囲み、入力が範囲外の場合に分かりやすいメッセージを表示してください。

=IFERROR(INDEX(F2:F6, MATCH(G1, E2:E6, 1)), "Below lowest tier")

よくある間違い

段階表では、次の点に注意してください。

  • しきい値が未ソート:誤った結果がエラーなしで返される、最も多い原因です。
  • 一致の種類に0を使う:完全一致を強制するため、範囲の途中の値では#N/Aが返されます。
  • 開始値ではなく終了値を保存する:種類1のMATCHでは、各範囲の上限ではなく下限が必要です。
  • しきい値がテキストになっている:テキストとして保存された数値は比較を正しく行えません。数値として保持してください。

2次元の段階表

近似一致を2方向の検索方法と組み合わせることもできます。たとえば、重量の範囲(行)とゾーンの範囲(列)の両方で送料が決まる表を考えてみましょう。

種類1の近似一致MATCHを1つ使って重量の行を検索し、もう1つを使ってゾーンの列を検索します。そして、両方の位置をINDEXに渡します。どちらの軸もしきい値を並べたものなので、各MATCHは正しい範囲を特定できます。

この方法により、INDEX-MATCH-MATCHと段階表の仕組みを組み合わせて、複雑な料金表を扱えます。

=INDEX(B2:D6, MATCH(G1, A2:A6, 1), MATCH(G2, B1:D1, 1))

理解度チェック

段階表の近似検索について、理解度を確認しましょう。

レッスンのまとめ

段階表や範囲を検索する場合は、次の点を覚えておいてください。

  • 各範囲の下限しきい値を保存し、昇順に並べます。
  • MATCH(value, thresholds, 1)を使って範囲の位置を検索します(入力値以下で最大の値)。
  • INDEX(labels, ...)でラベルを返すか、XLOOKUP(..., -1)を使って同じ結果を得ます。

0のしきい値で最小値をカバーするか、IFERRORで範囲外の入力に対処してください。また、しきい値を未ソートのままにしないでください。

=INDEX(F2:F6, MATCH(G1, E2:E6, 1))

よくある質問

「段階表で近似一致を使う」レッスンは無料ですか?

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

「段階表で近似一致を使う」で何を学びますか?

並べ替えたMATCHを使って、価格表や評価表の適切な区分を検索します。 ブラウザで直接実行するハンズオンコードでExcel Formulas Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「段階表で近似一致を使う」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. INDEX-MATCH-MATCHで双方向検索を行う
  2. 最後に一致する値を検索する
  3. INDEX-MATCHで複数条件検索を行う
  4. 段階表で近似一致を使う
← Excel Formulas Academyに戻る