仓库货品仓位查询在Excel中的实现(多条件查询)
用数组函数查找对应货号和尺码在仓库哪个位置,方便找货。
一般情况下会有同一货号同一尺码在不同仓位的现象(也许仓库一个仓位放不下那么多),用Vlookup等函数只可实现单一查询,不能对重复记录进行查询。参考了一些论坛资料,进行改动后,用该系列数组函数可避免这种缺陷。
界面分为三部分,如下图:
1.最左边为原始数据。
2.中间为两个条件查询,需同时输入货号和尺码,可显示该尺码所在的仓位。
3.右边的只输入货号,即可显示该货号的所有尺码的所有仓位。
二、函数说明
1.对于中间需同时输入货号和尺码的界面,I2单元格输入
=INDEX(D:D,SMALL(IF(($A$2:$A$65536=$F$2)*($B$2:$B$65536=$G$2),ROW($A$2:$A$65536),65536),ROW(1:1)))&""
按住ctrl+shift+enter生成数组函数,然后将I列全部填充为该数组函数。
Index函数实现主体功能。
Small函数实现从前往后排列所有需求内容,If语句对同时满足货号和尺码的行数进行定位。
2.对于只需要输入货号的界面,以N3单元格为例,输入以下函数
=IF($L3=$L2,INDEX(D:D,SMALL(IF(($A$2:$A$65536=$K$2)
($B$2:$B$65536=$L3),ROW($A$2:$A$65536),65536),COUNTIF($L$2:$L3,$L3)))&"",INDEX(D:D,SMALL(IF(($A$2:$A$65536=$K$2)
($B$2:$B$65536=$L3),ROW($A$2:$A$65536),65536),1))&"")
同样按住三键形成数组函数。
最外层的IF语句防止出现一个尺码在不同货位的情况(此处需要对原始数据按照尺码字段排序)
Index实现主体查询
Countif对如有重复尺码的行数进行定位