Excel数据透视表“显示为”值的列中的差异

时间:2018-04-23 09:54:36

标签: excel pivot-table

当值显示为父列总数的百分比时,有没有办法让数据透视表自动计算2列之间的差异?

现在我需要手动但桌子是动态的,竞争对手的数量可能会有所不同。功能似乎很容易,但谷歌搜索等后无法找到...

请参阅下面的示例图片,了解我想要实现的目标 (由枢轴表自动化的列F是目标)
Column F automated by the pivot table is the goal

2 个答案:

答案 0 :(得分:1)

如果尝试使用数据透视表解决此问题,您可以选择以下几种方法:

  1. 使用传统的'数据透视表基于范围。这将为您提供百分比差异,但您无法获得百分点差异,就像您在不使用外部公式时所要求的那样。
  2. 使用' OLAP'数据透视表基于您已添加到Excel数据模型的数据。这将为您提供百分比差异 百分点差异,而无需使用外部公式。
  3. 在这两种情况下,我建议您先将数据取消,以便将其放在所谓的平面文件中。目前您正在使用交叉表格数据源(即您的来源有名为第1年,第2年的列),如果您的数据是一个数据,那么您想要做的年份百分比比较类型是不行的交叉。基本上,数据透视表并不意味着使用交叉表格数据。

    相反,您确实希望您的数据布局,以便您有一个名为Amount的列和一个名为Year的列,然后您可以使用右键单击菜单中的Show Values As选项显示多年的百分比差异。要将数据转换为平面文件,请参阅convert cross table to list to make pivot table

    上的答案

    也就是说,您仍然可以在现有(不透明)数据布局上使用GETPIVOTDATA函数,这种方式对数据透视表结构的更改更为鲁棒,而不仅仅是从另一个引用中减去一个引用:

    enter image description here

    但是,我再次建议将您的数据转换为平面文件。然后您还可以执行以下操作:

    使用'传统'数据透视表

    你可以有点完全在一个自包含的传统'中解决你的问题。数据透视表,如果将“数量”列拖到“值”区域,将“年”列放在“列”区域中,将“竞争对手”置于“行”区域,然后选择右键单击时显示的“显示值为”选项中的一个选项值区域中的单元格。

    我说有点,因为没有使用外部公式(或者没有计算源数据中的百分比),你只能让它显示百分比增加(见最右边的一栏),不是百分点增加你想要的(见左边的栏目)。也就是说,我认为百分比增加不那么令人困惑。但我想这取决于你想要展示的内容。如果你想显示从一年到下一年的市场份额变化,那么百分点是有意义的。

    enter image description here enter image description here

    当然,您可以随时使用GETPIVOTDATA函数为您进行额外的数学运算,就像我们之前所做的那样,就像我在左手边做的那样。

    使用基于DataModel的OLAP数据透视表

    计算百分点增加可能需要使用使用数据模型构建的数据透视表。请参阅https://stackoverflow.com/a/49973465/2507160上的答案,该答案解释了一些关于数据模型的内容(尽管它没有回答这个具体问题)。

    结果如下:

    enter image description here enter image description here

    以下是我用过的措施:

    第1年总计: =CALCULATE(SUM(Table2[Value]),ALLSELECTED(Table2[Competitor]),Table2[Year] = "Year 1")

    第2年总计: =CALCULATE(SUM(Table2[Value]),ALLSELECTED(Table2[Competitor]),Table2[Year] = "Year 2")

    %1年级: =CALCULATE(SUM(Table2[Value]),Table2[Year] = "Year 1")/[Total Year 1]

    %第2年: =CALCULATE(SUM(Table2[Value]),Table2[Year] = "Year 2")/[Total Year 2]

    <强> P.P。差异: = [% Year 2] -[% Year 1]

答案 1 :(得分:0)

您可以将计算字段添加到具有不同复杂程度的数据透视表中。找到两个字段之间的区别非常简单。

以下示例借鉴contextures.com,其中还有更多示例更多信息。

  

添加计算字段:

     
      
  1. 在数据透视表中选择一个单元格,然后在Excel功能区的PivotTable Tools标签下,点击Options标签(Analyze标签页   Excel 2013)。

  2.   
  3. Calculations群组中,点击Fields, Items, & Sets,然后点击Calculated Field

         

    Ribbon Calculated Field

  4.   
  5. 键入计算字段的名称,例如 RepBonus

  6.   
  7. 在“公式”框中,键入=Total * 3%

  8.   
  9. 点击Add保存计算字段,然后点击Close

         

    insert calculated field

  10.   
  11. RepBonus 字段显示在数据透视表的Values区域,以及PivotTable Field List的字段列表中。

  12.         

    calculated field in pivot table

Source

编辑:

@jeffreyweir - 我不会撒谎,我不知道如何做到这一点(而且没有时间去做实验)但是通过这些选项的外观,不是用&#34;直接减法&#34;计算字段。现有字段(即3 $ -2%= 1%)与Difference from非常相似? (与% Difference from相反,<previous>也是一种选择,但结果不同。)

事实上,<next>let cell = self.LeadsListTable.dequeueReusableCell(withIdentifier:"LeadsID", for: indexPath) as! LeadsCell if let leadsDict: NSDictionary = self.leadsArray[indexPath.row] as? NSDictionary { cell.project_title?.text = (leadsDict.object(forKey: "project_title") as! String) } 比较运营商应该可以轻松实现自动逐年差异报告......?

(点击Embiggen)

img1 img2

另外,您是否看到link 我在哪里获得了示例?有点像一个可怕的网站,但它有一些更复杂的数据透视表说明。