首页 文章

DAX Studio - 使用NOT过滤(ISNULL([METRIC]))

提问于
浏览
0

我认为我的问题来自于不理解DAX使用的操作顺序,因为它对我来说非常混乱,但这是我的问题:

我有一个相当简单的查询使用SUMMARIZE,它基本上拉入我想要的字段,然后计算几个指标 - 每个指标都在CALCULATE函数中过滤 . 但我希望排除所有以null值结尾的行,因为该级别没有可用的数据 . 我不在我的电脑上使用代码,或者我会把我所拥有的完全放在这里,但简化版本基本上是这样的:

EVALUATE
FILTER(
    SUMMARIZE(
         'Fact Table',
         FieldTable[Field1],
         'Metric1',
         CALCULATE(
              [MetricA]
              FILTER(
                   'Fact Table'
                   [MetricA],  
                   [Year] = 2017
              )
          ),
          'Metric2',
          CALCULATE(
              [MetricB]
              FILTER(
                   'Fact Table'
                   [MetricA],  
                   [Year] = 2016
              )
          )
     ),
     NOT(ISNULL([Metric1]))
)

希望我做对了 . 我没有DAX工作室在我面前解决我的问题所以可能会有一些小错误,但希望你能得到它的要点 .

问题是这会返回一个空白表 . 如果我拿出SUMMARIZE函数周围的FILTER,那么一切都像我想要的那样,除了它带来了大量的空白行,这就是我想用外面的FILTER消除的 . 有关如何做到这一点的任何想法?

1 回答

  • 1

    我不知道这是否是最佳解决方案,但我找到了解决方案 . 基本上,将0添加到我的度量,然后将过滤器更改为过滤<> 0 .

    EVALUATE
    FILTER(
        SUMMARIZE(
             'Fact Table',
             FieldTable[Field1],
             'Metric1',
             CALCULATE(
                  [MetricA]
                  FILTER(
                       'Fact Table'
                       [MetricA],  
                       [Year] = 2017
                  )
              ) + 0,
              'Metric2',
              CALCULATE(
                  [MetricB]
                  FILTER(
                       'Fact Table'
                       [MetricA],  
                       [Year] = 2016
                  )
              )
         ),
         [Metric1]<>0
    )
    

相关问题