Powerbi 如何从另一个没有关系的维度表中获取列
我有两个维度的表,它们之间没有关系 1是产品尺寸表吗Powerbi 如何从另一个没有关系的维度表中获取列,powerbi,dax,ssas-tabular,Powerbi,Dax,Ssas Tabular,我有两个维度的表,它们之间没有关系 1是产品尺寸表吗 ProdCode | ValidStartDate | ValidEndDate XX | 2012-01-01| 2016-12-31 XX | 2017-01-01| 2017-12-31 XX | 2018-01-01| 2020-12-31 第二是时间表 Year | IsCurrent 2012 | 0 2013 | 0 2014 | 0 2015 | 0 2016 | 0 2017 | 0 2018 | 0 2019 | 0
ProdCode | ValidStartDate | ValidEndDate
XX | 2012-01-01| 2016-12-31
XX | 2017-01-01| 2017-12-31
XX | 2018-01-01| 2020-12-31
第二是时间表
Year | IsCurrent
2012 | 0
2013 | 0
2014 | 0
2015 | 0
2016 | 0
2017 | 0
2018 | 0
2019 | 0
2020 | 1
我需要在Product表中创建一个计算列,以显示所选年份时间表中的当前列
我尝试使用CALCULATE,但它需要一个聚合函数,我不能使用它,因为我想在当前行上下文中显示值
例如:
IsCurrent =
CALCULATE(
MAXA('Time'[IsCurrent]),
FILTER(
'Time',
'Time'[Year] >= YEAR(Product[ValidStartDate])
&& 'Time'[Year] <= YEAR(Product[ValidEndDate])
)
)
IsCurrent=
算计(
MAXA('时间'[当前]),
滤器(
“时间”,
“时间”[Year]>=年(产品[ValidStartDate])
&&'时间'[Year]尝试下面的度量脚本-
测量
IsCurrent =
CALCULATE(
MAXA('Time'[IsCurrent]),
FILTER(
'Time',
'Time'[Year] >= YEAR(MIN(Product[ValidStartDate]))
&& 'Time'[Year] <= YEAR(MIN(Product[ValidEndDate]))
)
)
IsCurrent=
算计(
MAXA('时间'[当前]),
滤器(
“时间”,
“时间”[Year]>=年(最小值(产品[ValidStartDate]))
&&“时间”[年]=当前开始年
&&“时间”[年]创建以下度量-
in_range =
VAR selected_year = SELECTEDVALUE('time'[Year])
RETURN IF(
YEAR(MIN('product'[ValidStartDate])) <= selected_year
&& YEAR(MIN('product'[ValidEndDate])) >= selected_year
,
1,
0
)
在\u范围内=
所选变量\年=所选值('时间'[年])
返回如果(
年份(最小(“产品”[有效开始日期])=所选年份
,
1.
0
)
这将为您提供如下输出-
现在,您可以使用上述度量添加一个视觉级别过滤器,以便在in_range=1时,该行将显示出来。此过滤器将仅在表中保留您期望的行。自定义列我已经尝试过,但不起作用,但该度量在我的情况下似乎起作用。让我尝试一下。感谢您的回答。希望这能奏效k、 如果有帮助,请接受答案:)您知道自定义列逻辑不起作用的原因吗。请将表名表单“Product Time”更改为“Time”。如果问题仍然存在,请尽可能在此处提供代码。Hi@LernSQL我已更新了答案。请检查。我已尝试,但选择了值()在我的解决方案中无法识别。我使用SSAS表格模型作为源。这是SSAS表格模型的一个问题:(
in_range =
VAR selected_year = SELECTEDVALUE('time'[Year])
RETURN IF(
YEAR(MIN('product'[ValidStartDate])) <= selected_year
&& YEAR(MIN('product'[ValidEndDate])) >= selected_year
,
1,
0
)