我想在变量中存储一个表,但要基于可视化的条件。
例如
VAR ColumnValues = values( SpecificTable[SpecificColumn] )
工作正常,但我想做的是:
VAR ColumnValues = if([some condition T/F], values( SpecificTable1[SpecificColumn1] ) , SpecificTable2[SpecificColumn2] )
作为参考,这个问题是在探索解决问题的变通方法:对我标记为过早回答的动态维度做出响应的动态度量。我仍然没有在DAX中动态处理列值的解决方案。
我还没能想出一个允许这样做的语法。Switch只返回标量字符串,而IF似乎只允许标量结果,而不允许表。还有其他我没有想过的选择吗?
没有明确使用任何条件,而是我正在检查的条件,我能够通过以下方式获得所需结果:
创建字段参数(将其命名为"_Dimension"(,选择需要在DAX 中播放的列
DAX看起来像这样:
VAR SelectedDim = SELECTEDVALUE( _Dimension[_Dimension Fields] ) //fully qualified - created by field parameter
//stage the values in each of the columns available
VAR Dim1Values = ADDCOLUMNS( VALUES( Dim1[Column1] ) , "RowValue" , Dim1[Column1] , "ColumnName" , "'Dim1'[Column1]" )
VAR Dim2Values = ADDCOLUMNS( VALUES( Dim1[Column2] ) , "RowValue" , Dim1[Column2] , "ColumnName" , "'Dim1'[Column2]" )
//... same pattern, as many column as needed
VAR SelectedDimValues = FILTER( UNION( Dim1Values, Dim2Values ) , [RowValue] = SelectedDim ) //return the values just for the selected column
SelectedDimValues是一个变量,它包含一个包含所选维度行的表。