Excel2007逻辑函数和日期函数如何使用
逻辑和日期函数
1, if(logical_test,value_if_true,value_if_false)函数是根据指定的条件来判断其“真”true,“假”false,从而返回其相对应的内容。If函数可以嵌套7层关系式,这样可以构造复杂的判断条件,从而进行综合评测,比如使用if函数进行星级评定等。
2,使用if函数与or函数解决计算结果为“0”,错误值的问题
使用公式计算时,当引用单元格中没有输入值时会出现0值或错误值(例如除法运算时的被除数为空时),此时可以用if函数与or函数配合解决。
=if(or(c2=“”,d2=“”),“”,c2/d2)
3,not函数是求反函数,此函数用来确保一个值不等于某一个特定值。
Not(logical)
Logical1,logical2,logical3…表示测试条件值或表达式(可以计算出真假的逻辑值或逻辑表达式),不过最多有30个条件值或表达式。
如果我们在要比较的两组数据非常多(比如2000条),如果比较两个部门对产品的采购价格,此时可以使用数组公式比较两组庞大的数据。
=if(not(b2:b8=c2:c8),“请核对”,“”)
【注:当公式中引用的数据源包含数组时,在输入公式完成后,必须同时按下组合键才能得到正确结果,如not(b2:b8=c2:c8)这种形式,即为数组形式,这种应用方式简化了公式。】
4,使用逻辑函数判断未来年份是闰年还是平年
方法:该年份能被4整除且不能被100整除,或者该年份能被400整除。
=if(or(and(mod(a2,4)=0,mod(a2,100)<>0),mod(a2,400)=0),“闰年”,“”)
5,显示当前日期:=today(),该函数可用于计算账龄。
6,date函数用来计算某一特定日期的系列编号。即是把三个数字联合起来形成日期,比如2008-12-13
Date(year,month,day)若输入月份大于12,将从指定年份1月份开始往上累加;如果day大于该月份的最大天数,将从指定月数第一天开始往上累加。比如date(2008,13,28)结果为2009-1-28
7,date函数计算机某年的天数:=date(a3,b3,c3)-date(a2,b2,c2)
其中,a3,b3,c3分别为年2008,月1,日0;a2,b2,c2分别为年2007,月1,日0,计算结果为2008年的天数365
8,判断一个月的最大天数,用day函数
Day(serial_number)
serial_number表示指定的日期,除使用标准日期格式外,还可以使用日期所对应的序列号。
比如:要求2008年2月份的最大天数,便可以求今年3月份0号的值,因为0号不存在,但date函数也可以接受此值,根据此特性,便会自动返回3月0号的前一数据的日期。
因此,计算2008年2月份天数的公式为=day(date(2008,3,0))
9,days360函数是按照一年360天的算法,返回两个日期之间相差的天数。
Days360(start_date,end_date,method)
Start_date表示计算的起始日期;
End_date表示计算的终止日期。如果start_date在end_date之后,则days360将返回一个负数。
Method表示指定了在计算中是采用欧洲方法还是美国方法。若为false或忽略,则采用美国方法(如果其实日期是一个月的31日,则等于同月的30日。如果终止日期是一个月的31日,并且起始日期早于30日,则终止日期等于下一个月的1日,否则,终止日期等于本月的30日);若为true,怎采用欧洲方法(无论是起始日期还是终止日期为一个月的31日,都将等于本月的30日)
10,使用days360函数计算固定资产的已使用月份
=int(days360(d2,today())/30)
当计算出固定资产的增加日期与当前日期的相差天数后再除以30,之后使用int函数对求得的结果进行取整。
11,自动填写报表中的月份
=month(today())
Month函数是计算指定日期所对应的月份,它是介于1-12月之间的整数。
12,datedif函数是计算两个日期之间的年数,月数和天数
Datedif(date1,date2,code)
Date1表示起始日期
Date2表示结束日期
Code表示要返回两个日期的参数代码,具体代码如下:
Y:返回两个日期之间的年数
M:返回两个日期之间的月数
D:返回两个日期之间的天数
MD:start_date 与 end_date 日期中天数的差。忽略日期中的月和年。
YM:start_date 与 end_date 日期中月数的差。忽略日期中的日和年。
YD:start_date 与 end_date 日期中天数的差。忽略日期中的年。
12-1,用datedif函数将总借款天数转化为“月数、天数”形式
=datedif(c2,d2,”M”)&“月”&datedif(c2,d2,”MD”)&“天”
结果举例:13月23天
12-2,计算精确账龄
=concatenate(datedif(d2,today(),“Y”),“年”,datedif(d2,today(),“YM”),“个月”datedif(d2,today(),“MD”),“日”)
13,weekday函数是返回特定日期所对应的星期数。介于1(星期天)~7(星期六)之间的一个整数。比如星期1,星期7
Weekday(serial_number,return_type)
Serial_number表示要返回日期。
Return_type表示为确定返回值类型的数字。数字1或省略,则1~7代表星期天到星期六;数字2,则1-7代表星期一到星期天;数字3,则0-6代表星期一到星期天。
【快速返回中文星期数,比如 星期一
=text(weekday(b2,1),“aaaa”)】
14,计算员工年龄 =year(today())-year(c2) c2是其出生日期
返回结果是日期,需要重新设置单元格格式为常规即可返回员工年龄。
Year()函数返回的是某指定日期所对应的年份
计算员工工龄 =year(today())-year(c2) c2是其入公司日期
也需要将单元格格式重新设置为 常规格式。
15,networkdays函数返回指定两个日期直接完整的工作日数值,不包括周末和指定的假期
Networkdays(start_date,end_date,holidays)
Holidays表示不在工作日历中的一个或多个日期所构成的可选区域,法定假日以及其他非法定假日。
比如 计算机2008年5,1到10.1期间的实际工作日。
=networkdays(a2,b2,b5:b7)
其中,b5:b7单元格区域中显示的为除去周六,周日之外还应除去的休息日:5.1,5.2,5.3,3天假期,a2,b2分别为2008-5-1,2008-10-1
16,eomonth函数返回指定日期之前或之后月份中最后一天日期。
Eomonth(start_date,months)
Months表示为开始日期之前或之后的月份数,正数表示未来日期,负数表示过去日期。
16-1,计算指定日期到月底的天数
=eomonth(a2,0)-a2 其中,a2为2008-1-10 结果单元格需重新设置为常规格式显示出天数。
16-2,查看指定年份各月天数
=day(eomonth(date($b$1,a3,1),0))&”天” 其中$b$1为2008
date($b$1,a3,1)表示用date将数值转换为日期
eomonth(date($b$1,a3,1),0)表示返回给定日期中当前月的最后一天的日期
day()返回给定日期的天数。
17,weeknum函数返回指定日期对应一年中的第几周
Weeknum(serial_num,return_type)
Serial_num表示要返回的日期
Return_type表示为确定返回值类型的数字。数字1或省略,则1-7代表星期天到星期六;数字2则1-7表示星期一到星期天。
=“第”&weeknum(a2,2)&“周” 其中a2是具体日期 比如2008-1-10
18,计算连续日期之间天数占全年天数年百分比
Yearfrac函数返回两个日期直接的天数占全年天数的百分比
Yearfrac(start_date,end_date,basis)其中basis表示日计数基准类型。数字0或省略,则表示为us(nasd)30/360;数字1,则表示实际天数/实际天数;数字2,则表示实际天数/360;数字3则表示实际天数/365;数字4则表示欧洲30/360。