• excel中使用FILTER+VSTACK跨表合并并筛选特定条件下的数据

  • 发布日期:2025-04-12 13:50    点击次数:116

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

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

    如下图的动态效果:

    图片

    图片

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

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

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

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

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

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

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

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

    图片

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

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

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

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

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

    图片

    第三步:整合FILTER函数

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

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

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

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

    图片

    最后一步:清理工作

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

    图片

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

    本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。


    上一篇:没有了
    下一篇:没有了