春风送暖阳,沉思殄天物。
今天的内容必须轻松,我们就聊聊IF函数与数组的一些不常见但很有用的用法。
有些情况下,需要我们手动完成大批量的订单确认工作,以进行评估。
以下是随机生成的200张订单,涉及8种物料,下单时间随机分布在3月,货期要求随机分布在10~20天之间。
这8颗物料只在每周的周二和周五交货。具体到料计划如下:
如何基于这份到货计划给出200张订单各自的最早发货时间呢?
数组
Excel数组,指的是单行、单列或者多行多列的一组数据。Excel数组,是可以参与运算的。
数值、文本、逻辑值等你能想起来的大多数Excel数据,Excel数组都可以接受。
你在Excel表格中连续选择的数据区域,可以作为数组参与运算。
如果你想在公式中直接表示数组,可以使用{ }。{ }内部,以“,”表示同一行,以“;”表示不同行。示例如下:
这一点与早期Excel版本不同,早期版本不接受手工键入 { } 而是需要使用组合回车键。此外,绝大多数Excel常用函数,现在也都已经完全接受了数组,例如SUMPRODUCT等许多以前专用的数组函数现在也都不需要了。
即便很多人对于数组这个概念不熟悉,但事实上,类似于当前版本Excel的数组形式,早就已经出现在很多标准函数中。例如下面示例的函数SUM,里面使用的连续数据区域A1:D2,其实就是一个数组。
现在的Excel版本,不仅可以接受数组输入,也一样可以将数组直接输出到空白表格区域内。例如我们之前聊过的函数INDEX和OFFSET。
IF函数
相信绝大多人都很熟悉IF函数的以下用法:
如果需要找到一行数据中大于50的最小值,该怎么做呢?以下是通常做法,通过辅助行,先用IF函数修正数据,然后再求最小值:
然而,如果以数组运算的方式处理,则过程将会非常简单,我们完全不需要辅助行。如下:
双击进入函数计算过程,你会发现,对数组进行IF计算时,条件判断过程得到的是一串逻辑值,或者说,逻辑值数组。然后,以这个逻辑值数组对应目标数组(这里与原始数组一样),分别返回原值和FALSE,得到一个数值和逻辑值的混合数组。
事实上,在单元格B2输入这个IF公式,你将得到与前面辅助行一模一样的结果。
应用IF函数的数组功能,实例问题将非常容易解决。
首先,将到料计划整理为累计到料数量。
其次,拟定订单优先级规则(这里我们假定为”按照要求交货时间先后“),并将所有订单按照物料和订单优先级排序。
然后,增加辅助列,按物料分别计算累计订单需求。(在上一步排序的基础上,我们只需要一个简单的IF函数即可,下图中有显示)
最后,利用上面谈及的IF函数数组计算,直接给出公式和计算结果(图中给出了公式的分步解释)。
处理过程和结果,相当简洁,这得益于对于IF函数和数组的使用。其中,也用到了之前曾经聊过的OFFSET函数和MATCH函数(请参加前文 ”数据处理技巧:几个有用的Excel函数“)
为免看不清楚,下图是放大版本的公式分步解释:
这个实例的公式,最大的益处是:当到料计划有调整时,订单确认相关的公式是不需要重新写的。
利用本篇提到的IF函数与数组的使用,我们还可以很轻易的实现VLOOKUP反向查找。示例如下:
使用IF函数,借用数组{1,0},事实上就得到了一个类似于VLOOKUP标准用法的检索区域。(如果乐意,你完全可以把VLOOKUP标准用法中的检索区域理解为一个多列数组)
这里得到的,其实是一个内存数组,B:B列在前,A:A列在后,于是实现了反向查找。
(本文完)
蔚来能源热招供应链质量管理
8306 阅读迪卡侬中国物流部门校招热岗
8146 阅读京东物流社招采购,供应商管理岗,Base北京,河北,河南,重庆等全国多地
6943 阅读农夫山泉23-25届校园招聘供应链类岗位
4459 阅读顺丰社招运营经理;B端销售;仓储管理经理;支付业务负责人;客户管理岗等
4229 阅读益海嘉里(金龙鱼)2025校招供应链、物流储备生
4233 阅读盒马社招运输经理;店仓管理专员;仓储业务物资管理高级专员;店仓经理
3921 阅读华润啤酒2025届校园招聘物流管培生
3844 阅读海能达2025届校园招聘供应链类岗位
3742 阅读曼伦2025校招供应链物流岗位
3613 阅读