Страницы: 1
RSS
DAX вычисление общей доли
 
Коллеги, столкнулся с проблемой, при построении своей аналитической системы.

Вводные следующие.
1) Есть расписание в рамках которого работают исполнители (врачи) оно у каждого свое и исполнители могут работать не каждый день.
Это расписание является основой для определения  плана работы.
2) есть свод выполненных услуг, интерес представляет оценка выполнения услуг имеющих признак и "ОМС"
3) согласно плану этих услуг должно быть 3,6 в день.

Для наглядности я прописал каждое действие отдельной мерой, но это не принципиально.
Вычислить выполнение плана для каждого индивидуального исполнителя мне удалось легко. Но вот как этот план выполняет некая совокупность исполнителей уже не определить используя те простые формулы что я вводил, так как системы считает общее на всех количество дней, и при подсчете итога не учитывается что исполнители могут работать разное количество дней -- в результате итоговый процент выполнения плана не соответствует действительности.
Можно ли прописать формулу корректно работающую с конкретным исполнителем и с их совокупностью?
 
А в этой теме решение подошло? Просто Вы не отписались.
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
да, извините, увлекся внедрением. все работает
 
По какому правилу должен считаться общий процент?
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
количество оказанных услуг с признаком ОМС каждого врача попавшего в срез  за оцениваемый период/ сумма количество отработанных дней каждого врача  
 
Odmal, Ну, по описанному Вами условию, чтобы это все считалось в одной мере - так:

Код
Мера =
IF (
    HASONEVALUE ( 'расписание'[Код врача] );
    CALCULATE (
        COUNTROWS ( 'услуги' );
        'услуги'[Тип_пл.] = "ОМС"
    )
        / (
            DISTINCTCOUNT ( 'расписание'[Дата слота] ) * 3,6
        )
        / DISTINCTCOUNT ( 'спр_врач'[Код врача] );
    CALCULATE (
        COUNTROWS ( 'услуги' );
        'услуги'[Тип_пл.] = "ОМС"
    )
        / SUMX (
            SUMMARIZE (
                'расписание';
                'расписание'[Код врача];
                "new"; DISTINCTCOUNT ( 'расписание'[Дата слота] )
            );
            [new]
        ) * 3,6
)

Вот только общий  процент выполнения плана получается получается 1845%. Либо что-то не то с правилом вычисления общего плана, либо у Вас сильно занижен план выполнения)
Изменено: Dyroff - 10.01.2020 10:05:39
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Спасибо, по отдельности все работает
но в совокупности почему то ответ некорректный  
мне кажется что-то не продумано в правиле
по сути, Общий процент должен быть приблизительно равен среднему проценту
Изменено: Odmal - 11.01.2020 00:02:09
 
спасибо, я смог благодаря Вашему уравнению получить нужный резульат. Перемудришьдрил с правилом которое изначально написал.
теперь считаю так
Код
COUNTAX(
    FILTER(
        'услуги';
        'услуги'[Тип_пл.]="ОМС"
        );
        'услуги'[Рег.№]
        )
/ SUMX (
            SUMMARIZE (
                'расписание';
                'расписание'[Код врача];
                "new"; DISTINCTCOUNT ( 'расписание'[Дата слота] )
            );
            [new]
        ) * 3,6

Верхняя часть подсчитывает количество выполненных услуг по ОМС (Контекст врача задает сводная таблица)
и итог получается тоже корректный

верхняя часть формулы, конечно, работает при помощи костылей. но итог правильный  
Изменено: Odmal - 11.01.2020 22:56:16
 
Ну и отлично
Изменено: Dyroff - 12.01.2020 22:17:45
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
Страницы: 1
Наверх