公式:=(D1>0)*(D1<--(TEXT(NOW(),"e-m-d")))
信息来源:/thread-1337933-1-1.html
说明:
1、公式是筛选单元格的,具体格式(变为红色或是其它格式)请自行另设。
2、EXCEL中的日期本质为数字,只是通过“单元格格式”的设置可以改变表现形式。如数字43834,设置单元格格式为日期后,可以表现为“/1/4”或“1月4日”。
3、对公式的解释(公式中以D列为例,“D1”这个字符可以自行更改)
1)这个公式可以拆为两部份,“D1>0”(part1)和“D1<--(TEXT(NOW(),"e-m-d"))”(part2),分别加上括号,以乘号*相连。
2)part2中有这几个函数:TEXT(),NOW()。NOW()返回当前日期和时间;TEXT(value, format_text) 是将“选定值”以“指定格式”的文本形式输出。例如在D1中输入“/1/4”,然后在E1中输入公式“=TEXT(D1, "yyyy年m月")”,然后E1中就会出现1月。其中D1就是选定值,"yyyy年m月"就是指定格式。
3)本公式中TEXT(NOW(),"e-m-d")的“选定值”就是函数NOW(),“指定格式”为"e-m-d",三个字母分别代表年月日,意思是取NOW()函数中的年月日以文本格式输出。
4)"--"是将文本格式的日期转换为数字格式,--(TEXT(NOW(),"e-m-d"))就是当前年月日日期的数字格式;
5)单元格D1中的内容是日期,而EXCEL中的日期本质是数字,所以D1<--(TEXT(NOW(),"e-m-d"))就是比较D1中的日期与当前日期的大小,D1中的日期较小,则返回TRUE;D1中的日期较大,则返回FALSE。
6)part1中的值一般为TRUE。两者相乘,若都为TRUE,则返回值为1;若不相同,则返回值为0。
PS:
1. part2中的<可以根据具体情况改为=或>;
2. 虽然信息来源中似乎是说"e-m"在EXCEL中等同于"e-m-d",但在实际测试中并不等同,出现错误,本人用的版本是Microsoft Office Professional Plus ;
3. NOW()函数也可以用TODAY()函数替代。两者区别就是NOW()返回当前日期和时间;TODAY()函数返回当前日期。