无需数据透视表,如何用Excel公式转换指定表格结构?
不使用数据透视表实现Excel表格结构转换的公式方法
源数据与目标结构说明
源数据(假设位于A1:D7单元格区域)
| product_code | Component_code | severity | Count |
|---|---|---|---|
| GMFOPEN | GMFOPENAPP | HIGH | 1 |
| GMFOPEN | GMFOPENPROJECT | CRITICAL | 5 |
| GMFOPEN | GMFOPENPROJECT | HIGH | 41 |
| GMFOPEN | GMFOPENPROJECT | LOW | 3 |
| GMFOPEN | GMFOPENPROJECT | MEDIUM | 39 |
| GMFOPEN | GMFOPENPROJECT | SUGGEST | 1 |
目标结构(假设从F1:K3开始构建)
| product_code | component_code | HIGH | CRITICAL | MEDIUM | LOW | SUGGEST |
|---|---|---|---|---|---|---|
| GMFOPEN | GMFOPENAPP | 1 | ||||
| GMFOPEN | GMFOPENPROJECT | 41 | 5 | 39 | 3 | 1 |
可用公式方案
1. SUMIFS函数(最直接的统计方法)
针对目标表中每个 severity 列的单元格,使用SUMIFS多条件求和:
- 以目标表H2单元格(GMFOPENAPP对应的HIGH值)为例,公式为:
解释:匹配=SUMIFS($D:$D,$A:$A,$F2,$B:$B,$G2,$C:$C,H$1)product_code等于F2、Component_code等于G2、severity等于H1的记录,对Count列求和。 - 把公式向右、向下填充,即可自动计算所有对应值;若要让无匹配的单元格显示空白,可嵌套
IF:=IF(SUMIFS($D:$D,$A:$A,$F2,$B:$B,$G2,$C:$C,H$1)=0,"",SUMIFS($D:$D,$A:$A,$F2,$B:$B,$G2,$C:$C,H$1))
2. INDEX+MATCH组合函数
通过定位匹配行的Count值实现,适合单条匹配的场景:
- 目标表H2单元格公式:
解释:用=IFERROR(INDEX($D:$D,MATCH(1,($A:$A=$F2)*($B:$B=$G2)*($C:$C=H$1),0)),"")MATCH找到同时满足三个条件的行号,再用INDEX提取对应Count值;IFERROR处理无匹配的情况,返回空白。 - 注意:旧版Excel中这是数组公式,需要按
Ctrl+Shift+Enter确认;新版Excel会自动识别数组运算。
3. SUMPRODUCT函数
利用数组运算实现多条件统计,效果类似SUMIFS:
- 目标表H2单元格公式:
解释:通过逻辑判断生成数组,相乘后求和;无匹配时返回0,同样可嵌套=SUMPRODUCT(($A:$A=$F2)*($B:$B=$G2)*($C:$C=H$1)*$D:$D)IF转为空白:=IF(SUMPRODUCT(($A:$A=$F2)*($B:$B=$G2)*($C:$C=H$1)*$D:$D)=0,"",SUMPRODUCT(($A:$A=$F2)*($B:$B=$G2)*($C:$C=H$1)*$D:$D))
补充说明
- 目标表的
product_code和component_code列,Excel 365及以后版本可直接用UNIQUE函数提取不重复组合:
旧版Excel可通过高级筛选功能提取不重复值,无需公式。=UNIQUE(A2:B7)
内容的提问来源于stack exchange,提问作者Cesare
相关产品推荐
相关产品推荐

