我在Excel中有一个数据透视表,它使用原始表作为数据源。该数据透视表正在对行进行分组和求和。
现在我想将这个新数据透视表的结果用作另一个数据透视表的数据源,以进一步修改这些数据。
在Excel中是否可以实现此操作?我想你可以称其为“嵌套数据透视表”。
我在Excel中有一个数据透视表,它使用原始表作为数据源。该数据透视表正在对行进行分组和求和。
现在我想将这个新数据透视表的结果用作另一个数据透视表的数据源,以进一步修改这些数据。
在Excel中是否可以实现此操作?我想你可以称其为“嵌套数据透视表”。
制作第一个数据透视表。
选择左上角的第一个单元格。
使用偏移量创建范围名称:
OFFSET(Sheet1!$A$3,0,0,COUNTA(Sheet1!$A:$A)-1,COUNTA(Sheet1!$3:$3))
使用 F3 将您的范围名称作为数据源制作第二个数据透视表。
如果您从第一个数据透视表更改行数或列数,则在刷新第二个数据透视表后,第二个数据透视表将得到更新。
在一个新的工作表中(您想创建新透视表的位置),按下键盘组合键(Alt+D+P)。在数据源选项列表中选择“Microsoft Excel 数据库列表”。点击下一步,选择要用作源的透视表(选择从字段实际标题开始)。假设此范围相当静态,如果刷新源透视表并更改其大小,则还必须重新调整范围的大小。希望能有所帮助。
例如,你可能有一个包含订单号、订单日期、订单项和订单数量的数据集。
第一个透视表将显示订单日期和订单数量的总和,你可能希望在同一个透视表中看到唯一订单的计数。标准透视表无法实现此功能。
如果你想要这样做,你需要使用 Office 2016(或者可能是 Power Pivot)。在 Office 2016 中,选择你的数据 > 插入 > 透视表 > 选择“将此数据添加到数据模型”
之后,你就可以选择唯一分组方法(计数)了。
插入->创建数据透视表
现在在对话框中的输入数据字段中选择先前数据透视表的单元格。在进行操作之前,您必须先将数据透视表转换为值:
正如@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
对我来说很好用!:)
这是我以前的做法。
我喜欢偏移选项 - 我必须首先创建一个名为“offset”的范围,并执行-3而不是-1。然后将该新范围用于我的新数据透视表。现在,当第一个透视表更改时,第二个透视表将拾取新的行(或较少的行)...