如何用Vlookup对逗号分隔列表中的项目进行自动求和?
逗号分隔名称的VLOOKUP求和解决方案
针对Excel 365/2021及以上版本
直接使用以下公式,替换公式中的数据源工作表为你实际存放名称和数值的工作表名称:
=SUM(VLOOKUP(TEXTSPLIT(A1, ", "), 数据源工作表!A:B, 2, FALSE))
TEXTSPLIT(A1, ", ")会把A1中逗号加空格分隔的名称拆分成独立的名称数组VLOOKUP会逐个匹配数组里的名称,返回对应工作表B列的数值SUM将所有匹配到的数值求和
如果你的分隔符是仅逗号无空格,把公式中的", "修改为","即可。
针对旧版Excel(不支持TEXTSPLIT)
使用数组公式,输入完成后需按Ctrl+Shift+Enter组合键确认(而非普通回车):
=SUM(IFERROR(VLOOKUP(TRIM(MID(SUBSTITUTE(A1, ",", REPT(" ", 100)), (ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1, ",", ""))+1))-1)*100+1, 100)), 数据源工作表!A:B, 2, FALSE), 0))
- 公式通过替换逗号为长空格、截取片段、去除多余空格的方式,拆分出独立名称
IFERROR会将匹配不到的名称对应的数值设为0,避免求和出错- 数组特性让VLOOKUP能批量处理所有拆分后的名称
必看注意事项
- 名称格式必须完全一致:比如数据源中是
height 1(带空格),但A1中是height1(无空格),VLOOKUP会匹配失败,务必统一两边的名称格式 - 若数据源存在重复名称,VLOOKUP仅返回第一个匹配值;如需对重复名称的数值求和,可改用
SUMIF结合拆分数组,新版公式示例:=SUM(SUMIF(数据源工作表!A:A, TEXTSPLIT(A1, ", "), 数据源工作表!B:B))
内容的提问来源于stack exchange,提问作者Anonymous
相关产品推荐
相关产品推荐

