我在 Excel 中构建不寻常的查找公式时遇到问题。
通常,我会使用 VLOOKUP(),但缺陷是我想从按其他列排序的表中查找列中的数字。Vlookup 只能在排好序的列本身上查找内容。
场景如下:
- 该表按 B 列升序排序。
- 对于给定的参数 P,我现在想找到第一个 A 值,从顶部开始向下,大于或等于该参数 P。
- 然后该函数应返回相应的 B 值。
表(部分关闭,完整的表要大得多):
A B
1 640 4.5
2 1600 7.0
3 640 7.5
4 1280 12.0
5 1920 16.5
6 2560 21.0
7 1600 19.8
8 3200 26.8
9 4800 33.8
例如,假设我的参数是 1100,那么我希望我的公式返回 7.0,因为在 A 列中向下搜索时大于或等于 1100 的第一个条目是 1600,其对应的 B 值为 7.0
我用数组公式(也称为“ctrl-shift-enter 公式”)尝试了我的运气,并构造了这样的东西:
{=INDEX(table;
MATCH(MIN(IF(columnA-$C1>=0;columnA;FALSE));
IF(columnA-$C1>=0;columnA;FALSE);
0);
2)}
C1包含我的参数,表格范围 A1:B9,列A范围 B1:B9
但这不起作用(在上面的示例中,它返回 12.0 因为 MIN() 函数选择了 1280)。
我不想使用的解决方案: 我可以编写一些 VBA 来遍历表格,但我不想这样做(因为烦人的“宏警告”,并且因为 Mac 上的 Excel 不再支持 VBA )
有人有任何线索吗?