ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2318|回复: 2

[原创] 【辅助列解决实际问题_系列6】多条件查找

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-9-2 15:34 | 显示全部楼层 |阅读模式
本帖最后由 cleverzhzhf 于 2014-9-2 17:03 编辑

单条件查找,可以说是简单不过了。
函数神器Vlookup或者是经典组合Index+Match都能够很好的解决。
可是,如果需要满足的条件不只一个,而是需要同时满足多个条件呢?
转换下思路,让我们一起来看看连接符“&”的精彩工作:

三国公司年度考核,也增加了语数外的基础考试。董事长罗贯中需要查看一下每个人的成绩情况:
  1. G4:=B4&"|"&C4&"|"&D4
  2. M4:=INDEX(F:F,MATCH(I4&"|"&J4&"|"&K4,G:G,))
复制代码
多条件查找.png
多条件查找.zip (10.61 KB, 下载次数: 306)




附注:
这里可以很容易的把两个公式合并在一起,如果数据量大,在速度上可能会有降低。当数据扩展的时候,可能还需要手动修改公式中的数据引用区域。
一个公式完成,M4数组公式:
  1. =INDEX($F$4:$F$27,MATCH(I4&"|"&J4&"|"&K4,$B$4:$B$27&"|"&$C$4:$C$27&"|"&$D$4:$D$27,))
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-2 15:34 | 显示全部楼层
本帖最后由 cleverzhzhf 于 2014-9-2 15:53 编辑

第一步:
=B4&"|"&C4&"|"&D4
从公式上看太简单不过了。
原理:每一个值都可能重复,但是把三个值合并在一起,就不会再有重复的了
连接符中间加一个"|",是为了避免前后有相似数据,造成误伤,比如:相邻两格是“中国”、“人”,另外有两个是“中”、“国人”,不加"|",连在一起就都是“中国人”了

第二步:
=INDEX(F:F,MATCH(I4&"|"&J4&"|"&K4,G:G,))
这就是一个基本的查询功能,将多条件查找转化成了单条件查找

附记:
以上方法是通用的,但是如果查找的目标值是数字的话,而且是唯一值:
Sumifs函数也是相当不错的选择

  1. =SUMIFS(E:E,B:B,I4,C:C,J4,D:D,K4)
复制代码
具体用法可以参考知识树投稿区函数Sumifs基础使用

也可以使用Sumproduct

  1. =SUMPRODUCT(($B$4:$B$27=I4)*($C$4:$C$27=J4)*($D$4:$D$27=K4)*$E$4:$E$27)
复制代码
不过,就像之前所说,这里面需要确定一个合适的数据区域,而且使用了数组公式的原理,当数据量较大时候,运算速度较慢。

TA的精华主题

TA的得分主题

发表于 2014-9-2 22:59 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 15:32 , Processed in 0.028092 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表