王剑编程网

分享专业编程知识与实战技巧

Excel 跨多个工作表匹配查找,xlookup 束手无措,这个公式牛了

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

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

按条件查找公式,常用的是 vlookup、xlookup 或 index+match,但是这些公式的查找区域基本都是在同一个工作表中。


如果查找区域分别在不同的工作表中呢?难度一下子就飙升了。这种情况下就可以用今天的这个公式,轻松搞定跨工作表查找。


案例:


下图 1 至 3 是员工 1 至 3 月的业绩,要求在图 4 的查询表中根据姓名和月份查找出对应的业绩。


效果如下图 5 所示。


解决方案:


先设置下拉菜单。


1. 选中 A2 单元格 --> 选择工具栏的“数据”-->“数据验证”


2. 在弹出的对话框中选择“设置”选项卡 --> 在“允许”区域中选择“序列”--> 选择姓名区域作为“来源”--> 点击“确定”


3. 选中 B2 单元格 --> 选择“数据”-->“数据验证”


4. 在弹出的对话框中与步骤 2 一样设置,在“来源”区域中输入“1月,2月,3月”--> 点击“确定”


接下来就是查询公式了。


5. 在 C2 单元格中输入以下公式:

=FILTER(VSTACK('1月:3月'!C2:C10),(VSTACK('1月:3月'!A2:A10)=查询!A2)*(VSTACK('1月:3月'!B2:B10)=查询!B2))


公式释义:

  • filter 的作用是基于定义的条件筛选一系列数据;语法为 FILTER(要筛选的区域,布尔值数组,[为空时返回的值]);
  • VSTACK('1月:3月'!C2:C10):这段公式是 filter 函数的筛选区域,结果为“1月”至“3月”工作表的 C2:C10 区域的合集;vstack 函数的作用是按顺序垂直追加数组;
  • (VSTACK('1月:3月'!A2:A10)=查询!A2)*(VSTACK('1月:3月'!B2:B10)=查询!B2):
    • 这段看着挺长,其实很简单,整个公式是 filter 函数的筛选条件;
    • 中间用“*”将两个 vstack 函数连接起来,表示 and,即两个条件都要满足;
    • VSTACK('1月:3月'!A2:A10)=查询!A2:第一个条件,将“1月”至“3月”工作表中的 A2:A10 区域连接后,判断每个单元格是否与“查询”工作表中的 A2 单元格相等;
    • VSTACK('1月:3月'!B2:B10)=查询!B2:同理,将 3 个月份的 B2:B10 区域连接,判断其中的每个单元格是否等于“查询”工作表中的 B2 单元格;
    • filter 函数会从合并区域中查找出同时满足上述两个条件的单元格


如果 A、B 列的条件换了,C 列的公式仍然会查找出正确的结果。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言