excelexcel if 多条件件判断

EXCEL多条件日期判断计算
&&&&帮一客户做个EXCEL多条件判断计算,如下:希望设置完公式以后,能自动根据入职日期和离职日期计算出来每个季度在职天数,折腾半天总算搞定:
用到的函数有:
if(条件,true时返回值,false时返回值),
and(条件1,条件2,……)
datedif(日期,日期,"d")
整体函数形式为:if(and(条件1,条件2,……),datedif(),0)
考虑到入职日期、离职日期跟季度开始终止日期的关系分如下情况:
第一种情况:if(and(a6&="",b6&=""),datedif("","","d"),第二种情况)
第二种情况:if(and(a6&="",b6&=""),datedif("",b6,"d"),第三种情况)
第三种情况:if(and(a6&="",a6&="",b6&=""),datedif(a6,"","d"),第四种情况)
第四种情况:if(and(a6&="",a6&="",b6&=""),datedif(a6,b6,"d"),0)
=if(and(a6-""&=0,b6-""&=0),datedif("","","d"),if(and(a6-""&=0,b6-""&=0),datedif("",b6,"d"),if(and(a6-""&=0,a6-""&=0,b6-""&=0),datedif(a6,"","d"),if(and(a6-""&=0,a6-""&=0,b6-""&=0),datedif(a6,b6,"d"),0))))
但发现有时候会出错:
所以又加了一个IFERROR()函数屏蔽下:
=IFERROR(IF(AND(A3-""&=0,B3-""&=0),DATEDIF("","","d"),IF(AND(A3-""&=0,B3-""&=0),DATEDIF("",B3,"d"),IF(AND(A3-""&=0,A3-""&=0,B3-""&=0),DATEDIF(A3,"","d"),IF(AND(A3-""&=0,A3-""&=0,B3-""&=0),DATEDIF(A3,B3,"d"),0)))),0)
其他季度跟上面类似,只是季度开始终止日期不同而已:
第二季度:
=IFERROR(IF(AND(A4-""&=0,B4-""&=0),DATEDIF("","","d"),IF(AND(A4-""&=0,B4-""&=0),DATEDIF("",B4,"d"),IF(AND(A4-""&=0,A4-""&=0,B4-""&=0),DATEDIF(A4,"","d"),IF(AND(A4-""&=0,A4-""&=0,B4-""&=0),DATEDIF(A4,B4,"d"),0)))),0)
第三季度:
=IFERROR(IF(AND(A4-""&=0,B4-""&=0),DATEDIF("","","d"),IF(AND(A4-""&=0,B4-""&=0),DATEDIF("",B4,"d"),IF(AND(A4-""&=0,A4-""&=0,B4-""&=0),DATEDIF(A4,"","d"),IF(AND(A4-""&=0,A4-""&=0,B4-""&=0),DATEDIF(A4,B4,"d"),0)))),0)
第四季度:
=IFERROR(IF(AND(A4-""&=0,B4-""&=0),DATEDIF("","","d"),IF(AND(A4-""&=0,B4-""&=0),DATEDIF("",B4,"d"),IF(AND(A4-""&=0,A4-""&=0,B4-""&=0),DATEDIF(A4,"","d"),IF(AND(A4-""&=0,A4-""&=0,B4-""&=0),DATEDIF(A4,B4,"d"),0)))),0)
&当然可以用
返回两个日期间的全部工作日数。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Excel 2007轻松进行多条件求和
09:22:07 来源:  
如果您也象我一样,要经常面对Excel表格中的数据做这样那样的分析,那么,您也一定会遇到这样的情形:一份数据众多的工作表,我们要对同时符合若干条件的数据进行求和。如图1所示的成绩表。我们想统计5班中语文名次、数学名次均位于前20名同学的总分之和。那该如何去做呢?
也许您想到了Excel自带的SUMIF函数。不错,这个函数确实可以求符合某一条件的数据之和,但它只能求符合一个条件的,象这样的多条件的求和问题,该函数就无能为力了。但是,方法并不是没有。无论您是Excel的菜鸟级别还是老鸟级别,我们都可以较为轻松地解决这个问题的。所有操作均在Excel 2007中完成,方法如下:
一、反复筛选法
Excel中通过筛选是可以把符合条件的数据单独显示出来的。先点击功能区“数据”选项卡中的“筛选”按钮,那么标题栏每一单元格均添加下拉按钮。点击“班级”(A1)单元格下拉按钮,在弹出的菜单下方取消选择“全选”复选项,然后再选中“5班”复选项。如图2所示。确定后显示出来的就只有5班学生的成绩了。
再点击D1单元格下拉按钮,在弹出菜单中选择“数字筛选→小于或等于”命令,如图3所示,打开“自定义自动筛选方式”对话框,在“小于或等于”后的输入框中输入数字“20”,如图4所示。确定后,显示出来的就是5班中语文名次小于等于20的所有学生了。
用同样的方法再筛选显示数学名次小于等于20的学生,那么在屏幕中显示的就是我们所需要的学生了。选中显示出来的学生的总分及下方的一个空单元格(放置求和结果),再点击功能区“公式”选项卡中的“自动求和”按钮右侧的小三角,在弹出的菜单中点击“求和”命令,就可以把他们的总分加起来了,如图5所示。
本文来源:it168
网易学院五一黄金周专题
·景点查询篇
我来评两句
网易通行证:
网易科技今日推荐
今日网易科技看点
网易学院目录树
(评29932条)
(评1677条)
(评1354条)
(评1309条)
网易公司版权所有EXCEL-VBA 之 1-1 判断语句IF & IF多条件判断-CPY
判断语句之 IF 条件判断
'VBA中的IF条件判断语句,就像函数中的IF一样
'IF可单条件,也可多条件。
判断两数相等
Sub IF条件判断之单条件1()
Dim a%, b%
If a = b Then MsgBox &相等&
Sub IF条件判断之单条件2()
Dim a%, b%
&&& If a = b Then
&&&&&&& MsgBox &相等&
&&& End If
Sub IF条件判断之单条件3()
Dim a%, b%
&&& If a = b Then
&&&&&&& MsgBox &相等&
&&&&&&& MsgBox &不相等&
&&& End If
实现功能如图
插件按钮为&开发工具-插入-按钮&(并为其指定宏为“IF条件判断之多条件等级划分”)
按钮代码:
Sub IF条件判断之多条件等级划分()
&&& If Sheet1.Range(&b1&)&&= 90 Then
&&&&&&& Sheet1.Range(&b2&)&=&&优秀&
&&& ElseIf Sheet1.Range(&b1&)&&= 80 Then
&&&&&&& Sheet1.Range(&b2&)&=&&良好&
&&& ElseIf Sheet1.Range(&b1&)&&= 70 Then
&&&&&&& Sheet1.Range(&b2&)&=&&中等&
&&&&&&& Sheet1.Range(&b2&)&=&&较差&
&&& End If
'VBA中的IIF函数与工作表函数(IF)的语法结一致
Sub IIF函数应用()
Cells(2, 3)&= IIf(Cells(1, 2)&& 80,&&优秀&,&&不优秀&)
本章语法请各位查阅帮助文件
1.单行形式1(If...Then)
If条件判断then&条件成立结果
&注意&在单行形式中,按照If...Then 判断的结果也可以执行多条语句。所有语句必须在同一行上并且以冒号分开。
Sub test()
If A & 10 Then A = A + 1 : B = B+ A : C = C + B
2.&单行形式1(If条件判断 Then 条件成立 Else 条件不成立)
Sub test()
If 2 & 1 Then MsgBox&yes& Else MsgBox &no&
3.块形式(If...Then…End)
If&条件判断&Then&
条件成立结果
If A & 10 Then
4.块形式的嵌套
If条件判断&Then条件成立时的结果
ElseIf条件判断 Then条件成立时的结果
Else条件不成立时的结果
Sub 等级判断()
&&& IfSheet1.Range(&b1&)&&= 90 Then
&&&&&& Sheet1.Range(&b2&)&=&&优&
&&& ElseIfSheet1.Range(&b1&)&&= 80 Then
&&&&&& Sheet1.Range(&b2&)&=&&良&
&&& ElseIfSheet1.Range(&b1&)&&= 70 Then
&&&&&& Sheet1.Range(&b2&)&=&&中&
&&&&&& Sheet1.Range(&b2&)&=&&差&
&&& End If

我要回帖

更多关于 excel if 多条件 的文章

 

随机推荐