
誰かが私の質問に答えてくれることを願っています!
たくさんの値があり、どれが範囲内にあるか、また範囲内にある場合はどの範囲にあるかを知る必要があります。
たとえば、ワークシート 1 の列 A に関心のある値が含まれ、ワークシート 2 の列 B に範囲の開始値、列 C に範囲の終了値、列 D にこれらの各範囲の名前が含まれます。ワークシート 1 の列 A に指定された値が、ワークシート 2 の列 B から列 C に記述された範囲内にあるかどうかを調べ、列 D から対応する情報を返すにはどうすればよいでしょうか。基本的には、関心のある値によってどの範囲がカバーされるかを調べます。
追伸:範囲内の範囲を見つけるのは、誰かがその方法を知っていればさらに良いのですが、私はしばらく前にこれをあきらめました。
答え1
ダブルマッチや類似の式についてより詳細に、またより効率的にこれを行う方法について説明している Web サイトは多数ありますが、ここでは 1 つの例を示します。
前提: 2枚
- シート 1 = データ
- 列A = ボーリングホール
- 列B = 深さ
- 列 C = シート 2 から計算された値
- シート 2 = 範囲
- ボーリングホール
- 深さから
- 深さまで
- 値(シート1の列Cを入力するために使用)
数式は配列数式なので、ctrl+ shift+を使用して入力する必要があります。enter
=INDEX(ranges!$D$2:$D$5,MATCH(data!A2,IF(data!B2>ranges!$B$2:$B$5,IF(data!B2<ranges!$C$2:$C$5,ranges!$A$2:$A$5,""),""),0))
インデックスと一致がどのように機能するかについては、Web 上に広く公開されているためここでは説明しません。ただし、一致式の内部では次の処理が行われます。
二つもし関数は、指定された深度が各深度開始値と深度終了値の間にあるかどうかを確認します。これらの基準の両方に一致しない場合は空白を返し、両方に一致する場合は列 A のボーリングホール ID を返します。
次に、一致関数は、いくつかの適切な ID と多数の空白を含む配列に対して、必要な井戸 ID を一致させようとします。井戸 ID と一致する場合、これが目的の行であり、この値をインデックスに返して、対応する値セルを選択します。
範囲の一致については、複数のビンにまたがる範囲に値を入力しようとしている可能性があるため、範囲が揃っているか、またはどの範囲が長いかによって異なります。