要计算从1900年以前的日期算起的天数,我必须用这个公式加上1000年
=IF(ISTEXT(M3),DATEVALUE(LEFT(M3,LEN(M3)-4)&RIGHT(M3,4)+1000),EDATE(M3,12000))
字符串
由于这个公式增加了1000年,那么我必须从结果中减去1000才能得到最终正确的结果
例如:1892年1月12日-> 2892年1月12日(增加1000年)
然后从这个新的日期(2892年1月12日)开始,我可以使用添加任何天数来获得另一个新的日期,让我说我想添加5626天,然后我得到2907年6月9日,然后为了得到正确的结果,我必须从1907年6月9日减去1000年
然而,让我们再举一个例子,我添加了更少的天数,例如2813天到2892年1月12日,然后我得到了2899年9月25日。为了得到正确的结果,我需要扣除1000年,Excel给出给予3799年9月25日。这是不正确的,正确的是1899年9月25日。那么我如何显示这个正确的结果呢?
1条答案
按热度按时间vlurs2pr1#
创建一个向日期中添加天数的函数。
字符串
在电子表格中,其中InputDate是包含1/12/1892(即Jan 12,1892)的命名单元格
我使用的是英语(澳大利亚),所以日期显示默认为dd/mm/yyyy,可能会根据所用的区域性或单元格格式等而有所不同。
例如,单元格中的公式,其中B2包含要添加的天数。= DateAddDays(InputDate,B2),即= DateAddDays(1/12/1892,5626)= 28/04/1908
型
以任何其他Date格式格式化1900年之前的日期时出现问题。使用VBA-DotNetLib可能会执行下列操作。若要使用,需要注册类型库并导入VBA类。**这是一项正在进行的工作。**甚至可以使用不同的区域性,通过传入IFormatProvider的VBAString.Format2函数以各种语言显示。
型
eg.
型
使用下面的DotNetLib Create函数
型
单元格=格式日期添加天数($A$3,B3),其中$A$3是输入日期,B3是5626
型
或者可以在VBA中开发您自己的自定义日期格式,分解各种日期组件,即需要获得星期几、月份名称等。