在MS Excel中排序的复杂日期?


0

有一个Excel 2016文件包含有关某些事件的数据,主表包含每个事件的ID和日期,如下所示:

ID  Date
1   2017-10-02
2   2017
3   2017-09
4   2017-09-25
…   etc.

大多数日期包括年,月和日,但对于某些日期,确切的日期是未知的,有些日期仅为一年。

在另一张表格中,我希望此范围按照此算法按日期(最新的第一个)排序:

  1. 首先,所有具有完整日期的事件都按通常排序。
  2. 其次,对于任何只有月份的事件,它会插入到本月中旬:不是在第15天,而是在已经排序的事件的第一个和后半个之间。
  3. 第三,对于任何只有年份的事件,它插入到今年年中,类似于第2项。

是否可以使用没有VBA的Excel公式实现这一点( 很重要! )没有为他们缺席的事件分配假的月和日?


很容易 与VBA
Gary's Student

“没有为他们缺席的事件分配假的月和日?” - 如果你的意思是你不能添加带有这些假日期的帮助列,那么回答是“不,这是不可能的”。请说明你能做什么,不能做什么。
Máté Juhász

@MátéJuhász,重要的是只留下给定的数据,而不是制作新的数据。如果没有关于事件的确切日期或月份的信息,则此信息不应该从任何地方出现。
Hydrochoerus Hydrochaeris

您无需证明自己的规则。我问的是为了更好地理解它。所以答案是:不,没有VBA就没有办法实现它。
Máté Juhász

我想我会用两个辅助列中的假日期来做这个 - 根据辅助列对原始数据进行排序,然后你可以删除帮助程序,只需保留正确排序的原始数据 - 这对你有用吗?
barry houdini

Answers:


0

由于您需要非VBA解决方案,所以我想建议您最简单的解决方案,要实现它,您需要遵循这些步骤。

第一部分

  1. 选择整个数据范围。

  2. 在日期按升序排序。

  3. 最后应用Filter。

检查屏幕截图,

enter image description here

注意, 最后一行只有年份( 2017年 ),为此将单元格格式化为文本,因为Excel不允许在单元格中仅写入年份。

第二部分,

  1. 第一个过滤数据具有完整的日期值。

  2. 复制和;将过滤的数据粘贴到其他位置。

  3. 下一个过滤数据有月和&年份,复制并粘贴其他地方。

  4. 最后过滤数据仅限年份,复制和放大也粘贴它们。

您过滤的数据类似于下面的屏幕截图。

enter image description here

请注意 如果您不需要在这种情况下分离数据,则不需要PART TWO,因为在第一部分之后,您将按需要获得数据。

我确实相信,这个解决方案可以帮助您,如果不是只是发表评论。


这不是OP所述问题的正确答案。尝试阅读和 充分认识 在发布错误答案之前,问题是什么。这只会浪费每个人的时间。
Bandersnatch

好的,现在我急切地等待着完美的答案,帮助我。
Rajesh S

如果排除VBA,那么Barry Houdini的建议将是最简单的方法。但OP没有回答他关于(临时)额外列是否正常的问题。
Bandersnatch

OP的算法是,1。具有完整日期的事件。 2.带月份的事件和带有年份的事件。但从技术上讲,Excel不允许仅进入月份或年份。对于此单元格必须格式化为文本或常规,或者应编写日期,然后应用仅限月份的自定义格式。年。字面上没有用户在日常练习中这样做!!主要问题是OP持有者几乎不会对解决方案感到困扰。人必须来说解决方案的正确程度。
Rajesh S

1
@RajeshS,如果我看到任何可以找到的东西的迹象,甚至在正确的解决方向上迈出一步,我会来说。
Hydrochoerus Hydrochaeris
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.