多条件唯一值的查找,是很多时候进行查找的时候会遇到的问题之一,
对于双条件或者三条件唯一值的查找做个系统整理,遇到类似的问题的时候顺利的解决.
什么叫做多条件唯一值的查找,举个例子:
下面这个表格,产品和型号对应到单价.
假使你查找单纯的"冰红茶",用VLOOKUP去找,当然只能够找到这个表格中第一次出现冰红茶对应到的单价,
对于这种类型通常会使用到以下的方法:
1.切片器筛选进行查找观看
2.SUMIFS函数
3.DSUM函数,DGET函数
4.INDEX+MATCH数组
1.切片器筛选
使用切片器进行筛选,
将原始表格变成超级表,然后选择透视表插入切片器,
就可以达到下面的效果.
这种方法属于一种逻辑筛选,没有办法进行函数调取,
无法参与到表格的计算,仅仅是通过这种方式去进行内容的查看.
2.SUMIFS函数
如下面左侧表格是型号产品的销量,现在需要算出每个产品的总价,
总价=零售价*数量
那么也就需要知道零售价格.
多个条件锁定到唯一值,所以可以使用SUMIFS函数,
先算出单价:
=SUMIFS($H$2:$H$17,$F$2:$F$17,A2,$G$2:$G$17,B2)
因为满足2个条件的求和值,其实是一个唯一值,
所以所谓的求和,其实也变成了查找.
最后再用单价去乘以数量。
3.SUMIFS对比数据库函数
通过产品/型号/区域来查找唯一值:
SUMIFS逻辑和之前一样:
除了用SUMIFS函数,你还可以用到DSUM函数,
这个函数属于数据库函数,也可以找到同样的结果:
这个公式的结构是:
DSUM(表格范围,求和字段,条件区域)
表格范围为:下面右侧整个表格
求和字段:零售价
条件区域:右侧条件表格.
这个函数和高级筛选一样的用法.
结果如下所示:
需要特别注意的是,条件表的表头和原始表格表头必须完全一样.
之前是查找零售价,如果现在我们需要根据:
产品/型号/区域
来查找供货仓库,SUMIFS函数就不行了
因为仓库是文本而不是数值,SUMIFS没有办法处理文本.
DGET函数用法和DSUM一模一样,
DGET可以处理问题也可以处理数值,所以你可以用DGET来通过多个条件来进行文本或者数值的查找.
这个位置的机制就发生变化了,求和和查找是有区别的:
4.INDEX+MATCH数组
DGET函数的毛病和DSUM一样,基本没有办法在大面积查找或者计算表格中进行使用,
如下面这个表格,需要根据左侧的表格完成右侧的查找/计算.
使用INDEX+MATCH数组形态,才是最优的选择:
=INDEX($D$2:$D$19,MATCH(G2&H2&I2,$A$2:$A$19&$B$2:$B$19&$C$2:$C$19,0))
这个公式属于一个固定用法.
=INDEX(输出结果范围,
MATCH(条件1&条件2&条件3,
条件1区域&条件2区域&条件3区域,
0))
总价计算:
SUMIFS也可以INDEX+MATCH数组也可以.
图例下载:多条件唯一.xlsx