如何在表格模型中使用 DAX 制作小计和总计空白?

how to make sub total and grand total blank using DAX in tabular model?

12 Month Qty:=CALCULATE ( 
     [Qty],
   DATESINPERIOD ( 
       Calendar[Date] , 
       MAX(Calendar[Date]),
       -12, Month
   ) 
)

目前我有我的测量公式。 但是,我想让所有小计和毕业生总计为空白。因此我需要正确设置 ISFILTERED 函数。我用 if(ISFILTERED()) 包装了公式,但效果不佳。那么我怎样才能正确实现 ISFILTERED 功能呢?或者如果我必须使用不同的公式,我应该为这种情况使用什么公式?

根据您对原问题的评论:

ISFILTERED() 必须将列作为其参数,而不是度量。 ISFILTERED() 将告诉您是否已将过滤器(通过数据透视 table 行、列、过滤器或切片器)应用于模型中的特定列。因此,您可以使用它来抑制在层次结构的某些级别对度量的评估。

假设您有一个度量,当处于类别>子类别>项目的层次结构的子类别级别时,您希望将其显示为空白:

IF(
    ISFILTERED(<table>[SubCategory])
    ,BLANK()
    ,[Measure]
)

这将 return 在 [SubCategory] ​​列应用了过滤器的任何地方留空。

编辑评论:

您要留空的层次结构的哪个级别是要在 ISFILTERED() 中引用的列。

我通常将此模式与日期层次结构一起使用以显示不同级别的聚合,并且我倾向于将 HASONEVALUE() 作为我的测试。我将在 SWITCH() 函数中应用一系列这些测试。 SWITCH() 只是嵌套 IF() 的语法糖 - 如果您需要参考,可以查找它。

因此:

MyConditionalMeasure:=
SWITCH( TRUE()
    ,HASONEVALUE(DimDate[Date] 
        // This means we're at the date level of the hierarchy
    ,[BaseMeasure] // The measure to evaluate at that first level
    ,HASONEVALUE(DimDate[Month]) 
        // This is true for a month or a date only, but we've
        // already captured the date possibility above
    ,[Month-appropriate Aggregation of BaseMeasure]
    ,HASONEVALUE(DimDate[Year])
        // Again, true for a single date or a single month, but
        // we've already covered those, so the year level is all
        // that's left
    ,[Year-appropriate Aggregation of BaseMeasure]
    ,BLANK() // The last argument is taken as a final ELSE
        // condition, capturing anything we didn't cover above,
        // which would include the grand total - this will blank the
        // grand total, or e.g. DimDate[Decade] since that is a
        // coarser granularity than we covered with our tests above