比Vlookup更实用!任职名企的大神们都在用这个公式做数据的快速查询……
每天一点小技能
职场打怪不得怂
编按:说到数据的多条件查询,我们更多地想到的是Vlookup函数的应用。可是,在名企任职的大神们不会固守这一观点,他们会用更多维引用的思路,选择当下更实用的查询公式,去轻松实现数据的自动提醒和动态查询!例如,在快速查询待补货的店铺和补货数量时,大神们都会这样做……
正文:
小伙伴们,大家好!今天继续向大家介绍一个多维引用的实例,希望大家可以尽快掌握这个技巧。
下面是国际著名公司麦必德某大区的门店配送中心的库存报表。
该图显示了每天门店的库存情况(空白则表示该门店没有此款产品)。物流人员会根据每天各门店的库存来安排实物配送。安排配送的条件如下:
1.以“包装数量”为参照标准,将“配送中心”库存的商品自动分配到现库存数小于“包装数量”标准的门店。
2.库存小于等于1/2个“包装数量”的标准时,配送2个的标准“包装数量”的量;库存大于1/2个“包装数量”的标准,同时又小于1个“包装数量”的标准时,配送1个标准“包装数量”的量。
3.颜色标记需要配货的门店。
根据上述条件,大神们用多维引用思路,做出以下步骤:
1
标记颜色
这个非常简单,用条件格式就可以完成。在条件格式中输入公式“=(E7<$c7:$c10)*(e7<>"")”,这里不再赘述了,最后效果如下。
2
提取门店清单
首先使用“数据验证”功能在单元格A13中创建商品代码的下拉清单。
然后在单元格B13中输入公式“=IFERROR(INDEX($E$6:$N$6,SMALL(IF(($A$7:$A$10=$A$13)*($E$7:$N$10<$c$7:$c$10)*($e$7:$n$10<>""),COLUMN($E$7:$N$10)-4),ROW(A1))),"")”,按三键“Ctrl+shift+回车”并向下拖曳。
本质上讲,这也是一个一对多的查询应用。
函数解析:
1.IF(($A$7:$A$10=$A$13)*($E$7:$N$10<$c$7:$c$10)*($e$7:$n$10<>""),COLUMN($E$7:$N$10)-4)部分,对于同时满足条件的单元格(对应的商品代码、小于包装数量和非空值)则返回它们所对应的列号。
2.利用SMALL函数依次提取上面的列号。
3.利用INDEX函数返回对应的门店名称。
3
计算配送数量
在单元格C13中输入公式“=IFERROR(IF(N(INDIRECT(TEXT(RIGHT(SMALL(IF(($E$7:$N$10<>"")*($A$7:$A$10=$A$13)*($E$7:$N$10<$c$7:$c$10),row($e$7:$n$10)>INDEX($C$7:$C$10,MATCH($A$13,$A$7:$A$10,))/2,INDEX($C$7:$C$10,MATCH($A$13,$A$7:$A$10,)),INDEX($C$7:$C$10,MATCH($A$13,$A$7:$A$10,))*2),"")”,按三键“Ctrl+shift+回车”并向下拖曳即可。
计算时,大家也可以使用更简单的INDEX+MATCH组合来完成。这里向小伙伴们介绍的多维引用的思路和技巧,虽然公式看起来比较长,但其中的逻辑思路是比较简单的,掌握以后将来能更容易地处理各种不同的问题。
函数解析:
1.IF(($E$7:$N$10<>"")*($A$7:$A$10=$A$13)*($E$7:$N$10<$C$7:$C$10),ROW($E$7:$N$10)/1%+COLUMN(E:N)*10001)部分,对于那些满足条件的单元格(对应的商品代码、小于包装数量和非空值),将它们对应的行号扩大100倍,列号扩大10001倍,并将这两部分相加。其结果为{FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;51005,FALSE,FALSE,81008,FALSE,FALSE,111011,FALSE,FALSE,FALSE}。
2.SMALL(IF())部分利用SMALL函数特性可依次从小到大提取上面的数值。
3.利用RIGHT函数提取4位字符。请注意,这里是关键的一步。上面的步骤中已经将对应数据的行号扩大了100倍,列号扩大了10001倍。所以,在两个数据相加后,从右侧开始第1位和第2位是列信息,第3位和第4位是行信息。用RIGHT函数即可提取到行列号的信息。其结果为{"1005"},表示第10行第5列。
4.用TEXT函数将其转换为R1C1的格式,返回值为{"r10c05"}。
5.用INDIRECT函数提取目标值,即为{75}。
6.接下来还要做一个判断,即根据补货规则做一个判断。INDEX($C$7:$C$10,MATCH($A$13,$A$7:$A$10,))/2部分为当前物料的1/2包装数量,满足条件,则补货一个整包数量INDEX($C$7:$C$10,MATCH($A$13,$A$7:$A$10,));不满足条件则补货2个整包数量。
7.下面另外一个重点内容:运用的多维方法中,INDIRECT函数的结果是不能直接和INDEX($C$7:$C$10,MATCH($A$13,$A$7:$A$10,))/2来做比较的。在比较前,大家还需要用N函数来降维处理后才能比较。
这样,所有的公式都已经输入完毕了。录入不同的商品代码后,一方面,EXCEL会用颜色标识出需要补货的门店信息,另一方面,它也列出了具体的清单。今天的分享就是这些。
多维引用的公式看似复杂,其实是很简单的思路应用。
学习过程中,可能不会一帆风顺,但是多多练习掌握以后,小伙伴们在未来即使面对不同的问题,也可以轻松应对。
所以还是那句话,多多练习才是快速掌握公式的捷径哦~
在线咨询Excel课程
Excel教程相关推荐
95后小姐姐,不打开工作簿却10秒完成1000行数据汇总,用的技巧竟是…
连LOOKUP都用上了!一个四舍五入问题的9种解法,可太秀了……
主讲老师: 滴答
Excel技术大神,资深培训师;
课程粉丝100万+;
开发有《Excel小白脱白系列课》
《Excel极速贯通班》。
原价299元
限时特价 99 元
少喝两杯咖啡,少吃两袋零食
就能习得受用一生的Excel职场技能!