У меня есть данные, которые я просто создаю:
Col1 Col2 Col3 Col4
2014/1/1 A Y 10
2014/4/1 A Y 15
2015/1/1 A Z 15
2015/4/1 A Z 30
2014/1/1 B Y 20
2014/4/1 B Y 30
2015/1/1 B Z 40
2015/4/1 B Z 80
Я хочу создать measure
в Power BI
, чтобы я мог создать интерактивную визуализацию. Приведенные выше данные созданы, например, поэтому мы должны предположить, что col2
, col3
имеют несколько факторов.
Мне нужно measure
relativity
, значение в Col4
делит первое значение на Col1
и Col2
.
Результат, который я предполагал, но мне это не нужно в таблице данных, поскольку при создании визуализации и добавлении фильтра для других столбцов Col5
, Col6
и т. Д., Которые я не показывал в этом примере:
Col1 Col2 Col3 Col4 relativity_Col3ALL relativity_Col3EqualsYorZ
2014/1/1 A Y 10 1 1
2014/4/1 A Y 15 1.5 1.5
2015/1/1 A Z 15 1.5 1
2015/4/1 A Z 30 3 2
2014/1/1 B Y 20 1 1
2014/4/1 B Y 30 1.5 1.5
2015/1/1 B Z 40 2 1
2015/4/1 B Z 80 4 2
Так что я строю график и добавляю фильтры рядом с графиком. Когда я выбираю Y в фильтре Col3
, график автоматически меняется.
Я предоставляю код, который я думаю, в R
:
dt <- data.table::as.data.table(dt)
dt[, relativity := Col4 / Col4[1], by = .(Col1, Col2)]
Но приведенный выше код неверен, поскольку он не учитывает Col3
. Я просто хочу упомянуть Col4 / Col4[1]
или Col4 / first(Col4)
.
Я пытался измерить в Power BI:
relativity = CALCULATE(DIVIDE(dt[Col4], dt[AnotherMeasure]), MIN(dt[Col1]))
Я знаю, что это неверно.
Кто-нибудь может помочь?
UPDATE
Я попробовал код @Alexis Olson и изменил как:
relativity =
VAR YR = MIN(dt[Col1].[Year])
VAR QT = MIN(dt[Col1].[Quarter])
VAR PF = CALCULATE(TOTALQTD(SUM(dt[Col4]), dt[Col1].[Date]), dt[Col1].[Year] = YR, dt[Col1].[Quarter] = QT)
RETURN
DIVIDE(SUM(dt[Col4]), PF)
Однако, когда я визуализирую в отчете, все это показывает 1
.
Я тоже пробовал это:
relativity =
VAR YR = CALCULATE(MIN(dt[Col1].[Year]), ALLEXCEPT(dt, dt[Col2]))
VAR QT = CALCULATE(MIN(dt[Col1].[Quarter]), ALLEXCEPT(dt, dt[Col2]))
VAR PFQTD = TOTALQTD(SUM(dt[Col4]), dt[Col1].[Date])
VAR MPFQTD = CALCULATE(MAX(PFQTD), FILTER(dt, dt[Col1].[Year] = YR), FILTER(dt, dt[Col1].[Quarter] = QT))
RETURN
MPFQTD
Не удалось либо