罗戈网
搜  索
登陆成功

登陆成功

积分  

数据处理技巧:IF函数的不常见用法

[罗戈导读]聊聊IF函数与数组的一些不常见但很有用的用法。

春风送暖阳,沉思殄天物。

今天的内容必须轻松,我们就聊聊IF函数与数组的一些不常见但很有用的用法。

实例:批量完成订单确认

有些情况下,需要我们手动完成大批量的订单确认工作,以进行评估。

以下是随机生成的200张订单,涉及8种物料,下单时间随机分布在3月,货期要求随机分布在10~20天之间。

这8颗物料只在每周的周二和周五交货。具体到料计划如下:

如何基于这份到货计划给出200张订单各自的最早发货时间呢?

Excel数组和IF函数

数组

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函数与数组的使用,我们还可以很轻易的实现VLOOKUP反向查找。示例如下:

使用IF函数,借用数组{1,0},事实上就得到了一个类似于VLOOKUP标准用法的检索区域。(如果乐意,你完全可以把VLOOKUP标准用法中的检索区域理解为一个多列数组)

这里得到的,其实是一个内存数组,B:B列在前,A:A列在后,于是实现了反向查找。

(本文完)

免责声明:罗戈网对转载、分享、陈述、观点、图片、视频保持中立,目的仅在于传递更多信息,版权归原作者。如无意中侵犯了您的版权,请第一时间联系,核实后,我们将立即更正或删除有关内容,谢谢!
上一篇:数据处理技巧:几个有用的Excel函数
下一篇:物流订单模块设计
罗戈订阅
周报
1元 2元 5元 10元

感谢您的打赏

登录后才能发表评论

登录

相关文章

2024-12-25
2024-12-24
2024-12-23
2024-12-23
2024-12-21
2024-12-21
活动/直播 更多

仓库管理实战力最全超值线上课程

  • 时间:2024-09-01 ~ 2025-04-25
  • 主办方:叶剑
  • 协办方:罗戈知识

¥:1500.0元起

报告 更多

2024年11月物流行业月报-个人版

  • 作者:罗戈研究

¥:9.9元