大家好,我是在搞各种 Excel 「干货」的小爽~在生产企划中,企业为了生产出符合市场需要或顾客要求的产品,需要提前确定在什么时候进行生产,在哪个车间进行生产,产量多少以及如何生产的问题。他有一个产能为 5000 的订单,预计每个班次可以做 100 个产能,其中:
❸ 周一到周六,每天为 2 个班次,也就是 200 个产能
求完成 5000 个产能的订单,所需要的周期对应的结束日期。下面我们就用方程思维——单变量求解来解决这个问题。
总产能 = 周一到周六的天数*100(产能/班次)*2 + 周日的天数*100(产能/班次)*0.5
已知订单的总产能数为 5000,现在我们只要求出下面两部分对应的天数,方程也就对应的列出来了。
直接写出公式有点难,不过我们可以假设一下结束日期为 3 月 1 日,来倒推一下最终的方程。其实我们可以借助 NETWORKDAYS.INTL 函数求得工作日(周一到周六)的天数,也就是对应的休息日为周日,以上图为例,输入公式:
=NETWORKDAYS.INTL(A2,B2,11)
=NETWORKDAYS.INTL(A2,B2,'0000001')
求出开始日期和结束日期之间周一到周六的天数后,接下来我们就要求周日的天数。这里我们也可以用 NETWORKDAYS.INTL 函数计算周日(工作日)的天数,则对应的周一到周六为休息日,输入公式为:
=NETWORKDAYS.INTL(A2,B2,'1111110')
简单解释一下 NETWORKDAYS.INTL 函数:NETWORKDAYS.INTL 函数是 Excel 2010 新出的函数,它比 NETWORKDAYS 函数多了一个 Weekend 参数,用来指定周末日的周末数字或字符串。
=NETWORKDAYS.INTL(start_date,end_date,[weekend],[holidays])
=NETWORKDAY.INTL(开始日期,结束日期,[休息日参数],[需要排除的节假日日期])
周末字符串值的长度为七个字符,并且字符串中的每个字符表示一周中的一天(从星期一开始)。1 表示非工作日,0 表示工作日。在字符串中仅允许使用字符 1 和 0。使用 1111111 将始终返回 0。例如,0000011 结果为星期六和星期日是周末日(休息日)。
=NETWORKDAYS.INTL(A2,B2,11)
=NETWORKDAYS.INTL(A2,B2,'0000001')
❶ 周一到周六,每天的班次为 2,每班次的产能为 100,那么也就是对应的产能数为,天数*200;
❷ 周日,每天的班次为 0.5,那么也就是对应的产能数为,天数*50。
总产能 = 周一到周六的天数*200 + 周日的天数*50
=NETWORKDAYS.INTL(A2,B2,11)*200+NETWORKDAYS.INTL(A2,B2,'1111110')*50
总产能=NETWORKDAYS.INTL(开始日期,结束日期,11)*200+NETWORKDAYS.INTL(开始日期,结束日期,'1111110')*50
我们已知的条件有,订单产能数为 5000,开始日期为 1 月 15 日,结束日期未知(未知数设为 x)。5000=NETWORKDAYS.INTL('1-15',x,11)*200+NETWORKDAYS.INTL('1-15',x,'1111110')*50
这里就需要用到,【数据】选项卡下的【模拟数据】-【单变量求解】了。它通常是被用来进行「逆向模拟分析」的,通俗一点理解就是,求解「单变量方程」的问题——解方程。比如:求 y=2a+1,已知 y 的值 11,现在要求 a 的值。我们先将 A2 的单元格的名称设置为 a,B2 为=2a+1。接下来,我们继续来看看前面案例问题的具体操作!开始解方程!选择 B2 单元格,在名称框输入 x,按【Enter】键,这时候就将结束日期的单元格自定义名称为 x 了。=NETWORKDAYS.INTL('1-15',x,11)*200+NETWORKDAYS.INTL('1-15',x,'1111110')*50
选择 B5 单元格-选择【数据】选项卡-【模拟分析】-【单变量求解】。
点击【确定】按钮后,等待片刻,最后得出计算结果,当 x 的值为 2 月 11 日时(即结束日期为 2 月 11 日),产能为 5000。当然方法并不只有我这一种,也可以直接利用 VBA 或者 PQ 做循环累加,只不过我觉得列方程,解方程的思维是比较直接!本文介绍了如何利用【单变量求解】,去解决企划中常见的、计算结束日期的问题,整体思路也比较直接,就是根据思路列方程、解方程的过程。其中涉及到一个 NETWORKDAYS.INTL 函数:❷ 周末字符串值的长度为七个字符,并且字符串中的每个字符表示一周中的一天(从星期一开始)。1 表示非工作日,0 表示工作日。在字符串中仅允许使用字符 1 和 0。关于 NETWORKDAYS.INTL 函数的介绍可以戳:数学中的解方程问题,在 Excel 就是这样做!你 Get 到了嘛!欢迎在留言区中与我交流哦~问问大家:你是否在上学的时候,曾被各种各样的解方程问题折磨过?比如很经典的鸡兔同笼问题👀。
为感谢同学们对秋叶 Excel 的陪伴和支持,我们决定建立秋叶 Excel 读者群,欢迎大家扫描下方二维码加入哦~群内不仅能互相交流学习 Excel,还会掉落各种学习资源,助力大家提升办公效率~