如何在Power BI中输出Criteria 1平均值最高的Department ID
问题描述
我有一份数据表,需要按每个重复的Department ID计算Criteria 1的平均值,并输出拥有最大平均值的Department ID的值,该如何实现?
原始数据表
| Department ID | Criteria 1 |
|---|---|
| DEP 001 | 4 |
| DEP 002 | 2 |
| DEP 003 | 1 |
| DEP 004 | 5 |
| DEP 001 | 3 |
| DEP 003 | 2 |
| DEP 002 | 4 |
| DEP 001 | 3 |
| DEP 004 | 2 |
| DEP 001 | 1 |
| DEP 002 | 3 |
| DEP 003 | 4 |
计算示例
Average(DEP 001) = (4+3+3+1)/4 = 11/4 = 2.75 Average(DEP 002) = (2+4+3)/3 = 9/3 = 3 Average(DEP 003) = (1+2+4)/3 = 7/3 = 2.3 Average(DEP 004) = (5+2)/2 = 7/2 = 3.5 MAX(Average(DEP 001), Average(DEP 002), Average(DEP 003), Average(DEP 004)) = 3.5 Result = DEP 004
实现方法
1. Excel实现
- 步骤1:计算各部门平均值
在空白单元格(如C2)输入公式:=AVERAGEIF($A$2:$A$13, A2, $B$2:$B$13),下拉填充至所有行,得到每个Department ID对应的平均值。 - 步骤2:获取结果
输入公式:=INDEX(A:A, MATCH(MAX(C:C), C:C, 0)),直接得到拥有最大平均值的Department ID。
2. Python(Pandas库)实现
import pandas as pd # 构造数据表 data = pd.DataFrame({ 'Department ID': ['DEP 001', 'DEP 002', 'DEP 003', 'DEP 004', 'DEP 001', 'DEP 003', 'DEP 002', 'DEP 001', 'DEP 004', 'DEP 001', 'DEP 002', 'DEP 003'], 'Criteria 1': [4, 2, 1, 5, 3, 2, 4, 3, 2, 1, 3, 4] }) # 分组计算平均值 dept_avg = data.groupby('Department ID')['Criteria 1'].mean() # 提取平均值最大的部门 max_avg_dept = dept_avg.idxmax() print("Result =", max_avg_dept)
运行后输出:Result = DEP 004
3. SQL实现
假设数据表名为department_data,字段为department_id和criteria_1,执行以下语句:
SELECT department_id FROM ( SELECT department_id, AVG(criteria_1) AS avg_criteria FROM department_data GROUP BY department_id ) AS dept_avg ORDER BY avg_criteria DESC LIMIT 1;
执行后返回平均值最大的Department ID(即DEP 004)。
内容的提问来源于stack exchange,提问作者Nodira Fozilova
相关产品推荐
相关产品推荐

