根据多个条件查找EXCEL中最接近的匹配项
请在下面find我的问题陈述:
要求:对于以下显示logging中的每一行,我想在10分钟范围内findlogging,并在数量的+15单位内findlogging。 然后find与当前logging最接近的logging并获取价格值。
例如:对于Sno = 1的第一条logging,logging在10分钟时间范围内和在-15单位数量内的logging是Sno = 2,4,6的logging。 在这三个logging中,在时间范围内最接近的logging是Sno = 2的logging。所以我想得到Sno = 2的logging的价格值,即12。
- Sno价格数量时间
- 1 10 100 05/08/2013 10:12:13 AM
- 2 12 111 05/08/2013 10:10:11 AM
- 3 13 123 05/08/2013 10:22:13 AM
- 4 2 111 05/08/2013 10:22:13 AM
- 5 13 112 05/08/2013 10:42:13 AM
- 6 14 100 05/08/2013 10:15:13 AM
感谢你的帮助 :)
谢谢RVK
假设A2:D7
数据,inputE2
并填写:
=LOOKUP(2,1/(ABS(D$2:D$7-D2)<TIME(,10,1))/FREQUENCY(0,ABS(D$2:D$7-D2)*(2*(ABS(C$2:C$7-C2)<=15)-1)-(A$2:A$7=A2)),B$2:B$7)
说明
该公式可以分解为几个部分(通过突出显示公式栏中的选定部分并按F9):
A: =(ABS(D$2:D$7-D2)<TIME(0,10,1))
返回{TRUE;TRUE;TRUE;TRUE;FALSE;TRUE}
这是一个数组,表示是否在10分钟内或10:01
来四舍五入)
B: =FREQUENCY(0,{...})
返回15个数量单位内最接近的时间的{0;1;0;0;0;0;0}
。 ABS(D$2:D$7-D2)*(2*(ABS(C$2:C$7-C2)<=15)-1)
返回一组时间差,如果产品在15个单位内,否则, -(A$2:A$7=A2)
被添加,所以当前行返回负数。 在第一个参数中为零,频率函数将忽略这些负数。
C:= LOOKUP(2,1/A/B,B$2:B$7)
返回相应的匹配,其中A和B都是1或TRUE。 使用倒数作为LOOKUP忽略错误,如果找不到匹配,LOOKUP将返回#N / A。