我所拥有的是一个包含日期的列,但它们的格式不同 有些是像'19 .12.2006这样的文本,有些是像2009-10-10这样的日期格式化的单元格
我希望他们都是日期单元格,所以我找到了一个公式= DATEVALUE
我做的是放= IF(A2 =“”;“”; DATEVALUE(A2))
对于文本格式的日期,它做得很好,对于空单元格也可以,但是当单元格是日期单元格时,我有Err:502
有人可以帮助我吗?
答案 0 :(得分:1)
我不是OpenOffice Calc的用户,但在Excel和Google表格中有一个名为= IFERROR()的公式,可以在这种情况下使用 - 您在N7中的公式将是:
=IFERROR(IF(M7="","",DATEVALUE(M7)),M7)
否则,您可以将IF()与ISERROR()一起使用,如下所示:
=IF(ISERROR(DATEVALUE(M7)),M7,IF(M7="","",DATEVALUE(M7)))
希望有所帮助!
麦克
答案 1 :(得分:1)
正如您所发现的那样,DATEVALUE
需要一个看起来像日期而不是实际日期的字符串。但是,没有什么可以阻止您将日期转换为TEXT
的字符串。正确的格式掩码可以为您区分日期和字符串日期。
N1中的公式是,
=IF(ISBLANK(M1); ""; DATEVALUE(TEXT(M1; "mmm dd, yyyy;@")))
这会将实际日期中的任何内容格式化为字符串日期,并仅保留任何字符串日期。您的样本数据和我的区域系统之间似乎存在 dd / mm / yy vs mm / dd / yy 问题,因此我使用了复杂的日期格式,但几乎任何日期格式会做。 @ 卡在最后以捕获字符串。结果由DATEVALUE
处理。我使用ISBLANK
进行第二次测试,但IF(M1=""; ...
没有任何问题。