我有一个学生数据库,我试图根据学生在数据透视表中的得分范围来显示不同的指标。具体来说(这是一个简化的例子,所以不要担心内容)我想在我的支点中展示这个:
StudentGPACat | Avg Post-Grad Salary
3-3.2 | 64,323
3.2-3.4 | 71,225
3.4-3.6 | etc
3.6-3.8 | etc
3.8-4.0 | etc
所以我希望我的数据透视表中的行显示学生平均分数的范围。
为了生成该指标,我现在做了两件事:
(1)在PowerPivot的主表中添加了一个名为[avgGrade]的新列,该列显示了" Grades"中的[TableAvgGrade]计算字段的值。每个学生的表格(即主表格中的每一行)
=CALCULATE([TableAvgGrade],
FILTER(Grades,Grades[studentID]=Master[studentID]))
(2)在PowerPivot中创建了一个新列[StudentGPACat],公式为:
=If([avgGrade]<3,"3",
If([avgGrade]<3.2,"3-3.2",
If([avgGrade]<3.4,"3.2-3.4",
If([avgGrade]<3.6,"3.4-3.6",
If([avgGrade]<3.8,"3.6-3.8","3.8-4.0")))))
这感觉笨重且计算成本高。有没有更简单的方法来创建这些范围以用作我的数据透视表中的行?
编辑:做了一些修改以澄清我的问题 EDIT2:输入
答案 0 :(得分:0)
您所做的是创建此类列的适当模式。如果您关注粗糙嵌套的IF(),可以替换为SWITCH(),这只是嵌套IF()的语法糖,但您所发布的就是您所需要的。
答案 1 :(得分:0)
在数据透视表中(我不知道PowerPivot),如果您使用数值作为Row Label
,则可以右键单击该字段,选择Group
,定义{{ 1}}值,Starting at
值和Ending at
步,您将很容易得到相同的结果。