如果是第一个日期或最后一个日期,请使用一次汇总;如果有其他日子,请使用其他汇总

时间:2019-07-15 21:36:52

标签: powerbi dax powerbi-desktop

假设我具有以下数据集。 1

我需要创建以下矩阵,其中如果它是开始或月末,则我汇总类别1中的A或B并计算SUM,但是如果它是一个月中除第一天或最后一天之外的任何一天,我要进行标记类别2中的A或B并计算SUM。我想我需要使用SWITCH,不是吗?

enter image description here


根据评论编辑信息

就像创建3个col一样:

isStart = IF ( main_table[date] = STARTOFMONTH ( main_table[date] ), 1, 0 )

isEnd = IF ( main_table[date] = ENDOFMONTH ( 'main_table'[date] ), 1, 0 )

in_between_date =
    IF ( AND ( main_table[date] <> ENDOFMONTH ( 'main_table'[date] ),
               main_table[date] <> STARTOFMONTH ( main_table[date] ) ), 1, 0 )

然后,用我的类别创建列,例如

start_end =
    IF ( OR ( NOT ( ISERROR ( SEARCH ( "A", main_table[code] ) ) ),
              main_table[code] = "B" ),
         "Category 1",
         BLANK () )

in_between =
    IF ( OR ( main_table[code] = "B", main_table[code] = "A" ), "Category 2", BLANK () )

但是,那我应该在switch / if中使用什么呢? = if(VALUES('main_table'[isStart]) = 1,然后呢?

1 个答案:

答案 0 :(得分:0)

您处在正确的位置,但有点复杂。您只需要为该行所属类别的每一行提供一个额外的“类别”列即可。

Category =
    IF (
        startEnd[date] = STARTOFMONTH ( startEnd[date] )
            || startEnd[date] = ENDOFMONTH ( startEnd[date] );
        "Category1";
        "Category2"
    )

表的最终结果是:

enter image description here