「excel」复杂的VLOOKUP加多个函数的例子

今天朋友发来这个任务,要求把源数据表月份横排的数据填到目标表对应的月份中,源数据表有几百家企业,目标数据表有3000多行,人工去做得累成狗,猛一看感觉挺简单,原本想VBA挺简单,但是大多人的WPS都不带VBA,能公式解决的还是用公式吧 。

「excel」复杂的VLOOKUP加多个函数的例子

源数据表


「excel」复杂的VLOOKUP加多个函数的例子

目标表
【「excel」复杂的VLOOKUP加多个函数的例子】=VLOOKUP(INDIRECT("$C"& ROUNDDOWN((ROW()-2)/24,0)*24 2),Sheet1!$C:$AB,XMATCH(SUBSTITUTE(D2,"-",""),TRANSPOSE(Sheet1!$C$1:$AB$1),0,1),FALSE),这是单元格E2的公式,往下拉到最后一行就行 。下面对公式做些分解:
VLOOKUP (查找值,包含查找值的范围,包含返回值的范围中的列号,近似匹配 (TRUE) 或精确匹配 (FALSE) ),参数
1.查找值 , 在我这个表格中,需要表1和表2的企业名称进行精确匹配,查找值C2到C25都为同一个企业,所以要用公式INDIRECT("$C"& ROUNDDOWN((ROW()-2)/24,0)*24 2)去取得企业名称,ROUNDDOWN函数用于不进位的四舍五入,ROW()取得当前行,如果当前行是C29, "$C"&ROUNDDOWN((ROW()-2)/24,0)*24 2=$C26,INDIRECT("$C2")就可以取得单元格$C26的值,即取得VLOOKUP的查找值 。
2.包含查找值的范围,这个不需要公式,为源数据表的列Sheet1!$C:$AB 。
3.包含返回值的范围中的列号,如果1和2匹配到了,就可以取某一列的值 。在这里一个是月份横排,一个是月份竖排,所以需要动态去匹配,XMATCH(SUBSTITUTE(D2,"-",""),TRANSPOSE(Sheet1!$C$1:$AB$1),0,1),SUBSTITUTE(D2,"-","")用于把竖排的月份的-替换为空 , TRANSPOSE(Sheet1!$C$1:$AB$1)用于把横排的月份转换成竖排,才能用XMATCH查找 。
写得可能不太明白 , 只是自己做个记录 。
「excel」复杂的VLOOKUP加多个函数的例子

相关经验推荐