荣威airbag pass:excel中使用日期函数问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 08:28:03
在excel中使用now()函数,可以输出日期的值,但是其实际值是当前日期-1900年1月1日的值,比如今天就是输出38837这个值,有什么办法可以让输出值就是20060430这样的格式。
ps.我是用excel导出xml文件。
3楼的答案还是不行,我想问下,在写xsd映射时,我的这样的
<xs:complexType name="日期">
<xs:attribute name="日期值" type="xs:string"/>
</xs:complexType>
但是在excel进行xml映射时显示格式不同,如果变更格式,那么就是38837这样的值,如果保留现在格式,导出的xml也是38837这样的值,似乎没法让导出值就直接成20060430这样的格式。

=TEXT(TODAY(),"yyyymmdd")可以达成楼主要求。但这不符合EXCEL对于日期存放的规定,因而如果做为数值参与其他运算,则必须通过TEXT函数进行还原。所以还是建议使用符合规定的yyyy-mm-dd等标准格式。

用当前日期函数TODAY()试试:

任意空白单元格中输入公式
=TODAY()
回车确认,返回值是2006-4-30。

如果在进行文件导出(入)时出现38837,说明程序默认的数字格式是“常规”,在单元格格式对话框中,把数字格式设置为“日期”即可。

注意:
函数NOW()返回的是当前日期的时间。

now()函数是在一个单元格中返回当前计算机系统的日期与时间函数!其实就是读系统WINDOWS的时间。为明显显示您可以改一下系统的年月日或时间,保存EXCEL文件,再打开文件看看!。
但返回的是一个“显示达到要求---20060430这样的格式”,其实是一个“序列号”---38837这个值转为20060430这样的格式。
基本思路:我们要先将序列号"38837"分别算出“年2006”“月04”“日30”就可以了
假如now()函数在A1
年YEAR(A1)
月MONTH(A1)
日DAY(A1)
将他们连接起来就行了,但月1--9前要加个0,因此要IF判断写出的正确的格式“04”、12
IF(MONTH(A1)<=9,"0"&MONTH(A1),MONTH(A1))表示:
如果引用的A1算出的月数值小于等于9,显示就要在前面补一个0,否则(就10、11、12)直接显示。
两个&是将年月日和在一起,
IF里的&连是连一个0圈圈啦!

我合成写在一个单元格(非A1)!
YEAR(A1)&IF(MONTH(A1)<=9,"0"&MONTH(A1),MONTH(A1))&DAY(A1)

如果文本格式不满足格式要求,可以转数值,将文本如20060430该为数VALUE,显示都为20060430
所以最后可以为:
VALUE(YEAR(A1)&IF(MONTH(A1)<=9,"0"&MONTH(A1),MONTH(A1))&DAY(A1))

设置单元格格式为‘自定义’→‘yyyymmdd’即可。

不要看楼上的,楼上的是骗人的
是一个广告名片