有多个匹配结果(匹配出多个值)

小编:饿狼 更新时间:2022-08-29

这个求助问题还是有点难度的,不仅是多条件查找,匹配结果还是是一对多的,还需再次按条件筛选。


话不多说,直接看案例。


案例 :


下图 1 中的左边数据表是每个销售人员所有产品的流水账,每人每天晚上会盘点库存后填入总表,不论顺序先后。


因为是流水账,所以只有看最新日期的库存才有意义。


右边数据表的“姓名”和“产品”是下拉菜单,需要根据这两个选项,自动匹配出最新的日期,以及该日期对应的库存。


效果如下图 2 所示。

有多个匹配结果(匹配出多个值)有多个匹配结果(匹配出多个值)


解决方案:


先制作下拉菜单。


1. 将数据表中的姓名和产品项复制粘贴到空白的区域,选中 K 列 --> 选择菜单栏的“数据”-->“删除重复项”

有多个匹配结果(匹配出多个值)


2. 在弹出的对话框中选择“以当前选定区域排序”--> 点击“删除重复项”

有多个匹配结果(匹配出多个值)


3. 点击“确定”

有多个匹配结果(匹配出多个值)


4. 用同样的方式给 L 列也删除重复项。

有多个匹配结果(匹配出多个值)


5. 选中 F2 单元格 --> 选择菜单栏的“数据”-->“数据验证”-->“数据验证”

有多个匹配结果(匹配出多个值)


6. 在弹出的对话框中选择“设置”选项卡 --> 按以下方式设置 --> 点击“确定”:

  • 允许:选择“序列”
  • 来源:选择 K1:K3 区域
有多个匹配结果(匹配出多个值)


姓名下拉菜单就制作好了。

有多个匹配结果(匹配出多个值)


重复同样的步骤制作产品下拉菜单。

有多个匹配结果(匹配出多个值)


接下来开始设置公式。


7. 在 H2 单元格中输入以下公式 --> 按 Ctrl+Shift+Enter 回车:

=MAX(IF((A2:A25=F2)*(B2:B25=G2),C2:C25))


公式释义:

  • IF((A2:A25=F2)*(B2:B25=G2):如果“姓名”和“产品”两个项同时与查找区域相匹配
  • MAX(...,C2:C25)):那么查找 C 列结果中的最大值,即最晚日期
  • 数组公式,用三键结束
有多个匹配结果(匹配出多个值)


从下图的结果可以看出,同样的姓名和产品共有两条记录,H2 单元格找出的是最近的日期。

有多个匹配结果(匹配出多个值)


现在根据 F 至 H 三列,匹配出库存数。


8. 在 I2 单元格中输入以下公式 --> 按 Ctrl+Shift+Enter 回车:

=VLOOKUP(F2&G2&H2,IF({1,0},A:A&B:B&C:C,D:D),2,0)


公式释义:

  • F2&G2&H2:用 & 符号将三个单元格的值合并成一项
  • IF({1,0},A:A&B:B&C:C,D:D):将逻辑值 {1,0} 作为一组数组参与运算,从而扩充另一组数组 A:A&B:B&C:C,D:D,得到的结果为 {"赵铁锤芒果5月2日",26;"王钢蛋火龙果4月30日 ","146";...}
  • vlookup(...,...,2,0):用 vlookup 函数在上述数组中查找合并单元格的内容,返回 D 列的值
  • 数组公式,用三键结束


有关 vlookup 多条件查找的用法,请参阅

有多个匹配结果(匹配出多个值)


从下图的结果可以看出,查找结果完全正确。

有多个匹配结果(匹配出多个值)

很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

头条423活动期间限时特价。