如何用组合公式在Excel/Google Sheets中实现指定表格转换?
表格转换的可行公式方案
1. 提取唯一项目列(目标表格第一列)
针对不同版本的表格工具,可用以下公式:
- Excel 365/2021 或 Google Sheets:
=UNIQUE(原表格项目列范围) - 旧版Excel(需按
Ctrl+Shift+Enter确认数组公式):
注:将=INDEX(原表格项目列范围,MATCH(0,COUNTIF($A$1:A1,原表格项目列范围),0))$A$1:A1替换为目标表格已填充的项目列范围,下拉公式即可生成所有唯一值。
2. 汇总对应数值(目标表格数值列)
用SUMIF函数对每个项目的数值进行求和:
=SUMIF(原表格项目列范围,目标表格当前项目单元格,原表格数值列范围)
例如目标表格A2是唯一项目,公式可写为=SUMIF(原表格!$A:$A,A2,原表格!$B:$B),下拉即可批量计算。
3. 合并文本内容(若目标表格需合并备注等文本)
- Excel 365/Google Sheets:
该公式会将同一项目的所有文本用逗号分隔合并。=TEXTJOIN(", ",TRUE,FILTER(原表格文本列范围,原表格项目列范围=目标表格当前项目单元格)) - 旧版Excel:
可使用PHONETIC函数(仅支持文本内容):=PHONETIC(FILTER(原表格文本列范围&", ",原表格项目列范围=目标表格当前项目单元格))
4. 一键生成完整目标表格(Excel 365/Google Sheets)
利用BYROW+LAMBDA+HSTACK组合,直接输出包含唯一项目、汇总数值、合并文本的完整表格:
=BYROW(UNIQUE(原表格!$A:$A),LAMBDA(x,HSTACK(x,SUMIF(原表格!$A:$A,x,原表格!$B:$B),TEXTJOIN(", ",TRUE,FILTER(原表格!$C:$C,原表格!$A:$A=x)))))
关键注意事项
- 确保原表格数据无空行或无效值,否则可能导致唯一值提取错误
- 旧版Excel的数组公式必须按
Ctrl+Shift+Enter完成输入,不能直接回车 - Google Sheets的函数语法与Excel 365基本一致,替换对应列范围即可使用
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

