Необходимость игнорировать фильтр для визуального элемента при вычислении процента для другого визуального элемента

На первый взгляд кажется, что это должна быть простая задача, но я не могу уложить в голове эту задачу.

У меня есть наглядная гистограмма (диаграмма А), показывающая общее количество рецептов, отправленных в различные аптеки. На другой гистограмме (диаграмма B) я показываю отдельных поставщиков и их процент от общего количества рецептов, отправленных в каждую из этих аптек.

То, как она ведет себя сейчас, и что ожидается сразу же, заключается в том, что если я выберу, скажем, Аптеку C из диаграммы A, то на диаграмме B будет показан каждый поставщик и его процентная доля рецептов, отправленных в аптеку C. Например, если аптека C получил всего 1000 скриптов, а провайдер A отправил 250 из них, их соответствующий процент составит 25%. Имеет смысл.

Однако я получил запрос не показывать процентную долю поставщиков в выбранной аптеке, а вместо этого показывать процент от общего количества их скриптов (во все аптеки), которые отправляются в выбранную аптеку, в данном случае в аптеку C. Итак, для этого же Например, поставщик по-прежнему отправил 250 сценариев в Аптеку C, но он хочет знать, какой процент от общего количества сценариев отправлен в любую Аптеку. Таким образом, если Провайдер отправил 2000 сценариев во все аптеки, а 250 отправил в Аптеку C, то будет показано, что 12,5% от общего количества сценариев было отправлено в Аптеку C.

Я пытался создать показатель для выполнения этого расчета, используя общее количество сценариев, написанных для всех аптек каждым поставщиком, однако каждый раз, когда я выбираю конкретную аптеку из диаграммы A, она все равно фильтрует общее количество сценариев поставщиков только для этой выбранной аптеки. . Для расчета общего количества скриптов я хочу, чтобы он игнорировал выбранную аптеку и подсчитывал все скрипты, отправленные провайдером, независимо от аптеки. Я пытался использовать различные функции CALCULATE и filter, но, похоже, не могу понять это.

Прошу прощения, это лучший способ объяснить это.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
73
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Посмотрите, как использовать УДАЛИТЬ ФИЛЬТРЫ.

Предложите создать эти три показателя. Обратите внимание, что для второго вам необходимо удалить «контекст фильтра» для «Аптеки, а не поставщика»:

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]
  )

Таблица данных и результат:

Спасибо за ответ, но либо я неправильно применил ваше предложение, либо это не то, что мне нужно. Если можете, пожалуйста, проверьте эти два изображения. На первом изображении к верхнему левому визуальному элементу не применены никакие фильтры, поэтому показаны все подсчитанные Rx. В левом нижнем углу показано общее количество рецептов, отправленных поставщиком А, затем справа показан процент всех рецептов (8740), отправленных поставщиком А. На втором изображении я нажимаю на Аптеку C в левом верхнем углу. визуальный элемент для применения фильтра. imgur.com/a/W2A8lCn

Zac Zwickel 29.05.2024 22:17

...Здесь вы можете увидеть, сколько рецептов было отправлено в аптеку C поставщиком A (123), а затем процент всех рецептов в аптеке C (709), отправленных поставщиком A. Что я хотел бы показать в правом нижнем углу Диаграмма представляет собой процент рецептов, отправленных поставщиком А в аптеку C (121), по сравнению с общим количеством рецептов поставщика А, отправленных во все аптеки (1011). Надеюсь, это поможет, еще раз спасибо, что даже посмотрели на это!

Zac Zwickel 29.05.2024 22:23

Обновите свой вопрос, указав меры DAX, которые вы используете.

Sam Nseir 30.05.2024 01:30

Для нижней правой диаграммы «Процент по поставщикам» я использовал следующую меру: Процент поставщика = COUNT('Rx Data'[PrescriptionID])/(CALCULATE(count('Rx Data'[PrescriptionID]),ALL(' Rx Data'[Поставщик])))

Zac Zwickel 30.05.2024 15:50

См. обновленный ответ выше, попробуйте использовать три меры. Обратите внимание, что вам необходимо удалить фильтр или ВСЕ у аптеки, а не у поставщика.

Sam Nseir 30.05.2024 16:20

Спасибо, Сэм. Я создал показатели, указанные вами выше, но по какой-то причине и «Общее количество рецептов поставщиков», и «Количество рецептов» дают мне одно и то же значение, поэтому, конечно, «Процент поставщиков» всегда равен 100%. Это та же проблема, с которой я столкнулся, когда числитель и знаменатель возвращают одно и то же значение.

Zac Zwickel 30.05.2024 16:54

Результат смотрите на изображении выше. Возможно, у вас есть другие факторы. Попробуйте заменить REMOVEFILTERS(...) на ALLEXCEPT('Rx Data', 'Rx Data'[Provider]).

Sam Nseir 30.05.2024 17:12

Сэм, я думаю, мы приближаемся. Я заменил REMOVEFILTERS('Rx Data'[Pharmacy]) на ALLEXCEPT('Rx Data', 'Rx Data'[Provider]), и это дает мне новое значение для общего числа назначений поставщика. Единственная проблема сейчас заключается в том, что фильтр даты не работает. Это моя вина, так как я не упомянул, что у меня был срез даты, очень извините.

Zac Zwickel 30.05.2024 17:25

Просто добавьте столбец «Дата» в ALLEXCEPT... ALLEXCEPT('Rx Data', 'Rx Data'[Provider], 'Rx Data'[Date]). Как следует из названия, дайте мне все строки, но сохраните контекст в следующих столбцах (т. е. для того же поставщика и для дат).

Sam Nseir 30.05.2024 17:27

Черт... так что добавление даты (в моем случае столбец называется [CreatedWhen]) снова приводит к тому же значению, что и счетчик рецептов. Я предполагаю, что происходит что-то еще, потому что то, что вы предлагаете, имеет смысл, поэтому я не уверен, почему оно ведет себя не так, как ожидалось.

Zac Zwickel 30.05.2024 17:41

можно попробовать отключить визуальное взаимодействие

визуальное взаимодействие

Другие вопросы по теме