【发布时间】:2013-12-18 10:37:45
【问题描述】:
我在 excel 中有一个数据透视表,它使用原始表作为其数据源。这个数据透视表正在对行进行一组分组和求和。
我现在想使用这个新数据透视表的结果作为新数据透视表的数据源,它将进一步修改这些数据。
这可以用excel吗?我想你可以称之为“嵌套数据透视表”
【问题讨论】:
标签: excel pivot-table
我在 excel 中有一个数据透视表,它使用原始表作为其数据源。这个数据透视表正在对行进行一组分组和求和。
我现在想使用这个新数据透视表的结果作为新数据透视表的数据源,它将进一步修改这些数据。
这可以用excel吗?我想你可以称之为“嵌套数据透视表”
【问题讨论】:
标签: excel pivot-table
在新工作表(您要在其中创建新数据透视表)中按组合键 (Alt+D+P)。在数据源选项列表中选择“Microsoft Excel 数据库列表”。单击下一步并选择要用作源的数据透视表(选择从字段的实际标题开始)。我假设这个范围是相当静态的,如果你刷新源枢轴并改变它的大小,你也必须重新调整范围的大小。希望这会有所帮助。
【讨论】:
制作您的第一个数据透视表。
选择左上角的第一个单元格。
使用偏移量创建范围名称:
OFFSET(Sheet1!$A$3,0,0,COUNTA(Sheet1!$A:$A)-1,COUNTA(Sheet1!$3:$3))
使用 F3 将您的范围名称作为数据源进行第二个数据透视。
如果您从第一个枢轴更改行数或列数,您的第二个枢轴将在刷新枢轴后更新
GFGDT
【讨论】:
我猜您的最终目标是在原始数据透视表中显示不同(唯一)值。
例如,您可以将数据集设置为 OrderNumber、OrderDate、OrderItem、orderQty
第一个数据透视表将显示 OrderDate 和 OrderQty 的总和您可能希望查看同一 Pivot 中的唯一订单计数。 您无法在标准数据透视表中这样做
如果你想这样做,你需要 Office 2016(或者 pover Pivot 可能会工作)。 在 Office 2016 中选择您的数据 > 插入 > 数据透视表 > 选择勾选“将此数据添加到数据模型”
之后,您就可以选择分组方式为 Distinct (Count)
【讨论】:
您必须先将枢轴转换为值,然后才能执行此操作:
【讨论】:
正如@nutsch 所暗示的,Excel 不会直接执行您需要的操作,因此您必须先将数据从数据透视表复制到其他地方。然而,与使用复制然后粘贴值相比,用于许多目的的更好方法是创建一些隐藏列或使用简单公式复制值的整个隐藏工作表。当原始数据透视表被刷新时,复制粘贴方法不是很有用。
例如,如果 Sheet1 包含原始数据透视表,则:
=Sheet1!A1放入Sheet2!A1=IF(Sheet1!A1="","",Sheet1!A1) 来避免这种情况。【讨论】:
就个人而言,我以稍微不同的方式解决了这个问题 - 我有一个查询 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
对我来说很好用! :)
【讨论】:
这是我之前的做法。
【讨论】:
按照建议,您可以更改数据透视表的内容并粘贴为值。
但是,如果您想动态更改值,我发现的最简单的方法是
转至Insert->create pivot table
现在在输入数据字段的对话框中选择您之前的数据透视表的单元格。
【讨论】:
我喜欢偏移选项——我必须先创建一个名为该选项的范围,然后使用 -3 而不是 -1。然后将这个新范围用于我的新数据透视表。现在,当第一个轴发生变化时,第二个将拾取新行(或更少行)...
【讨论】: