根据 Filter 值取值

Fetch value based on Filter values

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

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

现在我想要的是当 Table1[Status] 的值为 ActivePending 时,它应该获取 Table 2 中的所有值。当 Status 值为 PendingEmpty

时不做任何事情

预期输出

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

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

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

第一个

然后(选择Table)

EVALUATE
CALCULATETABLE(
Table1, 
Table1[Status] ="Active" || Table1[Status] = "Pending"
)

解决方案 1

基于公式的解决方案无法在 Table.

中显示输出

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

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


解决方案 2

如果您想在新的 Table 中显示过滤后的输出,您可以尝试使用内置于 Excel 2013 中的 Power Query 函数以及所有更高版本。

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

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

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

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

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