Excel 使用公式筛选列表(不带VBA)

Excel 使用公式筛选列表(不带VBA),excel,Excel,明确地说,这个问题与Excel术语“过滤器”或“自动过滤器”无关。我有一张我不想以任何方式更改的值表(表1)。我要创建另一张图纸(sheet2),其中包含sheet1中的行子集。有没有一种方法可以在不留下任何空行的情况下使用公式来实现这一点 示例如下: A | B -------------------- 1| Person | Age 2| Bob | 25 3| Mary | 10 4| Sue | 15 5| Bill | 20 6| Sam |

明确地说,这个问题与Excel术语“过滤器”或“自动过滤器”无关。我有一张我不想以任何方式更改的值表(表1)。我要创建另一张图纸(sheet2),其中包含sheet1中的行子集。有没有一种方法可以在不留下任何空行的情况下使用公式来实现这一点

示例如下:

   A      | B
 --------------------
1| Person | Age
2| Bob    | 25
3| Mary   | 10
4| Sue    | 15
5| Bill   | 20
6| Sam    | 35
SHEET1 ("People")

   A      | B
 --------------------
1| Person | Age
2| Bob    | 25
3| Bill   | 20
4| Sam    | 35
SHEET2 ("Adults")

我想在Sheet2中输入一个公式,该公式将捕获Sheet1中的行(类似于过滤器的工作方式)。对于空行来说,这是微不足道的,但我还没有弄清楚如何在没有空行的情况下做到这一点。

创建对同一工作簿的数据查询,引用包含所有数据的工作表

  • 功能区->获取数据->从文件->从工作簿
  • 选择相同的文件,然后在树状视图中选择“人员”工作表

  • 使用您选择的筛选方法,对生成的查询表应用适当的筛选。一种选择是直接在数据查询中过滤-

    let
        Source = Excel.Workbook(File.Contents("C:\Users\jdphe\OneDrive\Documents\Book1.xlsx"), null, true),
        Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
        #"Promoted Headers" = Table.PromoteHeaders(Sheet1_Sheet, [PromoteAllScalars=true]),
        #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Person", type text}, {"Age", Int64.Type}}),
        #"Filtered Rows" = Table.SelectRows(#"Changed Type", each [Age] >= 18)
    in
        #"Filtered Rows"
    

  • 我会接受这个答案,因为它引导我走向正确的方向。事实上,我最终使用了Google sheets并使用了以下公式:QUERY(Sheet1!A:B,“选择A,B其中B>=18”),这正是我想要的。PowerQuery是一个很好的工具,但您也可以使用一个带有值过滤器的简陋数据透视表来只显示年龄>18岁的数据