我们正在研究PowerBI的报告解决方案,它可以满足我们的需求。但是,我们需要能够对事件进行特别报告。每个事件都有一个开始日期和结束日期以及总秒数,并进行百分比计算等。这非常有效。
但是,我们的共同要求是指定我们希望考虑数据的开始日期和结束日期。许多事件将跨越所需时段的开始和结束,甚至在时段开始之前开始并超越结束。我们需要做的只是考虑那段时间内的事件。
是否可以使用切片器来定义开始/结束时段,然后仅包括每个事件切片时段内的秒数?
这将允许我们计算在该时期内所有事件的总时间。
我的表包含数十万行,例如
事件ID | VehicleID | StatusID | ReasonCodeID |的startDateTime | EndDateTime | TotalDuration
我们需要查看属于选定时间段(开始/结束)的每个事件的部分。但事件可以跨越时期。如果事件的一部分超出了一段时间,我们希望忽略该部分持续时间。如果整个事件超出选定的时间段,那么我们将忽略所有这些事件。
例如说,活动将于2月1日开始,并持续到7月1日。如果切片机的选定日期范围是1月1日到3月1日,那么我想仅包括2月1日到3月1日之间的总持续时间计算时间
答案 0 :(得分:1)
是否可以使用切片器来定义开始/结束时段 仅包括每个切片时段内的秒数 事件
是的,有可能。在Power BI Gallery中,有一个自定义可视化,可让您过滤日期范围。
您只需将模型中的日期列拖放到Timeline slicer
即可过滤措施。
要安装它,请转到图库并在搜索框中搜索timeline
,下载并将其导入Power BI。
如果您遇到DAX表达式,请在您的问题中包含SQL代码和示例模型。
如果有帮助,请告诉我。
答案 1 :(得分:1)
您要求的是可行的,但它的工作情况在很大程度上取决于您的表格中的数据量。
您可以使用DAX度量来计算任何属于给定日期的事件的持续时间总和。您可以使用断开连接的断开连接的日期表来执行此操作(2016年10月的Power BI Desktop版本包含一个内置数据切片器,可让您轻松选择范围)。有关详细信息,请访问:https://powerbi.microsoft.com/en-us/blog/power-bi-desktop-october-feature-summary/#reportView。
然后,您将获得一个TAC持续时间的CALCULATE度量,使用FILTER确保有问题的事件落在切片器选择的日期范围内。这里有关于这部分问题的更多细节:Optimizing Dax & model for "where date between" type queries
但是,您要更进一步,因为您不希望总结在给定日期范围内的事件的整个持续时间 - 您只想对在给定日期范围内的持续时间求和。
为此,您必须根据所选日期范围计算运行时每个行的持续时间。您可以使用使用SUMX的度量(请参见下文)执行此操作,但是对于大量记录(数千,数百万),计算将开始减慢。
例如,如果您有一个名为Date的断开连接的日期表,并且您的事件表名为Event,则可以使用以下度量:
Filtered Duration =
CALCULATE (
SUMX (
Event,
DATEDIFF (
MAX ( MIN ( 'Date'[Date] ), Event[StartDateTime] ),
MIN ( MAX ( 'Date'[Date] ), Event[EndDateTime] ),
SECOND
)
),
FILTER (
'Event',
'Event'[StartDateTime] <= MAX ( 'Date'[Date] )
&& 'Event'[EndDateTime] >= MIN ( 'Date'[Date] )
)
)
在这种情况下, MIN('Date'[Date])
公式对应于断开连接的日期表中所选日期范围内的最早日期。 MAX('Date'[Date])
对应于最新日期。
最后一部分(FILTER)说“只查看落在所选范围内的日期的事件”。 SUMX说“为每一行,做一个DATEDIFF”。 DATEDIFF中的MAX表示“选择切片器的第一个日期或事件的开始日期之后”。这样做的原因是,如果您在日期切片机上选择第15到第20,并且事件从18日开始,则您需要从18日开始计算。但是如果事件在11日开始,那么你想从15日算起。 MIN与结束日期相反。
如果事件完全在时间范围内,那么它将计算从开始到结束的秒数。如果事件结束在所选时间范围之后(例如),则它将计算从事件的确切开始到所选结束日期的午夜的秒数。
请注意,因为我使用了日期表,所以您无法选择部分日期作为日期范围。您可以将其扩展为包含时间表,但它会变得更复杂(您需要一个单独的开始和结束时间表,然后在上面考虑该逻辑,已经非常复杂,公式)