Excel 月之间的持续时间 - 如何向 excel 添加额外的行以显示每月的平均时间?
Excel duration between months - how to add additional rows to excel to show average time per month?
我有一个基本的 Excel 电子表格,我正在将其导入 Power BI 以创建图表。电子表格有超过 300K 行数据,每一行都有一个唯一的车辆维修 ID,包括开始日期、完成日期和完成维修所需的时间(以十进制表示)。看起来像下面这样:
修复 ID |开始日期 |完成日期 |修复时间
A32C____1 一月 16____31 三月 16___6.0
我需要制作一个图表,沿 x 轴显示所有 12 个月,平均维修时间除以持续时间(开始日期到完成日期),所以我会有一个图表,其中包含一月- 1 小时,2 月 - 1 小时,3 月 - 1 小时,在这种情况下。
我需要在 excel 中制作额外的 3 行,每行 A32C,平均每月时间的额外列,以及月份的额外列。因此,中间的每个月我都需要一行。它看起来像:
A32C 将有 3 行,一月、二月和三月各一行,每行 1 小时。我当然可以手动执行此操作并将这个新电子表格导入 Power BI 以生成图表,但我的问题是针对超过 300K 行的电子表格 - 我如何(如果有的话)自动执行此操作?
非常感谢
编辑以修复 CROSSJOIN
公式的错误。
我实现此目的的方法(假设您无法获取每天小时级别的数据)基本上是将您的数据与现有 table 个月的数据交叉连接,以创建一个全新的table 与您正在寻找的东西。
首先,您需要一个包含所有月份的 table。如果您已经拥有一个,那就太好了。如果没有,您可以使用此公式在 PowerBI 中创建一个(在“建模”选项卡上,单击“新建”Table 并输入此公式)。
Months = FILTER(CALENDAR(DATE(2017,1,1), DATE(2017,12,31)), DAY([Date]) = 1)
接下来,使用以下公式创建一个新的 table:
Results = FILTER(CROSSJOIN(Data, Months), Data[Start Date] <= Months[Date] && Data[Finish Date] >= Months[Date])
最后,使用此公式创建一个平均维修时间列(如果您想进行不同的数学运算,则创建一个不同的列)。
AverageRepairTime = DIVIDE('Results'[Repair Time], CALCULATE(COUNT('Results'[Repair ID]), FILTER('Results', 'Results'[Repair ID] = EARLIER('Results'[Repair ID]))), 0)
我有一个基本的 Excel 电子表格,我正在将其导入 Power BI 以创建图表。电子表格有超过 300K 行数据,每一行都有一个唯一的车辆维修 ID,包括开始日期、完成日期和完成维修所需的时间(以十进制表示)。看起来像下面这样:
修复 ID |开始日期 |完成日期 |修复时间
A32C____1 一月 16____31 三月 16___6.0
我需要制作一个图表,沿 x 轴显示所有 12 个月,平均维修时间除以持续时间(开始日期到完成日期),所以我会有一个图表,其中包含一月- 1 小时,2 月 - 1 小时,3 月 - 1 小时,在这种情况下。
我需要在 excel 中制作额外的 3 行,每行 A32C,平均每月时间的额外列,以及月份的额外列。因此,中间的每个月我都需要一行。它看起来像:
A32C 将有 3 行,一月、二月和三月各一行,每行 1 小时。我当然可以手动执行此操作并将这个新电子表格导入 Power BI 以生成图表,但我的问题是针对超过 300K 行的电子表格 - 我如何(如果有的话)自动执行此操作?
非常感谢
编辑以修复 CROSSJOIN
公式的错误。
我实现此目的的方法(假设您无法获取每天小时级别的数据)基本上是将您的数据与现有 table 个月的数据交叉连接,以创建一个全新的table 与您正在寻找的东西。
首先,您需要一个包含所有月份的 table。如果您已经拥有一个,那就太好了。如果没有,您可以使用此公式在 PowerBI 中创建一个(在“建模”选项卡上,单击“新建”Table 并输入此公式)。
Months = FILTER(CALENDAR(DATE(2017,1,1), DATE(2017,12,31)), DAY([Date]) = 1)
接下来,使用以下公式创建一个新的 table:
Results = FILTER(CROSSJOIN(Data, Months), Data[Start Date] <= Months[Date] && Data[Finish Date] >= Months[Date])
最后,使用此公式创建一个平均维修时间列(如果您想进行不同的数学运算,则创建一个不同的列)。
AverageRepairTime = DIVIDE('Results'[Repair Time], CALCULATE(COUNT('Results'[Repair ID]), FILTER('Results', 'Results'[Repair ID] = EARLIER('Results'[Repair ID]))), 0)