不要在空白日期上显示 1900

不要在空白日期上显示 1900

我有一个电子表格,可以将一个单元格中的日期转换为另一个单元格中的年份。我想将公式拉下来,以便如果 C 列中有日期,它会自动显示 A 列和 B 列中的日期;但是,我不希望它在空白单元格上显示 1900 年。A 列和 B 列从 C 中提取(不是手动输入的),如下图所示:

引用字段的屏幕截图

A 和 B 使用以下公式:

A is   =TEXT(C27,"YYYY")
B is   =TEXT(C27,"MMM") 

我该如何编辑这些公式,以便如果 C 列中没有日期,则 A 列和 B 列将显示为空白?如果我无法编辑公式,还有其他解决方案吗?

答案1

=IF(C27=0,"",TEXT(C27,"YYYY"))应该有效 - excel 将空单元格视为等于零。因此,如果等于零,此公式将返回一个空字符串 ( ""),这会使单元格看起来是空白的,如果不是,则返回TEXT(C27,"YYYY")

如果这不起作用,你的空白单元格可能有空文本(如果你在公式中看到单引号,,'则将其标记为文本,并且它不等于零),所以请=IF(C27="","",TEXT(C27,"YYYY"))尝试

答案2

在许多情况下,Excel 会将空白单元格视为零0。Excel 完全接受日期值0,并将其视为 1900 年 1 月 0 日。是的,1900 年 1 月 0 日。(如果您使用的是旧版 Macintosh 版 Excel,则为 1904 年)。有关更多详细信息,请参阅相关 Microsoft 支持页面

为了您的目的,如果您希望在日期为空白时为空白,则检查该空白状态并返回空白即可。

=IF(C27="","",TEXT(C27,"YYYY"))
=IF(C27="","",TEXT(C27,"MMM"))

其他可能适合您的替代方案是:

=IF(ISBLANK(C27),"",TEXT(C27,"YYYY"))
=IF(LEN(C27)=0,"",TEXT(C27,"YYYY"))
=IF(C27=0,"",TEXT(C27,"YYYY"))

答案3

这一切只需要为单元格指定一个自定义数字格式。

首先,用您想要的日期格式来格式化它(我确信它已经是了)。

然后调出格式化功能并Custom在数字格式类型列表底部进行选择。

它将显示(在该列表的右侧)组成当前日期格式的符号。例如,它可以显示以下内容:

m/d/yy;@

它将把任何正数显示为日期。

这些格式可以设置四种格式:“正值;负值;零值;文本值”,虽然可能还有更多设置,具体取决于您对允许的四种格式的兴趣,但您需要做的就是为单元格最终包含的任何零值添加格式。因此,您有兴趣保留第一部分,并添加两个中间部分。(实际上@是第四个设置:文本。)

注意,我使用字符命名了各个部分,因此将它们分开;。因此,以下内容将解决所有四个部分并添加对零值的处理:

m/d/yy;;;@

就是这样。第 1/2 个字符和第 2/3 个;字符之间没有任何格式化字符,这意味着负值和零值都将被格式化为空白单元格。(这具有处理负值的优势,但是如果你想要 Excel 自己处理这些负值的操作,那么可以m/d/yy在第 1/2 个字符之间放置一些内容(实际上是你自己的格式,但对于这个答案,可能是那个);

当值为零时,您将看到一个空白,这就是您获得该1/0/1900结果时的样子。

相关内容