是否可以将日期分组在一起并返回该分组的开始日期和结束日期?

时间:2019-06-04 16:14:21

标签: excel excel-formula formula

我正在寻找帮助。我在Excel中预定了一件设备的日期非常长。

我想做的是在列表中搜索设备(工具1),然后查看与之关联的所有日期。如果要考虑日期,那么我想将它们分组在一起,并返回该组的开始日期和结束日期(期间)。如果间隔为1天或更长时间,则它将查找下一组连续日期,将其分组并返回该时间段的开始日期和结束日期。同样地,如果只有一天,它将返回该日期作为开始和结束日期。...例如,我有这个

Date               Equipment
01/01/2019         Tool1
02/01/2019         Tool1
03/01/2019         Tool1
04/01/2019         Tool1
06/01/2019         Tool1
10/01/2019         Tool1
11/01/2019         Tool1
12/01/2019         Tool1
13/01/2019         Tool1
14/01/2019         Tool1
16/01/2019         Tool2
17/01/2019         Tool2

最后我要说的是...

Equipment    Start Date    End Date
Tool 1       01/01/2019    04/01/2019
Tool 1       06/01/2019    06/01/2019
Tool 1       10/01/2019    14/01/2019
Tool 2       16/01/2019    17/01/2019

同样,设备清单将改变,某些日期可能会重叠,因为它们可以同时预订-但我将它们分开列出-因此每个设备清单都有一个表,列。 / p>

这有可能吗?请帮助,如果您需要我进一步解释,请让我知道.....

1 个答案:

答案 0 :(得分:1)

请记住,这是一个非常的粗糙示例,我敢肯定社区中的其他一些成员可以创建一个更加优雅的解决方案,但这是一种解决方法:

Example solution

A列-日期,必须将其组织起来才能使该解决方案生效。这可以通过Excel排序/过滤器来实现。

B列-工具。在此解决方案中,我没有考虑工具1与工具2。但是,也许您将能够在不同的工作表中将工具彼此分开?也许您可以想出一种巧妙的方法来考虑该工具。

C列-检查A列的日期是否紧随前一个日期,从而使其成为时间段的一部分。

D列-检查A列日期是否为时间段的开始日期。

E列-检查A列日期是否为时间段的结束日期。

F列-检查A列日期是否同时是时间段的开始和结束。即该工具只租一天吗?

G列-生成与开始日期相关的文本。

H列-生成与结束日期相关的文本。

第I列-组合G列和H列中的文本以创建一列时间块信息。现在我们只需要删除日期信息之间的空白块(即空白)。

如果我们使用TEXTJOIN函数删除空白,然后删除我们不希望使用的CHAR(10),则可以得到如下内容:

Example output

同样,这是一个非常粗糙的示例,但我希望它能帮助您走上正确的轨道!