Сводная таблица со значениями # N / A? - PullRequest
0 голосов
/ 30 октября 2018

Я создаю макрос, который автоматизирует создание сводной таблицы. Я могу получить вывод для сводной таблицы, но все значения данных # 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 в нашей сводной таблице.

1 Ответ

0 голосов
/ 30 октября 2018

Оберните вашу функцию VLOOKUP в функцию IFERROR, чтобы значения #N/A не возвращались в исходные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...