我想要實現的目標的範例:
A B C D E F
1 1 <= 2 2 1
2 2 <= 4 23 8
3 4 <= 7 5 3
4 7 <= 10 40 10
5 10 <= 12 7 3
6 12 <= 17 8 4
7 17 <= 19 12 5
我想從 E 列中取出每個數字,然後確定它屬於哪一行 A,如果條件是數字 E >B 且 <=D (使用每行中具有不同值的整個範圍 B1:D999 )。
然後,F 列將傳回 E 列中數字的行號 A。
如果 B 和 D 列的每一行都是我的標準,例如 B1<=D1、B2<=D2、B3<=D3 等,我想比較 E 列中的每個數字,看看它們屬於哪個範圍。例如,E6=40,該數字屬於 B12<=D12 範圍,在 A12 行中值為 10)。所以我想從 E6 旁邊的儲存格 F6 中的 A 行取得該數字。我有大約 500 個數字,B、D 和 E 列中還包含小數,而 A 列僅包含整數。
A3 行表示從 1 到包括 2 的數字,A4 行表示大於 2 到包括 4 的數字。 3,所以F值與A3=1相同。
答案1
這是 p 的一個變體。菲多特的做法。沿著升序方向進行查找會捕捉錯誤的範圍,而調整中間範圍值會導致範圍邊界值的結果遺失。如果您進行降序查找,正常的 MATCH 會起作用。
依 A、B 或 D 列降序對表格進行排序。 F3 中的公式為:
=INDEX(A:A,MATCH(E3,D:D,-1),)
如果這些欄位中還有其他內容,請讓範圍引用絕對位址,例如 $A$3:$A$12 和 $D$3:$D$12。這只需要 A 列和 D 列進行查找,因此我沒有費心填寫範例中的 B 列或 C 列內容:
如果您的 A 列只是一個表格行標識符,並且可以保持升序,則甚至可以簡化。 MATCH回傳表中的序號,序號依升序對應A列,因此公式可以簡化為:
=MATCH(E3,$D$3:$D$12,-1)
請注意,為了使 MATCH 結果符合 A 清單行索引,需要使用絕對引用指定查找範圍。
答案2
在 F3 中試試這個:
=IFERROR(INDEX(A:A,MATCH(E3,D:D,0)),INDEX(A:A,MATCH(E3,D:D,1))+1)
但我認為你必須添加:
A1 ---> -1
A2 ---> 0
D1 ---> 0
D2 ---> 1
以覆蓋「缺失的範圍」。