У меня проблема с визуализацией среднего значения с начала года.
У меня есть база данных в Excel, которая связана с Power BI. База данных имеет следующий формат: структура базы данных Что необходимо для построения графика, так это среднее значение за месяц и среднее значение с начала года на основе данных. В отчете Power BI есть несколько срезов, поэтому нужно выбрать 5–6 разных регионов и 5–6 разных типов моделей.
Среднее за месяц работает с отображением среднего времени выполнения заказа за каждый период. Период в основном представляет собой месяц, но не в той же системе, что и календарный месяц. P01 — октябрь, P02 — ноябрь, P03 — декабрь… P12 — сентябрь.
Итак, что необходимо рассчитать, так это среднее значение с начала года, когда слайсеры все еще работают:
Для P01 среднемесячное значение и среднее значение с начала года одинаковы. Для P02 среднемесячное значение основано на всех позициях, зарегистрированных для P02, но среднее значение с начала года является следующим: YTD P02 = сумма времени выполнения, деленная на сумму количества в периодах P01 и P02 вместе.
Для P03 YTD будет представлять собой сумму времени выполнения заказа в периоде P01-P03, деленную на количество товаров за тот же период.
И т. д. для P04-P12 выполняется та же настройка.
Я использую Power Bi для визуализации среднемесячного значения, а также можно рассчитать ежемесячное количество (количество).
Как я могу управлять графиком, где ytd будет использовать расчетные значения мощности bi? мощный биграф
Среднемесячное и месячное количество существуют, поэтому задача написать функцию, используя следующие значения:
- YTD P01 = AVG Время выполнения P01/ количество времени выполнения P01
- YTD P02 = (AVG P01 * количество P01 + AVG P02 * количество P02) / (счет P01 + количество P02)
- YTD P03 = (AVG P01 * количество P01 + AVG P02 * количество P02 + AVG P03 * количество P03) / (счет P01 + количество P02 + количество P03)
.... и т. д. до P12.
У кого-нибудь есть идея для решения? Заранее спасибо.
Gabor
1 ответ
Хотя вы не используете фактические даты, у вас есть значения в порядке возрастания, поэтому вы должны иметь возможность использовать шаблоны, аналогичные стандартным показателям с начала года до даты в DAX и Power BI. Здесь следует отдать должное команде SQLBI, стоящей за веб-сайтом шаблонов DAX. Я просто настраиваю их работать здесь.
Чтобы все было ясно, я бы предложил разбить все на этапы, построить годовые показатели как для общего времени выполнения заказа, так и для количества измерений, а затем третий, чтобы дать фактическое среднее значение, которое вам нужно. Отдельные меры также помогают при отладке, если есть проблема.
Я предполагаю, что ваша таблица данных называется MyTable.
[TotalLeadTimeYTD] :=
CALCULATE (
SUM('MyTable'[Leadtime]),
FILTER (
ALL ( 'MyTable' ),
'MyTable'[FY] = MAX ( 'MyTable'[FY] )
&& 'MyTable'[Period] <= MAX ( 'MyTable'[Period] )
)
)
А также:
[CountOfMeasuresYTD] :=
CALCULATE (
COUNTROWS('MyTable'),
FILTER (
ALL ( 'MyTable' ),
'MyTable'[FY] = MAX ( 'MyTable'[FY] )
&& 'MyTable'[Period] <= MAX ( 'MyTable'[Period] )
)
)
И наконец
AverageLeadTimeYTS := DIVIDE([TotalLeadTimeYTD],[CountOfMeasuresYTD])
Имейте в виду, что, поскольку у вас нет отдельной таблицы дат, ВСЕ («MyTable») вычислений также удалят любые другие примененные вами фильтры. Если это не желаемый результат, вам нужно изменить так, чтобы фильтры по периоду и году удалялись, но не по другим. ALL('MyTable'[FY],'MyTable'[Period] ) может работать, но мы находимся в той точке, где трудно кодировать без демонстрационных данных.
Вышеупомянутые меры были протестированы на следующем жестко запрограммированном наборе данных:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wcos0tFDSUQowBBKGSrE6CBEjIGGEImIMJIxhIuYYusyRdMUCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", Int64.Type}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Column1", "FY"}, {"Column2", "Period"}, {"Column3", "Leadtime"}})
in
#"Renamed Columns"
Похожие вопросы
Новые вопросы
powerbi
Power BI — это бесплатный аналитический инструмент самообслуживания, доступный отдельно или интегрированный с Microsoft Excel, Office 365 и многими основными базами данных и инструментами аналитики.