查找具有多个匹配条件的最接近的数字索引+匹配+最小值+绝对值

时间:2020-03-15 08:24:48

标签: excel excel-formula

如何找到最近的电话号码?匹配两个条件(名称和日期)。

=INDEX(G6:G18,MATCH(1,MIN((K3=E6:E18)*(L3=F6:F18),ABS(G6:G18-M3)),ABS(G6:G18-M3),0))

最接近数字的Excel数据:

enter image description here

2 个答案:

答案 0 :(得分:0)

如果Number与表中的两个数字等距,则不会显示您想要的内容。根据顺序,这些公式可能会返回一个或另一个。

请注意,我已将您的数据转换为表,并且正在使用结构化引用。但是这些公式在常规寻址中同样可以很好地工作。

如果您具有带有FILTER函数的最新版本的Excel:

=INDEX(INDEX(FILTER(Table1,(K3=Table1[Name])*(L3=Table1[date])),0,3),MATCH(MIN(ABS(M3-INDEX(FILTER(Table1,(K3=Table1[Name])*(L3=Table1[date])),0,3))),ABS(M3-INDEX(FILTER(Table1,(K3=Table1[Name])*(L3=Table1[date])),0,3)),0))

如果您没有FILTER功能,请尝试:

=INDEX(AGGREGATE(15,6,1/((K3=Table1[Name])*(L3=Table1[date]))*Table1[number],ROW(INDIRECT("1:"&COUNT(1/((K3=Table1[Name])*(L3=Table1[date])))))),MATCH(MIN(ABS(M3-AGGREGATE(15,6,1/((K3=Table1[Name])*(L3=Table1[date]))*Table1[number],ROW(INDIRECT("1:"&COUNT(1/((K3=Table1[Name])*(L3=Table1[date])))))))),ABS(M3-AGGREGATE(15,6,1/((K3=Table1[Name])*(L3=Table1[date]))*Table1[number],ROW(INDIRECT("1:"&COUNT(1/((K3=Table1[Name])*(L3=Table1[date]))))))),0))

enter image description here

答案 1 :(得分:0)

我将这些条件结合在一起,最近值将具有最大的 1 /(差),这时汇总将起作用,然后只需找到其使用match进行索引,以下是公式:

=INDEX(M3:M8,MATCH(AGGREGATE(14,6,1/((K3:K8=O2)*(L3:L8=P2)*(ABS(Q2-M3:M8)+1)),1),1/((K3:K8=O2)*(L3:L8=P2)*(ABS(Q2-M3:M8)+1)),0))

enter image description here

更新:感谢@Ron Rosenfeld的反馈!当差为零时,以前的公式不起作用。

希望它能起作用!

相关问题