#dax #powerbi-desktop #cumulative-sum
Вопрос:
Я пытаюсь использовать DAX в Power BI, и как бы я ни старался, кажется, я не могу сделать это правильно.
Мои исходные данные состоят из выходных данных хранимой процедуры в SQL, которая вычисляет частоту прохождения и сбоев нескольких проверок проверки по набору необработанных данных, размер которых также ежедневно меняется. Таким образом, мои данные за каждый день имеют одинаковое количество типов проверок проверки и дают общее количество строк, проверенных для каждой из них, как одно и то же значение — например:
Стол
Дата | Проверьте Ссылку. | Прошли Строки | Не Удалось Выполнить Строки | Всего Проверенных Строк |
---|---|---|---|---|
01/01/21 | Проверка 1 | 20 | 200 | 220 |
01/01/21 | Проверка 2 | 40 | 180 | 220 |
01/01/21 | Проверка 3 | 60 | 160 | 220 |
01/01/21 | Проверка 4 | 10 | 210 | 220 |
01/01/21 | Проверка 5 | 15 | 205 | 220 |
02/01/21 | Проверка 1 | 20 | 230 | 250 |
02/01/21 | Проверка 2 | 200 | 50 | 250 |
02/01/21 | Проверка 3 | 100 | 150 | 250 |
02/01/21 | Проверка 4 | 40 | 210 | 250 |
02/01/21 | Проверка 5 | 160 | 90 | 250 |
03/01/21 | Проверка 1 | 290 | 10 | 300 |
03/01/21 | Проверка 2 | 110 | 190 | 300 |
03/01/21 | Проверка 3 | 25 | 275 | 300 |
03/01/21 | Проверка 4 | 175 | 125 | 300 |
03/01/21 | Проверка 5 | 20 | 280 | 300 |
и т. д. и т. д.
Я хочу, чтобы на вкладке отчет можно было отобразить карточку ключевых показателей эффективности, которая показывает количество строк, проверенных в любой конкретный день (например, 220 на 01/01/21), и совокупное (текущее) общее количество любых выбранных мной дат (например, если бы я выбрал 02/01/21 и 03/01/21, я ожидал бы увидеть 550).
Я попытался создать быструю меру, чтобы разделить сумму общих строк, проверенных на количество дат (которое, как я думаю, должно быть равно 5) — это работает для отдельных дат, — но когда я выбираю несколько дат в фильтре, я просто получаю среднее значение значений. То же самое происходит, когда я пытаюсь выполнить подсчет по дате и среднему количеству проверенных строк.
Единственный способ, которым я смог заставить его работать, — это присвоить каждой из проверок проверки индекс от 1 до 5, а затем создать две быстрые меры, во-первых, чтобы дать мне значение количества строк, проверенных в любой данный день, а затем создать фильтрацию текущего общего показателя по дате и ранее созданную меру измерения:
Dimension Measure = Calculate( SUM('Table'[Total Rows Checked]), 'Table'[Check Ref. Index] in { 1 } (where 1 refers to index 1 (check 1)) Running Total Measure = Calculate ( [Dimension Measure], FILTER( ALLSELECTED('Table'[Date]), ISONORAFTER('Table'[Date], MAX('Table'[Date]), DESC) ) )
Конечно, это нелепый способ сделать это и что есть лучший способ?
Приношу извинения за любую оплошность с моим вопросом или его форматированием — это мой первый вопрос в истории!
Заранее благодарю вас!
Ответ №1:
Как насчет того, чтобы взять сумму максимальных [Всего проверенных строк] для каждой даты в пределах вашего выбора?
Rows Checked = SUMX ( VALUES ( 'Table'[Date] ), CALCULATE ( MAX ( 'Table'[Total Rows Checked] ) ) )
В качестве альтернативы вы могли бы получать первый чек с каждого такого дня:
Rows Checked = CALCULATE ( SUM ( 'Table'[Total Rows Checked] ), 'Table'[Check Ref.] = "Check 1" )
Комментарии:
1. Привет @Alexis Olson — Большое вам спасибо — вы мой герой! Это чрезвычайно полезно и имеет смысл сейчас. Моя проблема заключалась в том, что я довольно новичок в DAX и поэтому еще не слишком хорошо разбираюсь в синтаксисе, поэтому использую быстрые меры, чтобы ориентироваться во всем!