我需要在同一个 Excel 表中创建具有多个数据透视表的仪表板,一个在另一个之下。
问题是,当数据透视表刷新时,它可能会更长(更多行),因此它会发出警告,低于它需要的行将被覆盖。
我想知道如何配置 Excel 数据透视表以在数据透视表中添加行而不覆盖以下内容。
我已经在 Microsoft Techdays 2013 上看到过一个例子,但我不记得方法了。(在 Excel 2013 中有一个复选框可以启用)
谢谢你。
我需要在同一个 Excel 表中创建具有多个数据透视表的仪表板,一个在另一个之下。
问题是,当数据透视表刷新时,它可能会更长(更多行),因此它会发出警告,低于它需要的行将被覆盖。
我想知道如何配置 Excel 数据透视表以在数据透视表中添加行而不覆盖以下内容。
我已经在 Microsoft Techdays 2013 上看到过一个例子,但我不记得方法了。(在 Excel 2013 中有一个复选框可以启用)
谢谢你。
每当我每个工作表有多个数据透视表时,我要么
1) 限制数据透视表的行数,例如我有报告需要滚动 6 个月的值,所以我总是有 6 行,但每个月的值都会提前。在这种情况下,您需要使用 VBA 来“选中”和“取消选中”显示的值。使用在此 Google 搜索中找到的方法来执行此操作:
https://www.google.com/search?q=find+last+used+row#q=excel+pivot+table+vba+to+filter+row+values
2) 每次刷新时,从头开始重新创建每个数据透视表,通过删除现有数据透视表相应地定位每个数据透视表,然后从上到下重新创建数据透视表。对于此方法,您需要确定哪一行是数据透视表中的最后一行,以便您可以在其下方重新创建下一行。使用诸如 Google 搜索中的方法来查找数据透视表的最后一行:
我最近遇到了这个问题,并构建了以下内容。当然,要让它工作,必须满足先决条件,原则上两张表确实适合一张纸。我要做的是在两个表之间建立足够的空间(=行),并在刷新后隐藏表之间留下的行。所以它确实需要 VBA,例如可以在 PivotTable_Update 事件上执行。
Private Sub hideRowsBetweenListObjects(sheetName As String)
Dim tblRowPosition1 As Integer
Dim tblNrOfRows1 As Integer
Dim tblRowPosition2 As Integer
Dim tblNrOfRows2 As Integer
'Initialize
Application.ScreenUpdating = False
With Worksheets(sheetName).ListObjects(1)
tblRowPosition1 = .Range.Row
tblNrOfRows1 = .Range.Rows.Count
End With
With Worksheets(sheetName).ListObjects(2)
tblRowPosition2 = .Range.Row
tblNrOfRows2 = .Range.Rows.Count
End With
With Worksheets(sheetName)
If tblRowPosition1 < tblRowPosition2 Then
.Range(.Cells(tblRowPosition1 + tblNrOfRows1, 1), .Cells(tblRowPosition2 - 4, 1)).EntireRow.Hidden = True
ElseIf tblRowPosition2 < tblRowPosition1 Then
.Range(.Cells(tblRowPosition2 + tblNrOfRows2, 1), .Cells(tblRowPosition1 - 4, 1)).EntireRow.Hidden = True
End If
End With
结束子
如果您使用的是专业版的 excel,您可以使用 powerview。创建仪表板。Wenn 使用 powerview 可以限制数据透视表使用的空间。
有关更多信息,请参见以下链接:
如何激活 powerview