尋找某個範圍內的數字

尋找某個範圍內的數字

您能幫我滿足以下要求嗎?

我在 A 列和 B 列中維護了範圍。

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

現在我在另一列 E 中插入了一個數字,例如 17。 2 行,其C 列中的值為B。數字不屬於任何範圍。

我想知道是否有任何Excel公式可以用來獲得這種類型的輸出。我更喜歡使用公式而不是任何編碼。感謝您抽出時間在這方面指導我。

熱烈的問候,斯里達爾

答案1

是的,可以做到 - 您需要在表中添加一行才能使其工作。

我添加了這一行

| 0        | 0        | #N/A     |

進入表格作為第一行,所以表現在佔據A1:C4

我使用該INDEX函數來決定需要返回哪一行。
為了計算該行,我用SUMPRODUCT它來計算 INDEX 將使用的行。
完整的公式變為:

=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。相同的公式,但帶有12inD1:

=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"

這不是技術上的#不適用,它是所有可能答案的數組,但由於我們沒有將公式作為數組公式輸入,因此它只提供了第一個值

相關內容