我有一个简单创建的数据:
String delayString = "Delay = " + Integer.toString(Delay);
Toast.makeText(WaitingActivity.this, delayString, Toast.LENGTH_LONG).show();
我想在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]
。
我在Power BI中尝试过测量:
Col4 / first(Col4)
我知道这是错误的。
有人可以帮忙吗?
更新
我尝试了@Alexis Olson的代码,并修改为:
relativity = CALCULATE(DIVIDE(dt[Col4], dt[AnotherMeasure]), MIN(dt[Col1]))
但是,当我在报表中可视化时,它们都显示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
均失败
答案 0 :(得分:0)
使用this Q&A中的逻辑,您可以创建一个计算列,如下所示:
relativity =
VAR FirstCol1 = CALCULATE ( MIN ( dt[Col1] ), ALLEXCEPT ( dt, dt[Col2], dt[Col3] ) )
VAR FirstCol4 = CALCULATE ( VALUES ( dt[Col4] ), dt[Col1] = FirstCol1 )
RETURN
DIVIDE ( dt[Col4], FirstCol4 )
当Col2
和Col3
是相同的值时,它将查找第一个日期,然后在该第一个日期找到Col4
的值,最后将当前的Col4
除以值乘以第一个Col4
值。
ALLEXCEPT
除去您指定的列之外的行上下文。如果您想要relativity_Col3_All
,只需从ALLEXCEPT
规范中删除该列。