我正在尝试执行一个VLookup(),以获得两行之间最佳匹配,其中值的长度不同。
35799700000 1902718 X1
35796961001 3584570 X2
35796961001 3584573 X3
35799700000 3584575 X4
35795977777 3584576 X5
351309312001 3579 X6
35795977777 41 X7
417999838729
67572210124
320301120086
例如,第一个号码35799700000
会让我回到3579
有人能帮助我吗?
答案 0 :(得分:0)
我做了一些假设,因为你在问题中没有描述性
下面的公式将查找表值的大小调整为与查找值相同的长度。例如。在比较35799700000
时,查找值41
实际上将在查找表中41000000000
。将所有查找表值按比例放大后,使用MIN()
和ABS()
计算与查找值最接近的数字,并返回相应的X1
,X2
...等(我从上面的设置中假设了这一点)
{=INDEX($E$1:$E$7,MATCH(MIN(ABS(($D$1:$D$7*(10^(LEN($A2)-LEN($D$1:$D$7))))-$A2)),ABS(($D$1:$D$7*(10^(LEN($A2)-LEN($D$1:$D$7))))-$A2),0))}
这是一个数组公式,所以省略花括号并使用 Ctrl + Shift + Enter
进入下面的工作模型图。如果您不使用相同的设置,则需要更改公式中的单元格引用