将文本单元格转换为DATE,但保留空白和DATE单元格完整

时间:2014-11-27 12:06:12

标签: spreadsheet openoffice-calc

抱歉,我不知道电子表格。

我所拥有的是一个包含日期的列,但它们的格式不同 有些是像'19 .12.2006这样的文本,有些是像2009-10-10这样的日期格式化的单元格

我希望他们都是日期单元格,所以我找到了一个公式= DATEVALUE

我做的是放= IF(A2 =“”;“”; DATEVALUE(A2))

对于文本格式的日期,它做得很好,对于空单元格也可以,但是当单元格是日期单元格时,我有Err:502

有人可以帮助我吗?

here's what it looks like

2 个答案:

答案 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的字符串。正确的格式掩码可以为您区分日期和字符串日期。

CALC DATEVALUE with TEXT

N1中的公式是,

=IF(ISBLANK(M1); ""; DATEVALUE(TEXT(M1; "mmm dd, yyyy;@")))

这会将实际日期中的任何内容格式化为字符串日期,并仅保留任何字符串日期。您的样本数据和我的区域系统之间似乎存在 dd / mm / yy vs mm / dd / yy 问题,因此我使用了复杂的日期格式,但几乎任何日期格式会做。 @ 卡在最后以捕获字符串。结果由DATEVALUE处理。我使用ISBLANK进行第二次测试,但IF(M1=""; ...没有任何问题。