Страницы: 1
RSS
Изменение формулы промежуточных итогов в сводной таблице, Изменение формулы промежуточных итогов в сводной таблице
 
Есть сводная таблица. Данные по строкам суммируются из другой таблицы. В сводную таблицу добавлено вычисляемое поле. В этом вычисляемом поле значение от одного столбца делятся на значение другого столбца. Я бы хотела чтобы в значениях промежуточных итогов выводилась не сумма , а средняя. Как мне это сделать?

Когда я выбираю в параметрах поля среднее вместо суммы  - ничего не меняется  
Изменено: Юлия Соколова - 15.02.2023 12:43:52
 
Юлия Соколова, ответ кроется в этой статье на сайте MS. В частности, там говорится
Цитата
Формулы работают с итоговыми суммами, а не с отдельными записями.    Формула для вычисляемого поля оперирует суммой исходных данных для каждого используемого поля. Например, формула вычисляемого поля =Продажи * 1,2 умножает сумму продаж для каждого типа и региона на 1,2, а не умножает каждое отдельное значение продаж на 1,2 с последующим суммированием полученных величин.
MS (я так думаю) считает  AVG ( SUM(Поле2) / SUM(Поле1) ). Вполне себе формула. А какую формулу вы хотели бы применить в данном случае?Но вот что странно - COUNT показывает те же самые значения  8-0  Кто бы объяснил почему...
Пришелец-прораб.
 
Я бы хотела чтобы в промежуточных итогах считалась =срзнач(ТП1, ТП2, ТП3) - значений внутри группы), а не 2/1, потому что в моем случае делить сумму на сумму некорректно.
Изменено: Юлия Соколова - 15.02.2023 14:37:09
 
Т.е. вы хотите, чтобы в Pivot Table в пром итогах по одному и тому же полю (колонке) применялась другая формула (отличная от той, которую вы определили для этого поля)? Эээ, матушка. Это вам в Power Pivot и DAX.
Пришелец-прораб.
 
Юлия Соколова, нужно осваивать Power Pivot.
Понятно, что простейшие меры для суммы (можно и просто суммой по столбцу так же выводить, но лучше для обучения явно прописывать; "обычная" сводная  так же создает такую же неявную меру (немного вру, не такую же :), а SUMX ( data; data[1]) ):
Код
sum_1:=SUM ( data[1] )

Код
sum_2:=SUM ( data[2] )

Ну и мера для расчета среднего по суммам в каждой группе:
Код
sum_2/1:=
AVERAGEX (
    SUMMARIZE ( data; data[PSR]; data[СМ]; data[НОП] );
    DIVIDE ( [sum_2]; [sum_1] )
)
.

Но. У Вас много промежуточных итогов. Условно - иерархия из PSR, CM, НОП, и если на каждом подуровне значение - это среднее по значением на уровнях ниже, то уже посложнее. Не оптимизировал (много итераций), но результат корректен:
Код
sum_2/1_1:=VAR av_1 =
    DIVIDE ( [sum_2]; [sum_1] )
VAR av_2 =
    AVERAGEX (
        SUMMARIZE ( data; data[PSR]; data[СМ]; data[НОП] );
        DIVIDE ( [sum_2]; [sum_1] )
    )
VAR av_3 =
    AVERAGEX (
        SUMMARIZE ( data; data[СМ]; data[НОП] );
        CALCULATE (
            AVERAGEX (
                SUMMARIZE ( data; data[PSR]; data[СМ]; data[НОП] );
                DIVIDE ( [sum_2]; [sum_1] )
            )
        )
    )
VAR av_4 =
    AVERAGEX (
        VALUES ( data[НОП] );
        CALCULATE (
            AVERAGEX (
                SUMMARIZE ( data; data[СМ]; data[НОП] );
                CALCULATE (
                    AVERAGEX (
                        SUMMARIZE ( data; data[PSR]; data[СМ]; data[НОП] );
                        DIVIDE ( [sum_2]; [sum_1] )
                    )
                )
            )
        )
    )
VAR result =
    SWITCH (
        TRUE;
        HASONEVALUE ( data[PSR] ); av_1;
        HASONEVALUE ( data[СМ] ); av_2;
        HASONEVALUE ( data[НОП] ); av_3;
        av_4
    )
RETURN
    result
Изменено: surkenny - 15.02.2023 15:13:23
 
ОФИГЕТЬ!!! Спасибо!
Страницы: 1
Наверх