最初的目标是创建 31 列,评估 3 个日期的 DAY 部分,并根据 IF 语句在特定列中生成特定字符串。然后,这 31 列将与事件标题一起放在表格中,基本上是 31 天的方形甘特图。 我可以在 Mcode 和高级编辑器中明智地完成此代码,但性能影响是不可能的。
但是,我可以构建 31 个度量,这些度量将像 Power BI 上的矩阵可视化中的列一样显示,这很好。除此之外,Measures 自然没有行上下文。
我一生都无法弄清楚如何添加行上下文,像 SUM、SUMX、MIN、MAX 这样的聚合器都不适用于 SWITCH 语句,因为我没有添加任何内容,它是布尔比较。我知道通常它只是构建在计算列中,但它不适合。
基本上,我需要一种方法将下面的 SWITCH 绑定到 Test_Table 中,理想情况下将使用 [Title] 列,但我只是不知道如何做到这一点。
1 =
SWITCH(TRUE(),
// Y-All
'Test_Table'[Todays_Day_Number] = 1 &&
'Test_Table'[Baseline_Date_Day_Number] = 1 &&
'Test_Table'[Forecast_Date_Day_Number] = 1, "Y-All",
// T-F
'Test_Table'[Todays_Day_Number] = 1 &&
'Test_Table'[Baseline_Date_Day_Number] <> 1 &&
'Test_Table'[Forecast_Date_Day_Number] = 1, "T-F",
// T-BL
'Test_Table'[Todays_Day_Number] = 1 &&
'Test_Table'[Baseline_Date_Day_Number] = 1 &&
'Test_Table'[Forecast_Date_Day_Number] <> 1, "T-BL",
// B
'Test_Table'[Todays_Day_Number] <> 1 &&
'Test_Tabler'[Baseline_Date_Day_Number] = 1 &&
'Test_Table'[Forecast_Date_Day_Number] <> 1, "B",
// F
'Test_Table'[Todays_Day_Number] <> 1 &&
'Test_Table'[Baseline_Date_Day_Number] <> 1 &&
'Test_Table'[Forecast_Date_Day_Number] = 1, "F",
// T
'Test_Table'[Todays_Day_Number] = 1 &&
'Test_Table'[Baseline_Date_Day_Number] <> 1 &&
'Test_Table'[Forecast_Date_Day_Number] <> 1, "T",
"N"
)
作为列,这是条件的倍数,表中的每一行都有 31 次,即使过滤掉它也没有帮助。
我可能遗漏了一些明显的东西,我知道甘特图可用,但这不是客户的职权范围。
错误如下:
无法确定表“Test_Table”中“Todays_Day_Number”列的单个值。当度量公式引用包含许多值的列而不指定聚合(例如最小值、最大值、计数或总和)以获得单个结果时,可能会发生这种情况。
使用 If、then、else、and、each 计算每天的列 减少处理的行 最大限度 最小 苏美克斯 和 全部 选定值 反排 名单还在继续。
SELECTEDVALUE(...)
。
不要创建 31 个度量,而是创建一个度量并使用表格作为列。例如,创建一个计算表:
Dim Day =
SELECTCOLUMNS(
GENERATESERIES(1, 31),
"Day", [Value]
)
将此新表/列用于您的矩阵列。然后只有这个矩阵值的度量:
Day Measure =
var colDay = SELECTEDVALUE('Dim Day'[Day])
var dayT = SELECTEDVALUE('Test_Table'[Todays_Day_Number])
var dayB = SELECTEDVALUE('Test_Table'[Baseline_Date_Day_Number])
var dayF = SELECTEDVALUE('Test_Table'[Forecast_Date_Day_Number])
return SWITCH( TRUE(),
// Y-All
dayT = colDay &&
dayB = colDay &&
dayF = colDay, "Y-All",
// T-F
dayT = colDay &&
dayB <> colDay &&
dayF = colDay, "T-F",
// T-BL
dayT = colDay &&
dayB = colDay &&
dayF <> colDay, "T-BL",
// B
dayT <> colDay &&
dayB = colDay &&
dayF <> colDay, "B",
// F
dayT <> colDay &&
dayB <> colDay &&
dayF = colDay, "F",
// T
dayT = colDay &&
dayB <> colDay &&
dayF <> colDay, "T"
)