在汇总中处理多个空行

Handle multiple empty rows in summariz

新建table=

总结(

'Upgrade','Upgrade'[客户],

'Upgrade'[开始日期],

'Upgrade'[完成日期],

)

我有一个自定义列“天数”来计算开始日期和完成日期之间的天数。

问题是开始日期和完成日期中的某些行没有日期。

问题 1:如果两列(开始日期、完成日期)中都没有日期,我希望在计算的“天数”列中有一个 0。

问题2:是否可以在summarize中设置条件将空值替换为0,例如if(isblank(start date) show zero.

我尝试使用 IF 语句,但没有用。

样本Table

这将消除所有 start date=BLANKcompletion date=BLANK

tbl =
SUMMARIZE (
    FILTER (
        'Upgrade',
        ISBLANK ( 'Upgrade'[start date] ) = FALSE ()
            && ISBLANK ( 'Upgrade'[completion date] ) = FALSE ()
    ),
    'Upgrade'[Client],
    'Upgrade'[start date],
    'Upgrade'[completion date]
)

出于好奇,您为什么要使用 SUMMARIZE() 函数 return 一个 table?对于初学者,出于性能原因,建议改用 SUMMARIZECOLUMNS()。但是,您不能通过创建一个计算列来完成 Total Days 列条件吗?

Total Days = 
VAR BlankDates = ISBLANK( Upgrade[Start Date] ) && ISBLANK( Upgrade[Completed Date] )
VAR TotalDays = DATEDIFF( Upgrade[Start Date], Upgrade[Completed Date], DAY )
RETURN IF( BlankDates, 0, TotalDays )

输出:

但是,如果您绝对需要输出新的table。我会在这里做这样的事情。

New Table = 
ADDCOLUMNS(
    SUMMARIZECOLUMNS(
        Upgrade[Client],
        Upgrade[Start Date],
        Upgrade[Completed Date],
        "Extra", 1
    ),
    "Total Days",
        IF(
            ISBLANK( [Start Date] ) && ISBLANK( [Completed Date] ),
            0,
            DATEDIFF( [Start Date], [Completed Date], DAY )
        )
)

输出: