学习Excel技术,关注微信公众号:
excelperfect
导言:这是在Chandoo.org论坛上看到的一个贴子,我觉得很有实用性,特进行整理并在这里分享给大家参考。
如下图1所示,在“源数据”工作表中列出了完成某项目需要依次做的工作任务以及每项任务所需要的时间。示例中的项目需要依次执行任务A、任务B、任务C、任务D。
图1
现在,如果每天的工作时间按24小时安排,要排出完成这个项目每天所需完成的任务及相应的时间,如下图2所示的“时间安排”工作表。例如,该项目完成任务A需要40小时,那么第1天占用了全部的24小时,还剩余16小时(40-24=16)在第2天执行,这样第2天还多8个小时(24-16=8)安排执行任务B,…依此类推。
图2
定义名称:MaxHrsPerDay
引用位置:=24
在“时间安排”工作表的单元格B2中输入公式:
=MIN((源数据!$B2-SUM($A2:A2)), (MaxHrsPerDay-SUM(B$1:B1)))
向下拖至单元格B5,向右拖至单元格E5。
公式分析
公式中:
SUM($A2:A2)
计算已分配给任务A的工作时间。此时,则于A2中是文件,SUM函数忽略文本值,因此返回0。如果在单元格C2中,则该式变为:SUM($A2:B2)。
这样,公式中的:
源数据!$B2-SUM($A2:A2)
计算已分配给任务A工作时间后还剩余的时间,此时为40-0=40。
同样,公式中的:
SUM(B$1:B1)
第1天所分配的工作时间之和,此时为0。
这样,公式中的:
MaxHrsPerDay-SUM(B$1:B1)
计算第1天还剩余的小时数。对于单元格B2来说,为24-0=24。
也就是说,在单元格B2中的公式代入中间数值后为:
=MIN(40, 24)
结果为:
24
可以试着分析其他单元格中的公式产生结果的过程,来加深对公式的理解。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。