EOMONTH 函数可能不正确,如果日期是在二月

文章翻译 文章翻译
文章编号: 179545 - 查看本文应用于的产品
本文已归档。它按“原样”提供,并且不再更新。
展开全部 | 关闭全部

症状

如果您使用 EOMONTH 函数返回一个月的最后一天,函数可能会返回下个月的第一天。

例如对于 EOMONTH 函数可能会错误地返回 3/1/2100 (3 月 1 2100) 而不是 2/28/2100 (2 月 28 2100)。

原因

当日期由该 EOMONTH 返回函数符合下列条件时,就会出现此问题:
  • 在二月为日期。-并且-

  • 日期为纪元的年份不整除被 400,例如:
    2100、 2200年、 2300年、 2500年、 2600年、 2700年、 2900,3000
注: 如果日期为 1900年或 2000 年中不会发生此问题。

替代方法

因为 EOMONTH 函数应总是返回在该月的最后一个日期,您可以修改公式,以便它们中减去 1 从函数返回的 EOMONTH 如果日期不在该月的最后日期。这将强制函数返回正确的日期,例如:
a1: 1/1/2100
a2: =eomonth(a1,1)
在公式中单元格 A2 返回 3/1/2100年、 不正确的日期。 但是,如果您更改的公式
A1: 1/1/2100
A2: =IF(DAY(EOMONTH(A1,1))=1,EOMONTH(A1,1)-1,EOMONTH(A1,1))
该公式返回正确的日期 (2/28/2100),即使该日期内被 400 不整除的世纪每年的二月。

这是公式的工作原理:
如果该月的结束日期为 1,您可以重新计算月份的末尾,减去 1,,并返回日期。否则为重新计算月份的末尾,并返回该日期。

状态

Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中的问题。在 Microsoft Excel 2000 中不会再出现此问题。

更多信息

EOMONTH 函数将包括在分析工具库,使您可以返回一个月中的最后一天的日期。例如对于如果要确定每月从今天的日期的六个月的最后一天,请使用以下公式:
=eomonth(today(),6)
如果今天是 1/13/98,则函数返回 7/31/98: 每月从今天的六个月的最后一天。

仅在 EOMONTH 函数返回一个日期的世纪年份,例如不是闰年的二月中时,会出现本文所述问题:
a1: 1/1/2000 b1: =eomonth(a1,1)
a2: 1/1/2100 b2: =eomonth(a2,1)
a3: 1/1/2200 b3: =eomonth(a3,1)
a4: 1/1/2300 b4: =eomonth(a4,1)
a5: 1/1/2400 b5: =eomonth(a5,1)
单元格 B1 和 B5 中的公式返回正确的结果 (2000/2/29 和 2/29/2400年) 由于日期是在被 400 整除的世纪年份。

单元格 B2,B3 和 B4 中的公式返回不正确结果 (3/1/2100,3/1/2200年 3/1/2300年) 由于日期是在被 400 不是整除的世纪年份。

属性

文章编号: 179545 - 最后修改: 2013年10月7日 - 修订: 2.0
这篇文章中的信息适用于:
  • Microsoft Excel 97 标准版
  • Microsoft Excel 98 for Macintosh
关键字:?
kbnosurvey kbarchive kbmt kbbug kbpending KB179545 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 179545
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com