xlPercentOfTotal вычисляет% от итога (весь набор данных вместо общего итогового значения в сводной таблице) - PullRequest
0 голосов
/ 20 мая 2019

Проблема:

с использованием .Calculation = xlPercentOfTotal, чтобы попытаться отобразить значения ячеек в столбце сводной таблицы как% от общего итога.

Текущий вывод:

Этовместо этого он рассчитывает все как% (включая итоговую сумму) из всего набора данных в столбце, а не просто использует общую сумму в сводной таблице.(Последняя строка, 15 - это общая сумма)

Value    Desired Output
4            .2667%
1            .0667%
2            .1333%
4            .2667%
4            .2667%
15            1%

Желаемый результат:

Желаемый результат должен совпадать с ручным щелчком правой кнопкой мыши по столбцу в сводной таблице и «Показать значения как»... «Процент от общего итога».(Последняя строка, 15 - это общая сумма)

Value    Desired Output
4            26.67%
1            6.67%
2            13.33%
4            26.67%
4            26.67%
15            100%

Желаемый результат должен совпадать с ручным щелчком правой кнопкой мыши по столбцу в сводной таблице и «Показать значения как» ... «Процент от общей суммы».

Текущий блок кода, на который влияют:

With ActiveSheet.PivotTables("PivotTableName").PivotFields("ColumnName")
.Orientation = xlDataField
.Function = xlCount
.Calculation = xlPercentOfTotal
.NumberFormat = "General\%;-"
.Name = "ThisIsTheColumnName"
End With

Я не на 100% уверен, что это за проблема, я подозреваю, поскольку раньше я сталкивался с ней из-за форматирования, но я немногопотерян.

РЕДАКТИРОВАТЬ:

Я думаю, что, возможно, нашел проблему.

.NumberFormat = "General\%;-"

Это, я думаю, принимает значение процента, а затем делит его снова или что-то подобноемне процент в процентах (то есть 100% из 100% - это 1%).

Причина, по которой я это сделал, заключается в том, что я изначально хотел, чтобы все значения NULL были '-' (дефис).

Закомментирование этой строки приводит к желаемому результату, но затем удаляет возможность отлавливать значения NULL как '-'.

With ActiveSheet.PivotTables("PivotTableName").PivotFields("ColumnName")
.Orientation = xlDataField
.Function = xlCount
.Calculation = xlPercentOfTotal
.NumberFormat = "General\%;-"
.Name = "ThisIsTheColumnName"
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...