首页 > 解决方案 > 根据 2 个类别查找平均值并计算

问题描述

在此处输入图片 描述

data
--------------------------              
X   |   id   |    value
--------------------------      
Mos |   1.1. |  74 | 78 | 70
Mos |   1.2. |  70 | 79 | 70
Mos |   2.1  |  70 | 76 | 73
Mos |   2.2  |  70 | 73 | 75
Mos |   3.1  |  77 | 72 | 78
Abs |   3.1  |  75 | 76 | 79
Abs |   3.2  |  74 | 80 | 77
Abs |   4.1  |  71 | 78 | 77
Abs |   4.2  |  76 | 76 | 76
Abs |   4.3  |  71 | 73 | 72
Cor |   1.2. |  75 | 70 | 78
Cor |   1.3. |  78 | 79 | 80
Cor |   2.1  |  79 | 70 | 70
Cor |   3.3  |  78 | 79 | 80
Cor |   4.1  |  78 | 74 | 72
Cor |   4.2  |  78 | 72 | 78
--------------------------

结果如下

result
------------------------            
id | Mos  | Abs  |  Cor
------------------------
1  | 73.5 | 0.0  |  76.7
2  | 72.8 | 0.0  |  73.0
3  | 75.7 | 76.8 |  79.0
4  | 0.0  | 74.4 |  75.3

如何制作公式?假设这样:

=IF("MOS" and LEFT(,1),SUM(D3:F4)/COUNT(D3:F4))

如果在“X”列找到“MOS”,根据以(1 or 2 or 3 or 4)开头的“id”,那么值表就会加起来除。

或者

=AVERAGEIFS(D3:F18,B3:F18,I2,C3:F18,H3&"*")

标签: excelvba

解决方案


使用您的数据样本,将其放入 H3 并根据需要向下复制。数组公式,因此请使用 Ctrl+Shift+Enter。

=AVERAGE(IF($A$2:$A$8=H$2,IF(VALUE(LEFT($B$2:$B$8,1))=$G3,$C$2:$E$8)))

在此处输入图像描述


推荐阅读