Добавьте все поля в сводную таблицу как Max

#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