#excel #vba #pivot-table
#excel #vba #сводная таблица
Вопрос:
Мне нужно создать сводную таблицу, в которой все поля в разделе строк будут МАКСИМАЛЬНЫМИ в качестве суммарного значения. Я нашел код, который ПОЧТИ делает то, что я хочу здесь: https://www.pivot-table.com/2013/08/21/add-all-remaining-fields-to-pivot-table /
Единственная проблема в том, что этот код не устанавливает, какое значение отображается, поэтому большинство из них выводятся как СУММА или КОЛИЧЕСТВО. Кто-нибудь знает, какие изменения в коде обеспечат максимальное значение? Любая помощь будет высоко оценена!
Sub AddAllFieldsValues()
Dim pt As PivotTable
Dim iCol As Long
Dim iColEnd As Long
Set pt = ActiveSheet.PivotTables(1)
With pt
iCol = 1
iColEnd = .PivotFields.Count
For iCol = 1 To iColEnd
With .PivotFields(iCol)
If .Orientation = 0 Then
.Orientation = xlDataField
End If
End With
Next iCol
End With
End Sub
Ответ №1:
Вы можете изменить его, используя .Function
в вашем случае .Function = xlMax
вам нужно будет добавить после ориентации. Этот метод позволяет использовать count, sum, avg и другие функции xl
With .PivotFields(iCol)
If .Orientation = 0 Then
.Orientation = xlDataField
.Function = xlMax
End If
Теперь помните, что вы перебираете все сводные поля в своей сводной таблице, поэтому, если вы включите .Function = xlMax
все, они будут отображаться как max