Excel双表行列匹配与值填充的技术咨询
嘿,我猜你现在正对着Excel里的两个表格犯愁,想要根据行和列的匹配关系自动填充对应的数据对吧?这可是咱们做数据整理时高频遇到的需求,我给你分享几个实用的解决办法,你可以根据自己的Excel版本来选:
INDEX+MATCH组合(全版本兼容)
这是最经典的跨表匹配方案,不管你用的是旧版Excel还是新版都能搞定。假设你有两个工作表:一个叫「数据源表」,行标识在A列、列标识在第1行,数据区域是A1:C10;另一个是「待填充表」,同样行标识在A列、列标识在第1行,需要填充的起始单元格是B2。
你可以在B2单元格输入这个公式:=INDEX(数据源表!$B$2:$C$10,MATCH(待填充表!$A2,数据源表!$A$2:$A$10,0),MATCH(待填充表!B$1,数据源表!$B$1:$C$1,0))
输入完按回车,然后把公式下拉+右拉就能批量填充啦。这里要注意公式里的绝对引用符号$,它能保证下拉时行标识的列不变、右拉时列标识的行不变,避免匹配出错。XLOOKUP嵌套(适合Excel 365/2021及以后版本)
如果你用的是新版Excel,XLOOKUP会让操作更简洁,甚至不用纠结引用问题。同样的场景,在待填充表的B2单元格输入:=XLOOKUP($A2,数据源表!$A:$A,XLOOKUP(B$1,数据源表!$1:$1,数据源表!$A:$C))
这个公式是嵌套了两层XLOOKUP:先根据列标识找到数据源里的目标列,再根据行标识在这个列里找到对应的值,一步到位,非常直观。小技巧:处理匹配不到的情况
如果遇到行/列标识不匹配的情况,公式会返回#N/A错误,想要让单元格显示空白的话,可以给公式套个IFERROR函数,比如:=IFERROR(INDEX(数据源表!$B$2:$C$10,MATCH(待填充表!$A2,数据源表!$A$2:$A$10,0),MATCH(待填充表!B$1,数据源表!$B$1:$C$1,0)),"")
备注:内容来源于stack exchange,提问作者ammu anu

