首先要说一个血肉教训:Vlookup不靠谱,一定要在得到想要匹配的结果后,在一个新的excel文档中,重新复制-粘贴数值。
不然,有时候你花了半天vlookup后的数据,第二天打开发现是匹配前的数据! (具体原因懒得分析了)
关键有二:
1) $字符
该符合保证了后面的字符不会随着拉动而自动变化
2) Column(A1)函数
该函数返回输入变量所在的列名
示例:
表1:
表2:
每个grid对应后面的t0~t23共24个字段
表1的tid-250m对应表2的grid
目标是得到表1的tid-250m的t0~t23字段
步骤:
1)首先我们按照单列匹配的方法,输入vlookup的公式,得到第一列的结果,如下:
没有匹配成功的原因是有的列没有对应的值,检查后续有值的格网发现是匹配成功的。
2)修改公式
原公式如下:
> =VLOOKUP(C2,'02_time.csv'!$ A:$Y,2,0)
修改后的公式如下:
=VLOOKUP($C2,'02_time.csv'! $ A:$Y,COLUMN(B2),0)
## 重要!!这里的B2中的B列,是针对你所选择的单元框架来说的第二列,而不是针对全部单元格的B列
对了, 在Vlookup后如果有太多没有匹配数值的情况,或许会带来分析上的麻烦,因此最好还是在这一步就把空值设置为0,公式如下:
=IFERROR(VLOOKUP($C2,'02_time.csv'! $ A:$Y,COLUMN(B2),0),0)
注意,函数是COLUMN(),不是COLUMNS()。没有S!