vlookup不同长度的值之间

时间:2014-09-22 06:59:41

标签: excel-vba excel-formula vba excel

我正在尝试执行一个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

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

我做了一些假设,因为你在问题中没有描述性

下面的公式将查找表值的大小调整为与查找值相同的长度。例如。在比较35799700000时,查找值41实际上将在查找表中41000000000。将所有查找表值按比例放大后,使用MIN()ABS()计算与查找值最接近的数字,并返回相应的X1X2 ...等(我从上面的设置中假设了这一点)

{=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

进入

下面的工作模型图。如果您不使用相同的设置,则需要更改公式中的单元格引用

enter image description here