首页 > 解决方案 > 根据过滤器值获取值

问题描述

我正在处理一个 Excel 文件,这是我的第一个表。

在此处输入图像描述

现在我有另一个具有完全相同列名的表

在此处输入图像描述

现在我想要的是当值Table1[Status]isActive或者Pending它应该获取Table 2. Status当值为Pending或时不要做任何事情Empty

预期输出

在此处输入图像描述

我尝试了以下查询,但我认为我做错了。

=XLOOKUP([@GID];Table1[GID];SWITCH([@[Status]];"Active";Table1[Status];"Pending"))

有谁知道如何解决这个挑战?

标签: excelexcel-formuladax

解决方案


解决方案 1

基于公式的解决方案无法在Table中显示输出。

假设您的第一个表名为Tbl_Source,在单个单元格中输入以下公式(在 Excel 365 中),您将获得所需的输出:

=FILTER(Tbl_Source,(Tbl_Source[Status]="Active")+(Tbl_Source[Status]="Pending"))

基于公式的解决方案


解决方案 2

如果要在新中显示过滤后的输出,可以尝试使用 Excel 2013 和所有更高版本中内置的 Power Query 功能。

首先,突出显示第一个表中的任何单元格,然后将该表加载到 Power Query 编辑器:

质检步骤1

其次,单击状态列顶部的过滤器按钮,然后像通常在 Excel 中那样选择所需的条件:

质检步骤2

最后,关闭并加载输出表。默认情况下,Excel 会将输出加载到新工作表上的新表中。您可以将输出表剪切并粘贴到所需的工作表中,或者谷歌如何将输出加载到查询中,然后选择将输出加载到的确切位置。

如果要添加其他数据或对第一个表进行更改,则需要右键单击输出表中的任何单元格并选择Refresh,然后输出表将使用其他数据进行更新。

质检步骤 3

如果您有任何问题,请告诉我。


推荐阅读