1 有时候想输入日期,但会被EXCEL自动识别为数字
原因是
- 有的EXCEL版本会处理,有的则不会自动处理为日期。
- 也可能,单元格因为各种原因被提前设置了格式,比如常规等。
- 还有的原因是因为EXCEL从xml等其他文件里导入的日期时间等数据本身就存储为数字了。
处理办法
- 右键选择,单元格格式,日期 就可以了
- 也可以用 text() 等内置函数设定为日期的格式也可以
2 有时候想输入数字,但是会被EXCEL识别为日期
原因
- 有时候你刚好输入了一个数字,可以被自动认为为日期,比如 19990101,但是EXCEL会自作聪明的认为这个就是 1999/1/1 ,而且把格式自动给修改为了日期
- 因为你输入的数字凑巧可以被当日期解析
- 日期的解析优先度更高,就这样
解决办法
- 这个你就自己把内容改成“ 常规” 或 数字等 可解决
- 或者 text()等解决
2.2 额外话题,数字和字符串的互相转化(想到就写这儿了,和本文无关)
- 这个和输入一个长串身份证号会被当成科学计数法一样,
- 哪个修改为文本,
- 或者末尾加上 & "" 等 & " " 变成字符串
- 或者前面加 半角引号可解决
- 反过来,如果想让 被识别为字符串的数字,或其他函数输出的数字字符串变成数字怎么办,一般就加个+ 0,-0 ,*1就可以解决
3 用 text()格式转换函数的方法可以解决很多显示问题
- text() 文本处理能力狠强大
- text( , "yyyy-mm-dd")
- text( , "yy-mm-dd")
- 等等各种都可以
4 如果要处理日期里的某个数据(如月份),遇到问题后的几种办法
比如要查日期的月份
4.1 find() 可能报错
- 有的可以
- 但是一般不能用 find()直接查日期内容的 / 等
- 直接用find() 查找日期的 / - 甚至某个数字都无法正确返回
4.2 替换后再find()
- 如果可以把 / - 替换为 . 之类的,就可以用 find() 正常识别了
- 有的时候不好用
- 可以试试 substitute()
4.3 用mid() 去取固定的位数
2 用 固定位数去查,如果是 月份,日期,都固定为2位的比如20070101,可以确定,月份是第6,7位就可以,用mid() 函数来取位数和个数,但是如果是2007/12/1 这样有时1位 又是两位的就不行
4.4 用text(A2,"YYYY/MM/DD") 这样中转一下就直接可以了
4.5最简单的方法,日期用 month() 或 day()去取
- 如果确实是日期数据,直接用 month(), day() 可以直接一步取到月份,日期等