要解释我的问题,请查看下面从我的架构中摘录的内容。
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,因此需要一些动态的方法来安装它。
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)
仍然无法按每天和关闭的总和的比例运行。有什么想法吗?
答案 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。
外观如下:
答案 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%的图表,并带有诸如“打开和关闭”之类的选项。
希望这是您的追求。让我知道你怎么样!