Power BI-为日期1,日期2..date n添加列/过滤器,其中n是两个日期之间的天数

时间:2019-10-15 14:35:09

标签: powerbi

要解释我的问题,请查看下面从我的架构中摘录的内容。

ID          STATE   START_DATE_PACK END_DATE_PACK   PACK    CLOSE DATE
10539395    O       10/10/2019      20/10/2019      A1  
10564163    O       10/10/2019      20/10/2019      A1  
10564181    O       10/10/2019      20/10/2019      A1  
10564574    C       10/10/2019      20/10/2019      A1      12/10/2019
10564578    C       10/10/2019      20/10/2019      A1      12/10/2019
10564580    C       10/10/2019      20/10/2019      A1      13/10/2019
10565048    C       10/10/2019      20/10/2019      A1      14/10/2019
10565069    C       10/10/2019      20/10/2019      A1      15/10/2019

我想要的是显示每天进度(在开始和结束日期之间)的图形。

在excel中,它会简单地堆积图表,但是我在Power BI中很难做到。请注意,我有数百个Pack,因此需要一些动态的方法来安装它。

enter image description here

10月16日更新 这是我的桌子

ID          STATE   START_DATE_PACK END_DATE_PACK   PACK    CLOSE DATE  Column  NEW.DAYS_ON_CHECK_COUNT Column 2
10539395    O       10/10/2019       20/10/2019     A1                  Open    DAY                     8
10564163    O       10/10/2019       20/10/2019     A1                  Open    DAY                     8
10564181    O       10/10/2019       20/10/2019     A1                  Open    DAY                     8
10564574    C       10/10/2019       20/10/2019     A1     12/10/2019   Closed  DAY 2                   8
10564578    C       10/10/2019       20/10/2019     A1     12/10/2019   Closed  DAY 2                   8
10564580    C       10/10/2019       20/10/2019     A1     13/10/2019   Closed  DAY 3                   8
10565048    C       10/10/2019       20/10/2019     A1     14/10/2019   Closed  DAY 4                   8
10565069    C       10/10/2019       20/10/2019     A1     15/10/2019   Closed  DAY 5                   8

位置:

Column = IF(ISBLANK(Sheet1[CLOSE DATE]), "Open", "Close")

NEW.DAYS_ON_CHECK_COUNT = 
  VAR _days = DATEDIFF(Sheet1[START_DATE_PACK],Sheet1[CLOSE DATE], DAY)
RETURN "DAY " & _days

Column 2 = COUNTROWS(Sheet1)

我的图表即将出现 enter image description here

仍然无法按每天和关闭的总和的比例运行。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

我首先创建一个包含两列的 Days 表:

日期标签,例如第1天,第2天,...

日Datediff ,例如0,1,...

要实现图表示例,可能需要10行-您可能需要在其他情况下使用额外的行来创建它。最简单的方法是使用Enter Data,可能还有更优雅的选择。

在“模型(图)”视图中,表应与其他所有表保持断开连接。我将天标签列的按列排序设置为天数列

下一步,我将创建一个新的状态表,在状态列中使用“打开”和“关闭”值。同样,该表将在模型中保持断开状态。

我要创建的最后一个断开连接的表是日期,例如使用CALENDARAUTO函数。

接下来,我将创建一个“度量”以对断开连接的表行的每种组合计数相关行,例如

Daily Count = 
VAR vStart_Date =
    MIN ( Dates[Date] )
VAR vEnd_Date =
    MAX ( Dates[Date] )
RETURN
    SUMX (
        CROSSJOIN ( Sheet1, Days, Dates, Statuses ),
        SWITCH (
            TRUE,
            [Date] < vStart_Date, BLANK (),
            [Date] > vEnd_Date, BLANK (),
            [Date] < [START_DATE_PACK], BLANK (),
            [Date] > [END_DATE_PACK], BLANK (),
            DATEDIFF ( vStart_Date, [Date], DAY ) <> [Day Datediff], BLANK (),
            [Status] = "Open" 
                && [STATE] = "C" && [Date] > [CLOSE DATE] , BLANK (),
            [Status] = "Closed" 
                && [STATE] = "O", BLANK (),
            [Status] = "Closed" 
                && [Date] <= [CLOSE DATE] , BLANK (),
            1
        )
    ) 

在页面上,我将为Date表中的Dates字段创建一个Slicer,并过滤您的日期范围(例如10/10/2019-15/10/2019)。

最后,我将使用 Days 表中的 Day Label 字段作为图表Axis,将 Status 作为图例添加堆叠的柱状图并使用度量天数作为值。

OP中无法满足您的部分要求,因此上述内容可能需要进行调整。

我已经构建了一个可以运行的演示,您可以从以下链接下载该文件:

https://1drv.ms/f/s!AGLFDsG7h6JPgw4

文件名是: Power BI演示-开始日期和结束日期之间的每天进度。pbix

外观如下:

Demo chart

答案 1 :(得分:-1)

从数据中,您需要添加可用作图例的列。

如果这是直接来自表的模式,则可以在Power Query或Dax中进行

在Power Query中添加自定义列

if [Close Date] = "" Then "Open" else "Close"

在DAX中,您还可以添加带有逻辑的自定义列

Column = IF(ISBLANK('tablename'[Close Date]), "Open", Close")

然后,您可以将其作为图例,将“开始日期”作为一个值,并带有计数的总和,或者使用COUNT('tablename'[StartDate])创建一个新的度量,该操作应与此相同。 / p>

希望有帮助

更新: 您的示例显示了正确的拆分,我认为您需要将未清项目分配给天数

NEW.DAYS_ON_CHECK_COUNT =
  VAR dateCheck = IF(ISBLANK('Sheet1'[CLOSE DATE]), TODAY(), 'Sheet1'[CLOSE DATE])
  VAR _days = DATEDIFF(Sheet1[START_DATE_PACK],dateCheck  , DAY)
RETURN "DAY " & _days

那应该将开放时间设置为从开始日期到今天的开放天数,因此这些项目应显示为“第6天”,如果未关闭,明天它们将变为“第7天”。

答案 2 :(得分:-1)

您是否尝试过使用另一种可视化效果“ 100%堆积柱形图”? 那将具有100%的图表,并带有诸如“打开和关闭”之类的选项。

希望这是您的追求。让我知道你怎么样!

See the attached image

相关问题