1

目前,我使用查询从数据库中导出了一些数据,其中“评论”列的每一行都以格式为 MM/DD/YY 的日期开头。

我使用该=LEFT(TEXT,8)函数仅提取日期,但碰巧某些日期的格式不一致,因此我们可能有一些是 M/D/YY,其中月份或日期不是两位数,这将包括一个 ' ;' 作为分隔符,因为它少于 8 个字符。

有没有办法可以格式化文本,所以';' 被排除在外?这样我就可以对数据进行排序。

4

3 回答 3

4

我认为该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 示例。

于 2013-11-05T23:23:35.463 回答
2

假设您的文本如下所示: ;1/;2/13 或 1/2/13;; 或;;1/2/13

您可以像这样使用替代品:

=SUBSTITUTE(A1,";","")

结果将是:

在此处输入图像描述

于 2013-11-05T23:21:44.717 回答
2

因此,如果日期是 A2 的前 6、7 或 8 个字符,您可以使用此公式获取日期

=LOOKUP(10^10,LEFT(A2,{6,7,8})+0)

以所需的日期格式格式化结果单元格

由于结果是有效日期,您可以像对数字进行排序一样对它们进行排序

于 2013-11-05T23:49:13.427 回答