Excel中IF函数通关练习题 Excel图文 图文教程 22年11月17日 编辑 前往下载 user2498_100 取消关注 关注 私信 黄色区域需要写公式得出结果。 D1到AA1代表的是1天中的每个整点时间,C列是发料时间,也都是整点。具体拿第2行来说,要求10点发料,所以第二行黄色区域从M列开始填数字,单次发4,M2中就填写4,计划方量是8,两次就能发完,所以只需要填写M2,N2两单元格。再比如第六行,计划方量128,单次量为20,发6次后还剩8,所以I6开始需要填写6个20,O6中要写填写8。 有些同学说遇到IF嵌套公式就搞不清楚了,其实只要认真分析一道题目,理顺思路,IF函数就能学透彻了。 怎么解决上面的问题呢? 在D2单元格中写公式,决定D2中该填写什么数字的要素是什么? 首先思考下黄色区域的单元格中什么时候该填写数字,什么时候不需要填写数字? 只要其对应的时间小于C列中的时间或者该单元格前面已经分配的数量已经把计划方量全部分配完了,那该单元格就不需要填写内容了,直接为空值就行。 所以公式中: =IF(OR(D$1<HOUR($C2),SUM((COLUMN($C$1:C1)>=4)*IF($C2:C2=””,0,$C2:C2))>=$A2),””,MIN($B2,$A2-SUM(((COLUMN($C$1:C1)>=4)*(IF($C2:C2=””,0,$C2:C2)))))) OR函数中的两个条件就对应上面我们说的两种不需要填写内的情况。 否则就需要填写内容了。 填写内容的话要判断是该填写单次量还是剩下的零头量,如果该次分配前剩下的量比单次发量大,那就写单次量,反之就写最后剩下的零头量,所以不管什么情况,我们都是要选择单次量与本次分配前剩余量中的最小值。 所以有了公式的后半段: =IF(OR(D$1<HOUR($C2),SUM((COLUMN($C$1:C1)>=4)*IF($C2:C2=””,0,$C2:C2))>=$A2),””,MIN($B2,$A2-SUM(((COLUMN($C$1:C1)>=4)*(IF($C2:C2=””,0,$C2:C2)))))) 大家可能看着括号很多,有点乱,但其实理清思路就不会很难,不过你要是对常用的函数不了解,可能总的思路有了,中间有些细节还是会卡住,比如本例中,怎么判断该单元格前面已经分配了多少量了呢? 为了避免空值的影响,我把空值全部转为0,然后用sum求和。 =IF(OR(L$1<HOUR($C6),SUM((COLUMN($C$1:K5)>=4)*IF($C6:K6=””,0,$C6:K6))>=$A6),””,MIN($B6,$A6-SUM(((COLUMN($C$1:K5)>=4)*(IF($C6:K6=””,0,$C6:K6)))))) 上面的思路能理解的话,大家还可以反过来写公式,什么情况该填写内容,什么情况为空值,公式如下: =IF(AND(D$1>=HOUR($C2),D$1<HOUR($C2)+INT($A2/$B2)),$B2,IF(AND(MOD($A2,$B2)>0,D$1=HOUR($C2)+INT($A2/$B2)),MOD($A2,$B2),””)) 下载权限查看 ¥ 免费下载 评论并刷新后下载 登录后下载 查看演示 {{attr.name}}: 您当前的等级为 登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付¥以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员 您已获得下载权限 您可以每天下载资源次,今日剩余次 给TA打赏 共{{data.count}}人 人已打赏