今天我们来学习一个高级的数据处理技巧,那就是如何跨多个工作表使用FILTER和VSTACK函数来合并并筛选特定条件下的数据。

如果我们有三个工作表,分别记录了1月、2月和3月的销售数据,每个工作表都有一个名为“产品”的列。我们的目标是创建一个动态的数据筛选系统,能够基于在下拉菜单中选择的特定产品(比如“打印机”),从所有这些工作表中提取出相关信息。

如下图的动态效果:

excel中使用FILTER+VSTACK跨表合并并筛选特定条件下的数据-趣帮office教程网

excel中使用FILTER+VSTACK跨表合并并筛选特定条件下的数据-趣帮office教程网

首先,让我们来了解一下FILTER函数的基本用法。FILTER函数允许我们根据指定的条件来筛选数据。

它的基本格式是:FILTER(要筛选的数据区域, 筛选条件)。

第一步:确定FILTER的第一个参数:用VSTACK函数来合并数据

首先,我们需要将三个工作表中的数据合并到查询表中来。我们使用VSTACK函数。它能够将来自不同工作表的数据垂直堆叠(合并)起来。

在“查询表”工作表的A2单元格,我们可以输入以下公式来合并“1月”、“2月”和“3月”这三个工作表从第2行到第20行的数据:

=VSTACK('1月:3月'!$A$2:$D$20)

注意,这里的行数(2到20)是预设的,但可以根据实际需要调整。这个公式的优点是,当工作表中的数据增加时,它会自动适应,无需手动更改。

就会得到把1月到3月三个工作表的数据合并到查询表中:

excel中使用FILTER+VSTACK跨表合并并筛选特定条件下的数据-趣帮office教程网

第二步:确定FILTER函数第二个参数:确定筛选条件

接下来,我们需要定义一个筛选条件,即我们要找的是哪个产品。假设我们在G1单元格中设置了一个下拉菜单,可以从中选择不同的产品名称。我们的目标是筛选出所有工作表中“产品”列等于G1单元格中指定产品的记录。

为了找到所有工作表中“产品”列的数据,我们可以再次使用VSTACK函数,但这次只针对“产品”列,需要添加一辅助列,在F2单元格输入公式:

VSTACK('1月:3月'!$C$2:$C$20)

就会把三个表的产品列都找出来。

excel中使用FILTER+VSTACK跨表合并并筛选特定条件下的数据-趣帮office教程网

第三步:整合FILTER函数

现在,我们有了合并后的数据和筛选条件,接下来就可以使用FILTER函数了。

在“查询表”的A2单元格,我们可以输入以下公式:

=FILTER(VSTACK('1月:3月'!$A$2:$D$20),VSTACK('1月:3月'!$C$2:$C$20)=$G$1)

这个公式的意思是:从“1月”到“3月”三个工作表合并后的数据区域中,筛选出“产品”列(即C列)等于G1单元格中指定产品的所有记录。

excel中使用FILTER+VSTACK跨表合并并筛选特定条件下的数据-趣帮office教程网

最后一步:清理工作

最后把辅助列删除,能实现查找功能。

excel中使用FILTER+VSTACK跨表合并并筛选特定条件下的数据-趣帮office教程网

通过这个过程,我们学会了使用FILTER和VSTACK函数来跨多个工作表筛选数据。