Ich versuche, eine Pivot-Tabelle mit Excel 2013 VBA mit DISTINCT COUNT als Wertefeld zu erstellen.
Ich verstehe, dass Sie, wenn Sie die Pivot-Tabelle manuell erstellen, das Kontrollkästchen "Diese Daten zum Datenmodell hinzufügen" aktivieren müssen, um die eindeutige Zähloption für das Wert-Pivot-Feld zu erhalten, aber ich habe keine Ahnung, wie dies in VBA übersetzt werden soll Code.
Ich habe versucht, die Pivot-Tabelle mit xlCount als Wert-Pivot-Feld zu erstellen, und es hat gut funktioniert, aber für xlDistinctCount funktioniert es nicht
Set wb = ActiveWorkbook
Set ws = wb.Sheets.Add(Type:=xlWorksheet, After:=Application.Worksheets(1))
Worksheets(1).Range("A1:I" & i).Copy
Worksheets(2).Range("A1").PasteSpecial xlPasteValues
Worksheets(2).Name = "PivotTable"
'Defining data range for pivottable
lastrow = Worksheets("PivotTable").Cells(Rows.Count, 1).End(xlUp).Row
lastCol = Worksheets("PivotTable").Cells(1, Columns.Count).End(xlToLeft).column
Set pRange = Worksheets("PivotTable").Cells(1, 1).Resize(lastrow, lastCol)
On Error Resume Next
'Define Pivot Cache
Set PCache = ActiveWorkbook.PivotCaches.create _
(SourceType:=xlDatabase, SourceData:=pRange, Version:=xlPivotTableVersion12). _
CreatePivotTable(TableDestination:=Worksheets("PivotTable").Cells(2, 10), _
TableName:="SalesPivotTable")
Set PTable = PCache.CreatePivotTable _
(TableDestination:=Worksheets("PivotTable").Cells(2, 10), TableName:="SalesPivotTable")
With Worksheets("PivotTable").PivotTables("SalesPivotTable").PivotFields("User")
.Orientation = xlRowField
.Position = 1
End With
With Worksheets("PivotTable").PivotTables("SalesPivotTable").PivotFields("BinType")
.Orientation = xlColumnField
.Position = 1
End With
'Doesn't work with xlDistinctCount but does with xlCount
With Worksheets("PivotTable").PivotTables("SalesPivotTable")
.AddDataField Worksheets("PivotTable").PivotTables( _
"SalesPivotTable").PivotFields("AppNo"), "Distinct Count of AppNo",
xlDistinctCount
End With
Ich erwarte, dass die Pivot-Tabelle mit der eindeutigen Anzahl aktualisiert wird, sobald die letzte Zeile wie bei xlCount berechnet wurde, aber bei xlDistinctCount wird nichts unternommen
Ich habe gerade die Erstellung einer Pivot-Tabelle aufgezeichnet, die die Option "Diese Daten zum Datenmodell hinzufügen" verwendet. Und ein Feld für die eindeutige Zählung erstellt. Ich musste zuerst die Anzahl hinzufügen und dann in Distinct ändern. Ich habe es für Ihre Arbeitsblatt- und Pivot-Tabellennamen geändert. Fügen Sie die Kennzahl von appno hinzu und ändern Sie sie in Distinct. Hier ist der eindeutige Zählabschnitt.
With Worksheets("PivotTable").PivotTables("SalesPivotTable").PivotFields( _
"[Measures].[Count of AppNo]")
.Caption = "Distinct Count of AppNo"
.Function = xlDistinctCount
End With
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen