На первый взгляд кажется, что это должна быть простая задача, но я не могу уложить в голове эту задачу.
У меня есть наглядная гистограмма (диаграмма А), показывающая общее количество рецептов, отправленных в различные аптеки. На другой гистограмме (диаграмма B) я показываю отдельных поставщиков и их процент от общего количества рецептов, отправленных в каждую из этих аптек.
То, как она ведет себя сейчас, и что ожидается сразу же, заключается в том, что если я выберу, скажем, Аптеку C из диаграммы A, то на диаграмме B будет показан каждый поставщик и его процентная доля рецептов, отправленных в аптеку C. Например, если аптека C получил всего 1000 скриптов, а провайдер A отправил 250 из них, их соответствующий процент составит 25%. Имеет смысл.
Однако я получил запрос не показывать процентную долю поставщиков в выбранной аптеке, а вместо этого показывать процент от общего количества их скриптов (во все аптеки), которые отправляются в выбранную аптеку, в данном случае в аптеку C. Итак, для этого же Например, поставщик по-прежнему отправил 250 сценариев в Аптеку C, но он хочет знать, какой процент от общего количества сценариев отправлен в любую Аптеку. Таким образом, если Провайдер отправил 2000 сценариев во все аптеки, а 250 отправил в Аптеку C, то будет показано, что 12,5% от общего количества сценариев было отправлено в Аптеку C.
Я пытался создать показатель для выполнения этого расчета, используя общее количество сценариев, написанных для всех аптек каждым поставщиком, однако каждый раз, когда я выбираю конкретную аптеку из диаграммы A, она все равно фильтрует общее количество сценариев поставщиков только для этой выбранной аптеки. . Для расчета общего количества скриптов я хочу, чтобы он игнорировал выбранную аптеку и подсчитывал все скрипты, отправленные провайдером, независимо от аптеки. Я пытался использовать различные функции CALCULATE и filter, но, похоже, не могу понять это.
Прошу прощения, это лучший способ объяснить это.





Посмотрите, как использовать УДАЛИТЬ ФИЛЬТРЫ.
Предложите создать эти три показателя. Обратите внимание, что для второго вам необходимо удалить «контекст фильтра» для «Аптеки, а не поставщика»:
Prescription Count =
DISTINCTCOUNT('Rx Data'[PrescriptionID])
Total Provider Prescriptions =
CALCULATE(
[Prescription Count],
REMOVEFILTERS('Rx Data'[Pharmacy]) // or ALLEXCEPT('Rx Data', 'Rx Data'[Provider])
)
Provider Percent =
DIVIDE(
[Prescription Count],
[Total Provider Prescriptions]
)
Таблица данных и результат:
...Здесь вы можете увидеть, сколько рецептов было отправлено в аптеку C поставщиком A (123), а затем процент всех рецептов в аптеке C (709), отправленных поставщиком A. Что я хотел бы показать в правом нижнем углу Диаграмма представляет собой процент рецептов, отправленных поставщиком А в аптеку C (121), по сравнению с общим количеством рецептов поставщика А, отправленных во все аптеки (1011). Надеюсь, это поможет, еще раз спасибо, что даже посмотрели на это!
Обновите свой вопрос, указав меры DAX, которые вы используете.
Для нижней правой диаграммы «Процент по поставщикам» я использовал следующую меру: Процент поставщика = COUNT('Rx Data'[PrescriptionID])/(CALCULATE(count('Rx Data'[PrescriptionID]),ALL(' Rx Data'[Поставщик])))
См. обновленный ответ выше, попробуйте использовать три меры. Обратите внимание, что вам необходимо удалить фильтр или ВСЕ у аптеки, а не у поставщика.
Спасибо, Сэм. Я создал показатели, указанные вами выше, но по какой-то причине и «Общее количество рецептов поставщиков», и «Количество рецептов» дают мне одно и то же значение, поэтому, конечно, «Процент поставщиков» всегда равен 100%. Это та же проблема, с которой я столкнулся, когда числитель и знаменатель возвращают одно и то же значение.
Результат смотрите на изображении выше. Возможно, у вас есть другие факторы. Попробуйте заменить REMOVEFILTERS(...) на ALLEXCEPT('Rx Data', 'Rx Data'[Provider]).
Сэм, я думаю, мы приближаемся. Я заменил REMOVEFILTERS('Rx Data'[Pharmacy]) на ALLEXCEPT('Rx Data', 'Rx Data'[Provider]), и это дает мне новое значение для общего числа назначений поставщика. Единственная проблема сейчас заключается в том, что фильтр даты не работает. Это моя вина, так как я не упомянул, что у меня был срез даты, очень извините.
Просто добавьте столбец «Дата» в ALLEXCEPT... ALLEXCEPT('Rx Data', 'Rx Data'[Provider], 'Rx Data'[Date]). Как следует из названия, дайте мне все строки, но сохраните контекст в следующих столбцах (т. е. для того же поставщика и для дат).
Черт... так что добавление даты (в моем случае столбец называется [CreatedWhen]) снова приводит к тому же значению, что и счетчик рецептов. Я предполагаю, что происходит что-то еще, потому что то, что вы предлагаете, имеет смысл, поэтому я не уверен, почему оно ведет себя не так, как ожидалось.
можно попробовать отключить визуальное взаимодействие
Спасибо за ответ, но либо я неправильно применил ваше предложение, либо это не то, что мне нужно. Если можете, пожалуйста, проверьте эти два изображения. На первом изображении к верхнему левому визуальному элементу не применены никакие фильтры, поэтому показаны все подсчитанные Rx. В левом нижнем углу показано общее количество рецептов, отправленных поставщиком А, затем справа показан процент всех рецептов (8740), отправленных поставщиком А. На втором изображении я нажимаю на Аптеку C в левом верхнем углу. визуальный элемент для применения фильтра. imgur.com/a/W2A8lCn