範囲内の数字を見つける


0

以下の要件で私を助けてください。

A列とB列の範囲を維持しました。各範囲の関連値はC列に記載されています。たとえば、以下を参照してください。

| Column A | Column B | Column C |
| 1        | 10       | A        |
| 15       | 20       | B        |
| 21       | 30       | C        |

ここで、17などの数値を挿入した別の列Eがあります。ここで、列Cから関連する値を取り込むことができるように、この数値がどの範囲に入るかを知りたいと思います。この例では、 15から20の範囲で、行2にあり、列Cの値はBです。したがって、17の数字の場合、出力はBになります。25を入力した場合、出力はCになります。この数値はどの範囲にも入らないため、出力は#N / Aになります。

このタイプの出力を取得するために使用できるExcelの数式があるかどうかを知ります。コーディングよりも数式を使用することを好みます。この点で私を導くためのあなたの時間をありがとう。

よろしく、スリダール

回答:


1

はい、できます-それを機能させるには、テーブルに余分な行が必要です。

行を追加しました

| 0        | 0        | #N/A     |

最初の行としてテーブルに挿入するため、テーブルはA1:C4を占有します。

INDEX関数を使用して、返す必要がある行を決定します。行を計算するために、INDEXが使用する行の計算
に使用SUMPRODUCTします。
完全な式は次のようになります。

=INDEX(C1:C4,SUMPRODUCT(--(A1:A4<=D1),--(B1:B4>=D1),ROW(C1:C4)))

、チェックインする値 D1

次を含むD1で数式を実行し17ます。

=INDEX(C1:C4,SUMPRODUCT(--(A1:A4<=17),--(B1:B4>=17),ROW(C1:C4)))
=INDEX(C1:C4,SUMPRODUCT(--({0,1,15,21}<=17),--({0,10,20,30}>=17),{1,2,3,4}))
=INDEX(C1:C4,SUMPRODUCT(--({True,True,True,False}),--({False,False,True,True}),{1,2,3,4}))
=INDEX(C1:C4,SUMPRODUCT({1,1,1,0}),({0,0,1,1}),{1,2,3,4}))
=INDEX(C1:C4,(1*0*1 + 1*0*2 + 1*1*3 + 0*1*4))
=INDEX(C1:C4,3)
="B"

数値が範囲外にある場合、値の行が等しくないSUMPRODUCTの部分はない0ため、範囲の最初の値(#N / A)が返されます。同じ式ですが12D1にあります:

=INDEX(C1:C4,SUMPRODUCT(--(A1:A4<=12),--(B1:B4>=12),ROW(C1:C4)))
=INDEX(C1:C4,SUMPRODUCT(--({0,1,15,21}<=12),--({0,10,20,30}>=12),{1,2,3,4}))
=INDEX(C1:C4,SUMPRODUCT(--({True,True,False,False}),--({False,False,True,True}),{1,2,3,4}))
=INDEX(C1:C4,SUMPRODUCT({1,1,0,0}),({0,0,1,1}),{1,2,3,4}))
=INDEX(C1:C4,(1*0*1 + 1*0*2 + 0*1*3 + 0*1*4))
=INDEX(C1:C4,0)
="#N/A"

技術的には#N / Aではなく、考えられるすべての回答の配列ですが、配列式として式を入力しなかったため、最初の値のみが提供されます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.