【发布时间】:2018-03-23 09:15:09
【问题描述】:
我试图通过 PowerPivot 的数据透视表显示我们招聘流程各个部分的平均持续时间。因此,例如,作为整个过程的一部分,您将能够看到候选人处于“面试”阶段的平均时间。我正在使用 AppDuration 的事实表按候选人、职位和持续时间进行细分。以下是数据示例:
RequisitionID CandidateID Req-CandidateKey HireStatus Duration
555 111 555_111 App Review 3
555 111 555_111 Phone Screen 5
555 111 555_111 Interview 7
555 222 555_222 Phone Screen 10
666 333 666_333 App Review 12
666 333 666_333 Phone Screen 15
666 444 666_444 App Review 5
666 444 666_444 Phone Screen 4
666 444 666_444 Offer Extend 15
我还有一个查找表 StatusMaster 来对各种 HireStatus 值进行分组
HireStatus StatusCategory
App Review Initial
Phone Screen Intermediate
Interview Intermediate
Offer Final
AppDuration 和 StatusMaster 通过 HireStatus 上的关系连接。我想检查 StatusCategory 级别的平均持续时间。
我的想法是我首先需要对申请-候选人组合的不同实例进行计数,因此我创建了度量
DistinctReqApplicants:=DISTINCTCOUNT(AppDuration[Req-CandidateKey])
然后对 Duration 字段求和
DurationTotal:=SUM(AppDuration[Duration])
然后把两者分开
CandidateAvgDur:=DIVIDE([DurationTotal], [DistinctReqApplicants])
然后我创建一个数据透视表,其中将 CandidateAvgDuration 放入值中,将 StatusCategory 放入行中。但问题是总计不等于类别平均值的总和
在我的结果中,当您总结各个类别时,总计应该是 38.3,但实际上是 23.0。我没有应用任何其他过滤器。我很困惑,因为根据我查找的示例和我在这里引用的帖子,这似乎很简单。但是,当谈到 PowerPivot 时,我完全是个菜鸟,所以我确信我缺乏经验是在这里工作的。任何帮助或建议表示赞赏。
【问题讨论】:
-
如果总持续时间为 3+5+7+10+12+15+5+4+15 = 76 并且您有 4 个不同的候选人,那么我希望您的平均为 76/4 = 19. 为什么你认为应该是 38.3?
-
对不起,预期总数基于我的整个数据集。帖子中包含的数据只是其中的一个示例。问题实际上是总计与类别平均值之和之间的不匹配。
-
一般来说,求平均值的总和不等于取整体平均值,也不应该这样。这篇文章可能有用:powerpivotpro.com/2012/03/…
-
感谢您的回复@AlexisOlson。我已经阅读了这篇文章,虽然我理解在平均值方面需要行迭代,但我不能说我完全理解是什么驱动了对 IF(COUNTROWS()) 的需求,因为链接的文章对菜鸟来说并不完全清楚比如我自己。也不确定为什么 GregGalloway(下)的答案在没有任何 IF(COUNTROWS()) 功能的情况下有效。
-
这是因为他们对两种不同的场景使用了两种不同的计算:一种用于单行计算,另一种用于多行计算。在许多情况下,当多行计算在单行的筛选上下文中进行计算时,它会解析为单行情况,但情况并非总是如此。如果多行计算不归结为单行计算,则需要
IF函数。
标签: powerpivot