如何从字符串中提取日期并将其作为日期存储在另一列中

问题描述 投票:0回答:1

我的 Excel 工作表中有以下列:

enter image description here

我需要从字符串中提取日期(如果存在)并将其存储在另一列(C 列)中。它需要存储为日期,以便我可以使用此列和包含到期日期的列来计算它们之间的天数差异 D 列。

我使用了以下公式:

=TRIM(IFERROR(MID(" "&A1,FIND("/"," "&A1,1)-2,8),""))

这会从文本中提取日期部分并删除不需要的内容。但是,我无法将其转换为日期,因此可以进行上述计算。我不断收到#VALUE 错误。

谁能帮忙解决这个问题吗?

excel excel-formula
1个回答
0
投票

以下是开始的方法:

假设您有适用于 Microsoft 365 的 Excel

  • 尝试猜测日期格式并在可能的情况下进行转换
  • 对于标记为不明确的日期,请以文本形式输入月份(例如“四月”或“四月”)
  • 我添加了条件格式建议以突出显示需要更改的内容
  • 公式“溢出”日期(无需向下拖动)

在第一个获取日期的单元格中,输入以下内容(相应调整输入范围):

=LET(
    comments, A2:A6,
    get_date, LAMBDA(comment,
        LET(
            indices, SEQUENCE(LEN(comment)),
            digit_pos, IF(ISNUMBER(--MID(comment, indices, 1)), indices, ""),
            date_str, MID(comment, MIN(digit_pos), MAX(digit_pos) - MIN(digit_pos) + 1),
            date_part, --TEXTSPLIT(date_str, "/"),
            first, INDEX(date_part, 1, 1),
            second, INDEX(date_part, 1, 2),
            year_, INDEX(date_part, 1, 3) + 2000,
            IFERROR(
                IFS(
                    (ISERR(first) + ISERR(second)) * ISNUMBER(DATEVALUE(date_str)),
                    DATEVALUE(date_str),
                    second > 12,
                    DATE(year_, first, second),
                    first > 12,
                    DATE(year_, second, first),
                    TRUE,
                    "Specify month as mmm"
                ),
                ""
            )
        )
    ),
    MAP(comments, get_date)
)

Result and Conditional formatting

© www.soinside.com 2019 - 2024. All rights reserved.