使用 Excel 数据透视表作为另一个数据透视表的数据源

Posted

技术标签:

【中文标题】使用 Excel 数据透视表作为另一个数据透视表的数据源【英文标题】:Use Excel pivot table as data source for another Pivot Table 【发布时间】:2013-12-18 10:37:45 【问题描述】:

我在 excel 中有一个数据透视表,它使用原始表作为其数据源。这个数据透视表正在对行进行一组分组和求和。

我现在想使用这个新数据透视表的结果作为新数据透视表的数据源,它将进一步修改这些数据。

这可以用excel吗?我想你可以称之为“嵌套数据透视表”

【问题讨论】:

【参考方案1】:

在新工作表(您要在其中创建新数据透视表)中按组合键 (Alt+D+P)。在数据源选项列表中选择“Microsoft Excel 数据库列表”。单击下一步并选择要用作源的数据透视表(选择从字段的实际标题开始)。我假设这个范围是相当静态的,如果你刷新源枢轴并改变它的大小,你也必须重新调整范围的大小。希望这会有所帮助。

【讨论】:

嗨,当我单击下一步时,我没有看到文件 excel 中的所有数据透视。我可以做些什么来查看所有枢轴?【参考方案2】:

制作您的第一个数据透视表。

选择左上角的第一个单元格。

使用偏移量创建范围名称:

OFFSET(Sheet1!$A$3,0,0,COUNTA(Sheet1!$A:$A)-1,COUNTA(Sheet1!$3:$3))

使用 F3 将您的范围名称作为数据源进行第二个数据透视。

如果您从第一个枢轴更改行数或列数,您的第二个枢轴将在刷新枢轴后更新

GFGDT

【讨论】:

以这种方式使用 offset 和 counta 很聪明。归档以备将来使用 我收到(翻译的)数据源无效错误。我正在使用 excel 365 什么是 GFGDT? 非洲的全球基本地理空间数据主题是我能找到的全部内容,而且每个字母的表述相当冗长,如果不是用词不当的话。 GFGDT在占星学中的含义是什么? voticle.com/meaning-of/gfgdt/gfgdt-means-gfgdt-stands-for 但唉,我跑题了。【参考方案3】:

我猜您的最终目标是在原始数据透视表中显示不同(唯一)值。

例如,您可以将数据集设置为 OrderNumber、OrderDate、OrderItem、orderQty

第一个数据透视表将显示 OrderDate 和 OrderQty 的总和您可能希望查看同一 Pivot 中的唯一订单计数。 您无法在标准数据透视表中这样做

如果你想这样做,你需要 Office 2016(或者 pover Pivot 可能会工作)。 在 Office 2016 中选择您的数据 > 插入 > 数据透视表 > 选择勾选“将此数据添加到数据模型”

之后,您就可以选择分组方式为 Distinct (Count)

【讨论】:

这应该是正确的答案(假设最终目标是不同的计数)【参考方案4】:

您必须先将枢轴转换为值,然后才能执行此操作:

删除小计 重复行项目 复制/粘贴值 插入新的数据透视表

【讨论】:

【参考方案5】:

正如@nutsch 所暗示的,Excel 不会直接执行您需要的操作,因此您必须先将数据从数据透视表复制到其他地方。然而,与使用复制然后粘贴值相比,用于许多目的的更好方法是创建一些隐藏列或使用简单公式复制值的整个隐藏工作表。当原始数据透视表被刷新时,复制粘贴方法不是很有用。

例如,如果 Sheet1 包含原始数据透视表,则:

创建Sheet2并将=Sheet1!A1放入Sheet2!A1 根据需要在 Sheet2 中围绕尽可能多的单元格复制该公式,以匹配原始数据透视表的大小。 假设原始数据透视表在刷新时会改变大小,您可以复制 Sheet2 中的公式以覆盖原始数据透视表可能占用的整个潜在区域。这会在原始单元格当前为空的单元格中放置大量零,但您可以改用公式 =IF(Sheet1!A1="","",Sheet1!A1) 来避免这种情况。 根据 Sheet2 中的范围创建新的数据透视表,然后隐藏 Sheet2。

【讨论】:

【参考方案6】:

就个人而言,我以稍微不同的方式解决了这个问题 - 我有一个查询 SQL 服务器源的数据透视表,并且我使用时间线切片器将结果限制在一个日期范围内 - 然后我想将数据透视结果总结为另一个表。

我选择了“源”数据透视表并创建了一个名为“SourcePivotData”的命名范围。

使用命名范围作为源创建汇总数据透视表。

在源数据透视表的工作表事件中,我输入了以下代码:

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

'Update the address of the named range
ThisWorkbook.Names("SourcePivotData").RefersTo = "='" & Target.TableRange1.Worksheet.Name & "'!" & Target.TableRange1.AddressLocal

'Refresh any pivot tables that use this as a source
Dim pt As PivotTable
Application.DisplayAlerts = False
For Each pt In Sheet2.PivotTables
    pt.PivotCache.Refresh
Next pt
Application.DisplayAlerts = True

End Sub

对我来说很好用! :)

【讨论】:

【参考方案7】:

这是我之前的做法。

    在源数据透视表的右侧放置一个虚拟列“X”。 单击该单元格并启动您的数据透视表。 一旦弹出对话框,您就可以编辑数据范围以包含您的数据透视表。 这可能需要您先刷新源表,然后刷新辅助数据透视表...或者全部刷新两次

【讨论】:

【参考方案8】:

按照建议,您可以更改数据透视表的内容并粘贴为值。 但是,如果您想动态更改值,我发现的最简单的方法是 转至Insert->create pivot table 现在在输入数据字段的对话框中选择您之前的数据透视表的单元格。

【讨论】:

【参考方案9】:

我喜欢偏移选项——我必须先创建一个名为该选项的范围,然后使用 -3 而不是 -1。然后将这个新范围用于我的新数据透视表。现在,当第一个轴发生变化时,第二个将拾取新行(或更少行)...

【讨论】:

作为一个没有足够代表发表评论的新用户,很容易添加 cmets 作为答案。但是,该网站并没有真正鼓励它,并且此评论性答案可能会引起反对票。我建议你不要这样做,等到你有足够的代表发表评论。或者您可以将其编辑为完整的答案,准确说明此偏移量的定义位置和方式以及它解决问题的原因。 这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review

以上是关于使用 Excel 数据透视表作为另一个数据透视表的数据源的主要内容,如果未能解决你的问题,请参考以下文章

c# Excel 数据透视表中的折叠字段

EXCEL数据的透视表1-1

Excel数据透视表制作 这6个技巧超好用

复制透视表样式时,系统提示“ excel无法从磁盘内获取数据透视表的源数据”

Excel数据透视表、切片器如何做?

EXCEL 2010学习笔记 —— 数据透视表