首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用非活动(用户关系)覆盖活动过滤器(用户关系)

用非活动(用户关系)覆盖活动过滤器(用户关系)
EN

Stack Overflow用户
提问于 2017-03-06 00:36:28
回答 1查看 1.5K关注 0票数 0

我需要帮助创建DAX措施。这是表格立方体中的关系。我有一个事实销售,初始日期,最终日期和产品表。

代码语言:javascript
复制
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工具。用户可以选择任何初始和最终的销售日期进行比较。

实际数据

代码语言:javascript
复制
Product|Date|Sales
Product1|20160101|100
Product1|20160102|110
Product1|20160131|200
Product2|20160101|78
.....

预期输出过滤器:

代码语言:javascript
复制
product : Product1
Initial date : 20160101
Final Date : 20160131

Product | Initial Sales | Final Sales
Product1|100 |200

我已经将DAX度量创建为

代码语言:javascript
复制
Initial Sales := CALCULATE(SUM(SALES),USERELATIONSHIP('Fact Sales'[Date],'Initial Date'[Date]))

但这一措施并没有给我最初的销售,因为它也是过滤的最后日期。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2017-03-06 03:03:20

您可以在DAX中使用FILTER函数来关联没有显式关系的表。

由于禁用了Initial DateFact Sales的关系,因此需要对与筛选器中选定的Initial Date匹配的Fact Sales行进行FILTER。可以使用EARLIER比较根据Fact Sales中的每一行计算的上下文,并为计算筛选正确的值。

使用这些措施:

代码语言:javascript
复制
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 ()
)

代码语言:javascript
复制
Final Sales :=
IF (
    ISFILTERED ( FinalDate[FinalDate] ),
    CALCULATE (
        SUM ( FactSales[Sales] ),
        FILTER ( FactSales, [Date] = MAX ( FinalDate[FinalDate] ) )
    ),
    BLANK ()
)

该表达式的工作方式如下:它将Sales列中的所有值和Date与筛选器中选择的Final Date相等的所有值相加。但是,可以通过设置Final DateFact Sales之间的关系来计算这一点,就像您知道的那样。

ISFILTERED函数告诉我们筛选器是否选择了值,如果选择了值,则返回值,否则返回BLANK

这是Power中的一个例子,因为我现在无法访问Excel。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42615842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档