【问题标题】:Excel Pivot depending upon Header valuesExcel Pivot 取决于 Header 值
【发布时间】:2016-08-01 09:07:18
【问题描述】:

我正在尝试在 excel 中创建一个数据透视表,下面是我的场景。 我有一个 5 列的 Excel 表,其中第 1、2、3 列有 3 个不同的人名(person1、person2、person3)作为标题,它的相应值将是“是”或“否”。第 4 列有金额,第 5 列有每个人的份额。份额的计算取决于第一三列中存在的值(是/否),我使用的公式是

      (D1/COUNTIFS(A1:C1,"Yes")) 
      i.e., dividing the (amount/ count( of persons having Yes value))

 Person1    Person2 Person3 Amount  PerHeadShare
 Yes        Yes     No       200         100
 Yes        Yes     Yes      300         100
 No         Yes     No       200         200
 No         No      Yes      100         100

现在我的要求是创建一个包含两列的数据透视表

  • column1 应该有 3 行,分别是 Person1、Person2 和 Person3

  • column2 应该是每个人所拥有的份额的总和

    Name          Sum
    Person1       200
    Person2       400
    Person3       200
    

【问题讨论】:

    标签: excel pivot-table


    【解决方案1】:

    如果您对 SQL 有任何经验,可以尝试以下方法:

    数据选项卡 > 从 Access > 将文件过滤器更改为 All Files (*.*) 并选择您的 Excel 文件 > 打开 > 确定 > 选择数据透视表、新建工作表,然后选择属性... > 定义选项卡 > 命令类型:SQL 并输入在命令文本中:

    SELECT Name, Sum( PerHeadShare ) As [Sum] FROM (
        SELECT 'Person1' As Name, Person1 AS y, * FROM [Sheet1$] UNION ALL 
        SELECT 'Person2' As Name, Person2 AS y, * FROM [Sheet1$] UNION ALL 
        SELECT 'Person3' As Name, Person3 AS y, * FROM [Sheet1$] ) 
    WHERE y = 'Yes'
    GROUP BY Name
    

    OK > OK > 将 Name 字段拖到 Row Labels,将 Sum 字段拖到 Values,然后重命名数据透视表中的标题。

    在命令文本中,“Sheet1”必须更改为工作表的名称,其中数据后面带有 $,或命名范围不带 $,如 [named Range],或工作表中的特定范围,如 [Sheet1$B2:F6]

    如果您有 Excel 2010 或更高版本,使用 Power Query 或 PowerPivot 会更容易一些(我有 Excel 2007,所以无法尝试)。

    【讨论】:

    • 我已按照您的建议执行了这些步骤,但我收到错误描述“没有为一个或多个必需参数提供值”...我的工作表名称与查询中给出的相同是 Sheet1...所以我保持查询原样。我试图给出范围以及 Sheet1$A1:C5 但没有运气
    • 你能用SELECT * FROM [Sheet1$]试试吗。该错误的通常原因是名称拼写错误。
    • 完美!!它正在工作......这是我的错误......查询完美工作......其中一个列名在我的工作表中拼写错误导致问题。再次感谢@Slai
    【解决方案2】:

    我不确定这是否是您想要的。这仍然是相当多的手工工作。在我看来,您当前的数据结构不太适合数据透视表,但我可能错了,我很想学习如何使用数据透视表来做到这一点..

    1. 复制前 3 列名称并粘贴到其他位置
    2. 然后在A8中输入公式,展开到其余字段:

    3. 将范围 A7:C11 转换为值

    4. 将其粘贴到其他位置

    5. 附加列中的总和

    【讨论】:

    • 我明白你的意思,但这需要大量的手动工作和努力。通过使用 SUMIFS 功能,我能够以另一种方式实现您提到的内容。但这不是我要找的。我想通过使用数据透视表来实现这一点,而无需复制和粘贴我的原始数据。非常欢迎任何建议或解决方案。再次感谢您的宝贵时间
    • 是的,我是这么认为的。让我们看看你是否得到了你想要的。我也很期待学习这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 2021-11-18
    相关资源
    最近更新 更多