目前,我使用查询从数据库中导出了一些数据,其中“评论”列的每一行都以格式为 MM/DD/YY 的日期开头。
我使用该=LEFT(TEXT,8)
函数仅提取日期,但碰巧某些日期的格式不一致,因此我们可能有一些是 M/D/YY,其中月份或日期不是两位数,这将包括一个 ' ;' 作为分隔符,因为它少于 8 个字符。
有没有办法可以格式化文本,所以';' 被排除在外?这样我就可以对数据进行排序。
目前,我使用查询从数据库中导出了一些数据,其中“评论”列的每一行都以格式为 MM/DD/YY 的日期开头。
我使用该=LEFT(TEXT,8)
函数仅提取日期,但碰巧某些日期的格式不一致,因此我们可能有一些是 M/D/YY,其中月份或日期不是两位数,这将包括一个 ' ;' 作为分隔符,因为它少于 8 个字符。
有没有办法可以格式化文本,所以';' 被排除在外?这样我就可以对数据进行排序。
我认为该DATEVALUE
功能可以满足您的大部分需求。它采用许多不同的日期格式(M/D/YYYY、MM/DD/YYYY 等)并将其转换为 excel 日期(即自 1900 年 1 月 1 日以来的天数)。
下面的公式说:
DATEVALUE
函数假设 2013 年 9 月 1 日是单元格 A2:
Input Data Sortable Excel Date
---------- -------------------
9/1/2013; =IFERROR(DATEVALUE(A2),DATEVALUE(LEFT(A2,FIND(";",A2)-1)))
09/2/2013; 9/2/2013
10/1/2013; 10/1/2013
10/10/2013 10/10/2013
我在这里制作了一个实时 Excel 示例。
假设您的文本如下所示: ;1/;2/13 或 1/2/13;; 或;;1/2/13
您可以像这样使用替代品:
=SUBSTITUTE(A1,";","")
结果将是:
因此,如果日期是 A2 的前 6、7 或 8 个字符,您可以使用此公式获取日期
=LOOKUP(10^10,LEFT(A2,{6,7,8})+0)
以所需的日期格式格式化结果单元格
由于结果是有效日期,您可以像对数字进行排序一样对它们进行排序