Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 添加列时如何重新使用计算函数中使用的筛选器_Powerbi_Dax - Fatal编程技术网

Powerbi 添加列时如何重新使用计算函数中使用的筛选器

Powerbi 添加列时如何重新使用计算函数中使用的筛选器,powerbi,dax,Powerbi,Dax,我尝试使用计算函数在DAX中添加一些列,如下所示: ADDCOLUMNS( Summarize( CALCULATETABLE( 'MY TABLE' 'MY TABLE'[Year] = 2019, 'MY TABLE'[Month] = January, 'MY TABLE'[Flag] = "N", ), 'MY TABLE'[Column

我尝试使用计算函数在DAX中添加一些列,如下所示:

ADDCOLUMNS(
    Summarize(
        CALCULATETABLE(
            'MY TABLE'
            'MY TABLE'[Year] = 2019,
            'MY TABLE'[Month] = January,
            'MY TABLE'[Flag] = "N",
        ),
        'MY TABLE'[Column 1],
        'MY TABLE'[Column 2],
        'MY TABLE'[Column 3],
        "Calculation", 'MY TABLE'[My Measure],
    ),
    "My Calculation With Filters 1", CALCULATE('MY TABLE'[My Measure 1],[Status]="Open",[Flag]="N"),
    "My Calculation With Filters 2", CALCULATE('MY TABLE'[My Measure 2],[Status]="Open",[Flag]="N"), --Same filters as above
    "My Calculation With Filters 3", CALCULATE('MY TABLE'[My Measure 3],[Status]="Open",[Flag]="N"), --Same filters as above
    "My Calculation With Filters 4", CALCULATE('MY TABLE'[My Measure 4],[Status]="Open",[Flag]="N"), --Same filters as above
    "My Calculation With Filters 5", CALCULATE('MY TABLE'[My Measure 5],[Status]="Open",[Flag]="N"), --Same filters as above
)
我想知道当过滤器相同时,哪一个是最佳实践。我的意思是,有没有办法避免在每个计算函数中添加相同的过滤器?我希望能够共享过滤器,这样我就不会重复代码


谢谢

函数
CALCULATE
允许将表作为筛选器传递,因此您可以将其定义为
VAR
并重用它

CalculatedTable =
VAR FilteredTable =
    FILTER (
        'MY TABLE',
        'MY TABLE'[Status] = "Open" && 'MY TABLE'[Flag] = "N"
        )
VAR Summary =
    SUMMARIZE (
        CALCULATETABLE (
            'MY TABLE',
            'MY TABLE'[Year] = 2019,
            'MY TABLE'[Month] = January,
            'MY TABLE'[Flag] = "N"
        ),
        'MY TABLE'[Column 1],
        'MY TABLE'[Column 2],
        'MY TABLE'[Column 3],
        "Calculation", 'MY TABLE'[My Measure]
    )
RETURN
    ADDCOLUMNS (
        Summary,
        "My Calculation With Filters 1", CALCULATE ( [My Measure 1], FilteredTable ),
        "My Calculation With Filters 2", CALCULATE ( [My Measure 2], FilteredTable ),
        "My Calculation With Filters 3", CALCULATE ( [My Measure 3], FilteredTable ),
        "My Calculation With Filters 4", CALCULATE ( [My Measure 4], FilteredTable ),
        "My Calculation With Filters 5", CALCULATE ( [My Measure 5], FilteredTable )
    )


感谢您的回答,但这将不起作用,因为我需要根据过滤器进行计算,而不是对结果应用过滤器。我需要得到一个过滤表的摘要,然后在该表中添加一些基于其他过滤器的计算,所有这些过滤器都是相同的。您的建议将进行总结,然后添加计算(但不是基于我的过滤器),然后应用过滤器,这不是我需要的。您能否提供一个包括表、过滤器和表达式在内的示例?很难在摘要中回答。请现在看一下代码(我编辑了它)。我希望现在看起来更清楚。谢谢。试试我的编辑。如果将
Summary
表格设置为变量,则它是固定的,不会受到
ADDCOLUMNS
部分中附加过滤器的影响。
CALCULATE
函数可以将表格作为过滤器。您可以将筛选表定义为变量,然后在每个添加的列中重用它。请参阅我的编辑。