我需要帮助创建DAX措施。这是表格立方体中的关系。我有一个事实销售,初始日期,最终日期和产品表。
Relationship : Product -> Fact Sales (1 to Many, active)
Initial Date -> Fact Sales (1 to many, inactive relation)
Final Date - > Fact Sales(1 to many, active) 立方体是用于电源Bi工具。用户可以选择任何初始和最终的销售日期进行比较。
实际数据
Product|Date|Sales
Product1|20160101|100
Product1|20160102|110
Product1|20160131|200
Product2|20160101|78
.....预期输出过滤器:
product : Product1
Initial date : 20160101
Final Date : 20160131
Product | Initial Sales | Final Sales
Product1|100 |200我已经将DAX度量创建为
Initial Sales := CALCULATE(SUM(SALES),USERELATIONSHIP('Fact Sales'[Date],'Initial Date'[Date]))但这一措施并没有给我最初的销售,因为它也是过滤的最后日期。
提前感谢
发布于 2017-03-06 03:03:20
您可以在DAX中使用FILTER函数来关联没有显式关系的表。
由于禁用了Initial Date与Fact Sales的关系,因此需要对与筛选器中选定的Initial Date匹配的Fact Sales行进行FILTER。可以使用EARLIER比较根据Fact Sales中的每一行计算的上下文,并为计算筛选正确的值。
使用这些措施:
Initial Sales :=
IF (
ISFILTERED ( InitialDate[InitialDate] ),
CALCULATE (
SUM ( FactSales[Sales] ),
FILTER (
ALL ( FactSales ),
COUNTROWS (
FILTER (
FactSales,
EARLIER ( FactSales[Date] ) = MAX ( InitialDate[InitialDate] )
&& EARLIER ( FactSales[Product] ) = [Product]
)
)
)
),
BLANK ()
)
Final Sales :=
IF (
ISFILTERED ( FinalDate[FinalDate] ),
CALCULATE (
SUM ( FactSales[Sales] ),
FILTER ( FactSales, [Date] = MAX ( FinalDate[FinalDate] ) )
),
BLANK ()
)该表达式的工作方式如下:它将Sales列中的所有值和Date与筛选器中选择的Final Date相等的所有值相加。但是,可以通过设置Final Date和Fact Sales之间的关系来计算这一点,就像您知道的那样。
ISFILTERED函数告诉我们筛选器是否选择了值,如果选择了值,则返回值,否则返回BLANK。
这是Power中的一个例子,因为我现在无法访问Excel。

https://stackoverflow.com/questions/42615842
复制相似问题