【问题标题】:Longest consecutive date streak in ExcelExcel中最长的连续日期连续
【发布时间】:2016-07-13 02:26:03
【问题描述】:

假设我有电子表格:

+-------+----------+
| Date  | Duration |
+-------+----------+
| 06/30 | 12:00    |
| 07/01 | 44:30    |
| 07/03 | 12:00    |
| 07/04 | 18:00    |
| 07/05 | 10:00    |
| 07/07 | 08:00    |
| 07/09 | 99:00    |
| 07/10 | 99:00    |
+-------+----------+

如何通过 Excel 找到最长连续日期的长度? (在本例中,它将是 3: 07/03, 07/04, 07/05)。

我想使用数组公式来执行此操作,但我不知道如何使用数组公式计算列中的连续差异。我宁愿避免使用帮助列,但它不会破坏交易。

【问题讨论】:

  • 连续连续日期表示日期列按升序排序,连续日期是相差1天的日期?
  • @AxelRichter:是的,该列始终按升序排序并且不包含重复项。相隔一天的日期是连续的,相隔一天以上的则不是。

标签: excel google-sheets


【解决方案1】:

使用一个辅助列这将非常简单。

公式:

C3向下:

=IF(A3-A2=1,C2+1,0)

E2:

=MAX(C:C)+1

找到一个无需辅助列即可工作的数组公式:

{=MAX(FREQUENCY(IF($A$3:$A$10001-$A$2:$A$10000=1,ROW($A$2:$A$10000)),IF($A$3:$A$10001-$A$2:$A$10000<>1,ROW($A$2:$A$10000))))+1}

适用于 A 列中的日期,从 A2A10000。 但我很确定带有辅助列的解决方案在性能和可读性方面更好。

【讨论】:

  • 对不起,我删除了这个复选标记,因为我意识到这需要我提前知道我有多少行(公式需要在每一行都有数据)。如果有办法将此公式应用于整个列,请告诉我。
  • support.office.com/en-us/article/… -> 通过双击包含公式的第一个单元格的填充柄,您可以自动向下填充公式,适用于所有相邻的单元格。例如,单元格 A1:A15 和 B1:B15 包含数字,您在单元格 C1 中键入公式 =A1+B1。要将该公式复制到单元格 C2:C15 中,请选择单元格 C1 并双击填充柄。
  • 是的,谢谢,确实有效。我确实担心我会经常在电子表格中添加新日期,而这种方法意味着我必须不断地将公式与新行同步。我很懒!我想我会再等一天等待任何答案。不过感谢您的帮助!
  • 使用Table aka ListObject 怎么样?如果添加了行,它们会自动扩展其公式列。
猜你喜欢
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 2020-12-16
  • 1970-01-01
  • 2022-01-14
相关资源
最近更新 更多