Excel 公式使用公式进行日期转换,带有或错误

Excel 公式使用公式进行日期转换,带有或错误

背景:数据来自一个数据库,其日期采用欧洲格式 (DD/MM/YYYY)。“创建”列 (A 列) 也有一个 24 小时格式的时间戳。旁边是“已识别”列 (B 列),只有一个日期,可能与“创建”日期不同。

我的输出需要是一个新的“创建”列,其中只有美国格式的日期(没有时间戳),我知道如何做。我使用 LEFT 在新列中仅捕获欧洲日期。(C 列)然后在另一个新列中,我使用 =Date(value(right(A2,4)),value(mid(A2,4,2)),value(left(a2,2))) 将日期重新排列为美国格式(MM/DD/YYYY)。(D 列)

以上都很好。但问题就出在这里,我需要对“已识别”数据进行相同的日期转换,将其放入自己的列(列 E)。并非每一行数据都有“已识别”日期。

在没有“已识别”日期的情况下,我希望我的日期公式能够识别错误(显示为#VALUE)并复制转换后的“创建”日期。

我尝试使用 IF、OR 和 IsError 语句,但似乎无法找到有效的语句。

任何建议都将不胜感激。我还尝试使用 =If(iserror) 创建另一列 (F) 来读取我转换后的“已识别”列,如果出现错误,则获取转换后的“创建”日期,如果不是错误,则获取转换后的“已识别”日期,但是这给了我一个空单元格。

我已经创建了一个简单的示例 Excel 表,但是我没有看到在哪里上传/附加 Excel 文件的选项?

带有公式注释的示例工作簿图像

答案1

细胞公式E2...

老方法,使用 IF

=IF(ISBLANK(B2),D2,DATE(VALUE(RIGHT(B2,4)),VALUE(MID(B2,4,2)),VALUE(LEFT(B2,2))))

现代方式,使用 IFERROR

=IFERROR(DATE(VALUE(RIGHT(B2,4)),VALUE(MID(B2,4,2)),VALUE(LEFT(B2,2))),D2)

如果B2为空则DATE您所处的函数E2会产生错误。

旧方法使用IF函数来测试单元格是否B2为空,如果是,则直接将单元格中的内容作为结果传递D2。如果测试失败,则IF函数直接使用该函数计算所需结果DATE

现代方法并不关心导致DATE错误的原因,而只关心是否存在错误。如果没有错误,IFERROR 函数将使用第一个参数 - 函数DATE- 如果有错误,它将使用第二个参数 - D2- 作为结果。

现代方法更可取。其他错误(例如B2包含随机文本)将导致DATEE2 中的函数出现问题。该IF版本无法正确处理此类错误,而IFERROR可以。

相关内容