在Excel中不能很好地评估用户的报告

我有一个电子表格,对应于用户的条目,他们的估计和实际值(例如:某个特定项目的小时数 – 这只是一个例子),我们可以用CSV来表示这个数据表格:

User,Estimate,Actual "User 1",5,5 "User 1",7,7 "User 2",3,3 "User 2",9,8 "User 3",6,7 "User 3",8,7 

我试图build立这些用户的报告,以快速查看哪些用户低估或高估,所以我创build了一个数据透视表。 但是,我不知道如何简单地显示用户在某个时候是否被低估了。 我试图创build一个计算的字段,如=IF(Estimate > Actual, 1, 0) ,但是这个总和,然后比较EstimateActual列,并告诉我,“用户3”不超过/低估。

没有添加额外的字段到我的数据,我怎么能做到这一点?

一个类似的SQL伪查询将是:

 SELECT DISTINCT al.User, (SELECT COUNT(*) FROM ActivityLog AS l2 WHERE l2.User = al.User AND l2.Estimate > l2.Actual) AS Overestimates FROM ActivityLog AS al 

编辑:

我仍然在研究这个问题,目前已经在一些单元格中创build了一个静态的用户列表,并给了他们数组公式: {=SUM(IF((A$2:A20 = F6)*(B$2:B20 > C$2:C20), 1, 0))}{=SUM(IF((A$2:A20 = F6)*(B$2:B20 < C$2:C20), 1, 0))}如果我在F6F6户名)。

主要,我想这样做,用户列表可以从主要数据dynamic填充。

数据透视表中的计算字段很臭。 我会摆脱数据透视表,并与公式做到这一点。 在H15中启动一个唯一的用户列表,并在I15中input

 {=MAX(($A$2:$A$7=H16)*($B$2:$B$7-$C$2:$C$7<>0))} 

数组input。 如果他们超过或低于预期,这将返回1,如果他们从未这样做,则返回零。 缺点是你不能像刷新数据透视表一样“刷新”,所以你必须确保你的唯一用户列表一直是准确的。

如果这太大了,我认为你需要添加一个列到你的源数据。 特别

 =ABS(B2-C2) 

并将其添加到您的数据透视表。 它将显示零从未超过/不足,否则非零。

你知道你应该确保估计都在同一个范围内? 较小的数字可以更好地估计(当谈到几个小时)。

为实际估算添加一列

然后总结那些最小值和平均值。 (或stddev)