如何用声明表的关联列值替换DAX度量中的颜色值
解决DAX度量中引用ADDCOLUMNS内同一计算列的问题
要将@Bars中的XXXX替换为同一行@Colour列的颜色值,你需要使用DAX的EARLIER函数来引用当前行上下文的@Colour值。修改后的完整代码如下:
VAR _BarTable= ADDCOLUMNS( SUMMARIZE('Crypto Data', 'Crypto Data'[timestamp]), "@Colour", IF( [Current Price] = _YMaxValue, "Green", IF( [Current Price] = _YMinValue, "Red", _LineColor) ), "@Bars", "<rect x='" & INT(150 * DIVIDE('Crypto Data'[timestamp] - _XMinDate, _XMaxDate - _XMinDate)) & "' width='1' stroke='" & EARLIER([@Colour]) & "' stroke-width='1' y='" & 50 - INT(50 * DIVIDE([Current Price] - _YMinValue, _YMaxValue - _YMinValue)) & "' height='" & INT(50 * DIVIDE([Current Price] - _YMinValue, _YMaxValue - _YMinValue)) & "' style='fill:" & EARLIER([@Colour]) & "'/>" )
说明
在ADDCOLUMNS函数中,每一列的计算处于独立行上下文,直接引用[@Colour]会因上下文层级问题无法获取对应值。EARLIER函数可穿透当前行上下文,获取外层行上下文(即当前行已计算完成的@Colour值),从而实现同一行内的列值引用。
内容的提问来源于stack exchange,提问作者steven
相关产品推荐
相关产品推荐

