我的电子表格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查找对应值.
=IF(U2-B2<=183,"10",IF(U2-B2<=730,"20",IF(U2-B2>730,"30")))
你没有考虑半年至一年的,公式中是把半年至两年的算为20了。
最后向下填充。
看了前两个的回答,应该都是高手,我的回答是最笨的,不过简单了一点点。
以上高手的回答都没验证成功,看来高手也有失误的时候。
=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))
本公式无需手动修改日期格式,粘贴后直接向下填充即可
若所有日期在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,"")))
然后向下填充。