Excel技术求助:如何根据单元格值自动填充关联列数据
Excel自动提取数据解决方案
没问题,这场景我经常帮人解决,给你分字段一步步讲公式,直接套就行:
先明确几个前提(你可以根据实际表名调整):
- 数据源表我暂时叫它
DataSource,换成你自己的表名就行 - 目标表的下拉单元格:
- A列是Payment Type(选项是"cash"或"FINANCE")
- B列是System Size (kw)(选项和数据源的
System Size Panels列内容完全匹配)
1. 填充Inverter Type(目标表C2单元格)
如果用Excel 365/2021,推荐用更直观的XLOOKUP:
=XLOOKUP(B2, DataSource!$A:$A, DataSource!$B:$B, "无匹配数据")
要是用旧版Excel,用VLOOKUP保证兼容:
=VLOOKUP(B2, DataSource!$A:$B, 2, FALSE)
解释:根据B列的系统尺寸,从数据源A列找到对应行,返回B列的逆变器型号
2. 填充No. of Panels(目标表D2单元格)
假设你的数据源System Size Panels列格式是类似「5kW (16 panels)」这种,需要提取面板数:
- Excel 365/2021用拆分函数:
=TEXTAFTER(TEXTBEFORE(B2, " panels"), "(")
- 旧版Excel用字符串截取:
=MID(B2, SEARCH("(", B2)+1, SEARCH(" panels", B2)-SEARCH("(", B2)-1)
如果数据源里有单独的面板数列,直接把上面公式里的数据源列换成对应列就行
3. 填充RRP $(目标表E2单元格)
根据Payment Type自动切换价格列:
- XLOOKUP版本:
=IF(A2="FINANCE", XLOOKUP(B2, DataSource!$A:$A, DataSource!$C:$C, "无匹配"), XLOOKUP(B2, DataSource!$A:$A, DataSource!$D:$D, "无匹配"))
- VLOOKUP版本:
=VLOOKUP(B2, DataSource!$A:$D, IF(A2="FINANCE", 3, 4), FALSE)
解释:如果付款类型是FINANCE,取数据源C列的金融价;是cash就取D列的现金价
注意事项
- 确保下拉选项和数据源
System Size Panels列的内容完全一致(包括大小写、空格,比如"5kW"和"5 kW"会被当成不同值) - 公式输入后,直接下拉填充就能应用到目标表的其他行
- 如果你的匹配条件是多个字段组合,可以用
XLOOKUP的数组匹配或者INDEX+MATCH组合
内容的提问来源于stack exchange,提问作者Yvette Walker
相关产品推荐
相关产品推荐

