Excel数据透视表 - 计算总和的平均值

14

我知道这很简单,但是如何让数据透视表显示计算字段的平均值呢?在简化的例子中,我已经过滤掉了X1基金,并且透视表正在显示每个人的剩余基金的总和。那么我如何得到一个按人员分组的平均值(手动计算为3300/3)?

我尝试使用计算字段,但无法弄清它如何工作,因为分母将根据我筛选的资金拥有者人数而改变。如果我在计算字段内部使用平均值,它将返回资金的平均值。

我尝试在透视表外部进行计算,这可以解决问题,但是当然,随着我筛选数据,我的计算字段不再与透视表相邻,而是漂浮在工作表上。

谢谢您提供帮助。

example

根据要求,以下是字段列表 - 如果我尝试将“金额的平均值”添加到值框中,则会平均每个基金的金额,而不是每个人的资金总额。

enter image description here


你能否包含一个数据透视表字段列表的屏幕截图?根据你的源数据和表格设置,可能有一种方法在单个数据透视表中同时完成两个任务。 - B-Rell
编辑以添加字段列表。 - Sparky McSparky
根据这些答案的质量,我认为把它们放入数据库并使用SQL会更容易。 - undefined
5个回答

2

这里是一份有效的解决方案:

首先,您应该安装或启用Power Pivot。引用微软公司的话:

Power Pivot是Excel的插件,您可以使用它执行强大的数据分析和创建复杂的数据模型。

https://support.office.com/zh-cn/article/power-pivot-%E5%9C%A8-excel-%E4%B8%AD%E5%BC%BA%E5%A4%A7%E7%9A%84%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%92%8C%E6%95%B0%E6%8D%AE%E6%A8%A1%E5%9E%8B%E5%BB%BA%E7%AB%8B-a9c2c6e2-cc49-4976-a7d7-40896795d045?ui=zh-CN&rs=zh-CN&ad=CN

在更新版本的Excel中,Power Pivot已经安装好了,您只需要通过以下方式启用:

文件 > 选项 > 高级选项 > 数据 > 启用数据分析插件:Power Pivot、Power View和Power Map。

好了,现在您已经拥有了Power Pivot,并且可以看到Power Pivot选项卡。请按照以下步骤进行操作:

  1. 选择您的数据并单击Power Pivot选项卡上的“添加到数据模型”图标。
  2. 在Power Pivot窗口中,添加一列来计算数据中不同人数。=[person]的DISTINCTCOUNT()名称为例如“DistPersNo”。这是关键步骤- Power Pivot使您能够计算所选列中唯一值的数量。
  3. 添加另一列,公式为=[amount]/[DistPersNo],将其命名为“PersonAverages”。
  4. 在Power Pivot窗口中,单击“数据透视表”,并向您的工作表添加新的数据透视表。
  5. 在数据透视表中,将“persons”添加到行中,“amount”添加到值中。现在,如果您向值中添加“PersonAverages”(求和),并过滤出基金“x1”,您将实现所需的结果,即1100的值。

希望这能够帮到您。


1

我会在D列中添加一个辅助列来计算唯一客户。

  1. 按人员对数据进行排序
  2. 在D2单元格中输入=IF(A2=A1, 1, 0)并将该列命名为UniqueCust
  3. 将公式复制到整个数据集的所有行
  4. 将该列添加到您的数据透视表中
  5. 在您的数据透视表中创建一个名为Avg per Cust的公式=Value/UniqueCust

这将标记数据中每一行,如果该名称是第一次出现在该列中,则标记为1,否则标记为零。数据透视表计算将总值相加并除以唯一客户总数。


0

我假设您希望该值出现在任何数据透视表中,而不是作为公式计算在数据透视表外的单元格中。

作为解决方法,您可以使用另一个数据透视表,该数据透视表以原始数据透视表作为输入来查找平均值。

数据透视表

第二个数据透视表的数据源为- E3:F5 或者您需要的任何行。

您需要刷新所有内容,以便第二个数据透视表反映第一个数据透视表筛选器中的任何更改。

我已经隐藏了(或者您可以将其过滤掉)第一个数据透视表中的总计,以便平均值给出金额总和的平均值。


-3

由于您没有提及如何使用数据,我将提供几个可行的选项。

如果您是数据的唯一用户,或者其他人使用数据时熟悉数据透视表,您可以使用以下字段列表设置来切换数据使用:

按基金排序(请注意行标签部分中的基金和人员)

enter image description here

按人员排序(请注意,在行标签部分,基金和人员的位置是相反的)

enter image description here

为了简化数据,您可以始终将主要字段最小化。
如果您要将数据透视表分发给其他人,而这些人无法或不愿修改透视表数据,则建议使用相同的数据源设置两个单独的透视表,并使用我上面展示的相同设置。

5
唔...也许我漏掉了什么,但这个答案与问题有什么关系?在你的示例中,计算的总和平均值显示在哪里? - Ajedi32
1
有人对我的标记提出了异议;由于某种令人困惑的原因,有人认为这个答案是相关的。但事实并非如此。这不是对所提问的问题的回答。它没有展示如何使组小计显示其子行中包含的总和的平均值。相反,它只是告诉OP如何更改行组的顺序,而他们并没有提出这个问题。 - underscore_d

-3
  1. 点击数据透视表以打开字段列表。
  2. 在“值”部分,找到“金额总计”,并单击下拉箭头。
  3. 单击“值字段设置”,在弹出窗口中的列表中选择“平均值”。

enter image description here


我输入了答案,然后意识到你已经发布了解决方案。 - Chaos Legion
2
这并没有帮助,只需对平均值进行求解而不是总和。发帖者想要先求总和,然后对总和求平均值。 - rankthefirst
1
这只是更改整个列的聚合方法,而不仅仅是“总计”行。 - Max Segal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接