我有以下公式:
=INDEX(SPEC!$C$5:$C$650,MATCH(B3,SPEC!$F$5:$G$5,0))
它工作正常,但$F$5
的值为1,而$G$5
的值为100.因此,如果我在两者之间键入任何内容,即:2-99,则它不起作用。
有没有办法在某处使用<=
和>=
来查看2到99之间的数字,因为我当前的公式只查看我提到的那些单元格,而不是介于两者之间的所有单元格
答案 0 :(得分:1)
如果没有看到您的确切工作簿,我必须创建一个可能无法完全复制您的虚拟版本(见下文)。
根据您的值范围内$F$5
和$G$5
之间只有一个值(在我的情况下为D5:D650
),以下情况应该有效。
=INDEX(C5:C650, SUMPRODUCT(--(D5:D650<=G5),--(D5:D650>=F5), ROW(A1:A646)))
。
<强>解释强>
D5:D650<=G5 = {FALSE, FALSE, FALSE, FALSE, TRUE, FALSE...}
在此之前使用两个减号,将“True”的结果转换为值“1”,将“False”的结果转换为值“0”。
因此,在D5:D650<=G5 = {FALSE, FALSE, FALSE, FALSE, TRUE, FALSE...}
的情况下,它会将其转换为{0, 0, 0, 0, 1, 0...}
下一个标准--(D5:D650>=F5)
等同于{1, 1, 1, 1, 1, 1...}
最后,ROW(A1:A646)
元素只创建一个数组{1, 2, 3, 4, 5, 6...}
然后使用SUMPRODUCT来查找数组的乘积之和,例如对于数组的第一个元素,产品是0 * 1 * 1 = 0但对于fift元素 - 符合您标准的元素 - 产品是1 * 1 * 5,它为您提供行号。
INDEX然后为您提供您正在寻找的答案。