Excel表格使用if函数算日期的问题

我的电子表格sheet1第B列显示的是日期,我想在第T列实现以下操作:具体如下
2007.03.14
2008.01.23
2003.07.08
2008.09.02
2008.10.29
2008.11.12
2008.11.19
2008.04.12
2009.02.11
2009.02.10
2009.02.16
2009.03.25
2009.02.20
2009.03.01
2009.08.14
2009.07.29
2009.07.29
2009.07.30
2009.10.17
2009.10.08
2009.10.15
2009.11.01

以2010.08.15为目标,半年的为10,1-2年的为20,2年以上为30:
请问是否可以用if函数,公式怎么写?望高手指点。
以上日期为入厂日期,也就是截止到2010年8月15日,入厂时间半年的为10,一年至二年为20,二年以上为30,怎么用公式呢? 我现在显示在上面的日期仅为一小部分.

假设你的数据是从A2往下的,可以用公式:

=LOOKUP(ROUND(DATEDIF(TEXT(SUBSTITUTE(A2,".","-"),"ee-mm-dd"),TEXT(SUBSTITUTE("2010.08.15",".","-"),"ee-mm-dd"),"m")/12,2),{0,10;1,20;2,30})

结果如图示 

解说:ROUND(DATEDIF(TEXT(SUBSTITUTE(A2,".","-"),"ee-mm-dd"),TEXT(SUBSTITUTE("2010.08.15",".","-"),"ee-mm-dd"),"m")/12,2)

这一部分是转换文本为日期格式并进行年数求解.然后再用一个LOOKUP查找对应值.

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-03
首先,表格中的日期格式你要改为2007-3-14,并且单元格的格式要改为“日期”,用点分隔不是日期格式,在第U列输入2010-8-15,也是要设为日期格式,U列可以隐藏起来,在第T列输入
=IF(U2-B2<=183,"10",IF(U2-B2<=730,"20",IF(U2-B2>730,"30")))
你没有考虑半年至一年的,公式中是把半年至两年的算为20了。
最后向下填充。

看了前两个的回答,应该都是高手,我的回答是最笨的,不过简单了一点点。

以上高手的回答都没验证成功,看来高手也有失误的时候。
第2个回答  2010-09-03
在T列对应的行输入如下公式,如果你的日期不是从B1开始的,就用第一个日期的单元格名称代替下式中的B1,一共6个
=IF(DATEDIF(LEFT(B1,4)&"-"&MID(B1,6,2)&"-"&RIGHT(B1,2),"2010"&"-"&"8"&"-"&"15","d")<183,10,IF(DATEDIF(LEFT(B1,4)&"-"&MID(B1,6,2)&"-"&RIGHT(B1,2),"2010"&"-"&"8"&"-"&"15","d")<731,20,30))
本公式无需手动修改日期格式,粘贴后直接向下填充即可
第3个回答  2010-09-03
你需要先转换日期格式,将“.”替换为“-”,然后选定所有日期的单元格右键——设置单元格格式,设置为日期。
若所有日期在A列
在C1输入:2010年8月15日
在B1输入:=IF(AND($C$1-A1>0.5,$C$1-A1<1),10,IF(AND($C$1-A1>=1,$C$1-A1<=2),20,IF($C$1-A1>2,30,"")))
然后向下填充。
第4个回答  2010-09-03
=(datedif(substitute(a1,".","-"),"2010-8-15","y")>=2)*30+(datedif(substitute(a1,".","-"),"2010-8-15","y")>=1)*20+(datedif(substitute(a1,".","-"),"2010-8-15","y")>=0.5)*10

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网