excel - 带有#N/A 值的数据透视表?
问题描述
我正在创建一个自动创建数据透视表的宏。我能够获得数据透视表的输出,但所有数据值都是#N/A。这是由于我在数据透视表中使用的列包含 #N/A 值。
如何获得所有行的实际总和,而不必调整数据集?这是我目前使用的代码。
Sub pivottable()
Dim PSheet As Worksheet, DSheet As Worksheet
Dim PCache As PivotCache
Dim PTable As pivottable
Dim PField As PivotField
Dim PRange As Range
Dim LastRow As Long
Dim LastCol As Long
Dim PvtTable As pivottable
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("PivotTable").Delete
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = "PivotTable"
Application.DisplayAlerts = True
Set PSheet = Worksheets("PivotTable")
Set DSheet = Worksheets(1)
LastRow = DSheet.Cells(Rows.Count, 1).End(xlUp).Row
LastCol = DSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Set PRange = DSheet.Cells(1, 1).Resize(LastRow, LastCol)
Set PCache = ActiveWorkbook.PivotCaches.Create _
(SourceType:=xlDatabase, SourceData:=PRange). _
CreatePivotTable(TableDestination:=PSheet.Cells(4, 1), _
TableName:="PivotTable4")
Set PTable = PCache.CreatePivotTable _
(TableDestination:=PSheet.Cells(1, 1), TableName:="PivotTable")
Sheets("PivotTable").Select
Set PvtTable = ActiveSheet.PivotTables("PivotTable")
'Rows
With PvtTable.PivotFields("Office")
.Orientation = xlRowField
.Position = 1
End With
With PvtTable.PivotFields("Type")
.Orientation = xlRowField
.Position = 2
End With
'Columns
With PvtTable.PivotFields("Category")
.Orientation = xlColumnField
.Position = 1
End With
PvtTable.AddDataField PvtTable.PivotFields("Receipts"), "receipts", xlSum
End Sub
我读到可能可以使用AutoFilter
. 将AutoFilter
能够忽略具有#N/A 值或“0”的数据并继续对其他值求和,因此我们避免在数据透视表中出现#N/A。
解决方案
将您的函数包装VLOOKUP
在一个IFERROR
函数中,以便#N/A
在源数据中不返回值。
推荐阅读
- c# - C# 正则表达式只得到一个匹配的结果
- android - Google Nearby Connections 是否能确保在两台设备上都传递消息?
- python - Discord-py Rewrite - Cog 中的基本 aiohttp 网络服务器
- python - 类字典不更新
- sql - 如何形成主键模式?
- android - Xamarin Android 应用程序在发布模式下崩溃(未找到默认构造函数)
- google-app-engine - AppEngine:404 错误,除了部署服务器上的主页(在本地服务器上工作正常)
- url - TYPO3 预览 URL 配置
- c# - 我的应用程序的结构具有不同的功能
- unix - 如何在 Unix 中从具有固定位置的特定字符串的文件中删除行