答案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
结果时的样子。