在Google表格中,我正在尝试使用Excel中的INDEX MATCH返回与日期范围之间的最小绝对最近值关联的帐户名称。
=ARRAYFORMULA(INDEX(B2:B,MATCH(MIN(ABS(C2:C-$G$5)),ABS(C2:C-$G$5),(A2:A>=G2)*(A2:A<=G3))))
以下是数据值:
以下是一些虚拟数据的示例:
现在公式正在运作...... sorta。它返回与最小绝对最近值相关联的帐户名,但不是从以下指定的日期范围返回:
(A2:A>=G2)*(A2:A<=G3)
这是返回帐户“A”,因为它是第一个值并且最接近猜测,但它是由G2和G3指定的日期范围的外部。
从这个例子中应该返回的正确答案是“C”,来自单元格B4。
这个公式我做错了什么?
谢谢!
答案 0 :(得分:1)
match()
的第3个参数应为-1, 0, or 1。所以基本上(A2:A>=G2)*(A2:A<=G3)
你的公式中没有任何东西。如果要在某些范围之间进行匹配,可以使用filter()
。所以你的公式应该是这样的。
=arrayformula(
index(
filter(B2:B, A2:A >= $G$2, A2:A <= $G$3),
match(
min(abs(filter(C2:C, A2:A >= $G$2, A2:A <= $G$3) - $G$5)),
abs(filter(C2:C, A2:A >= $G$2, A2:A <= $G$3) - $G$5),
0
)
)
)
我测试了它并且它起作用了。样本表为here。