Excel 使用List.Generate()动态筛选多列和不同条件
我需要筛选一个表。我面临的挑战是筛选信息(列名、列数以及筛选值)可能会更改 在做了一些研究之后,我认为List.Generate()可以在这里帮助我。其思想是创建一个循环,在每个循环过程中应用一个过滤器条件,并动态地传递给循环 不幸的是,我对List.Generate()的理解不够透彻,无法自己构建它。因此,任何帮助都将不胜感激 以下是我的设置: 我有一个包含数据的表(DATASTART) 以及一个表(筛选器),其中包含应筛选哪些列的DATASTART以及相应的筛选器值的信息Excel 使用List.Generate()动态筛选多列和不同条件,excel,powerbi,powerquery,Excel,Powerbi,Powerquery,我需要筛选一个表。我面临的挑战是筛选信息(列名、列数以及筛选值)可能会更改 在做了一些研究之后,我认为List.Generate()可以在这里帮助我。其思想是创建一个循环,在每个循环过程中应用一个过滤器条件,并动态地传递给循环 不幸的是,我对List.Generate()的理解不够透彻,无法自己构建它。因此,任何帮助都将不胜感激 以下是我的设置: 我有一个包含数据的表(DATASTART) 以及一个表(筛选器),其中包含应筛选哪些列的DATASTART以及相应的筛选器值的信息 +--------
+--------+--------+
| Column | Filter |
+--------+--------+
| A | 1 |
| B | 2 |
+--------+--------+
具有静态电源查询代码
= Table.SelectRows(DATASTART, each ([A] = 1) and ([B] = 2))
结果将是这个表(DATARESULT)
这个怎么样
let
condition = (record as record) as logical =>
List.AllTrue(
List.Transform(
Table.ToRecords(FILTER),
each Record.Field(record, [Column]) = [Filter]
)
)
in
Table.SelectRows(DATASTART, condition)
非常感谢这个解决方案。它适用于所描述的场景。将围绕一点来了解其工作原理。=)
+---+---+---+
| A | B | C |
+---+---+---+
| 1 | 2 | 2 |
+---+---+---+
let
condition = (record as record) as logical =>
List.AllTrue(
List.Transform(
Table.ToRecords(FILTER),
each Record.Field(record, [Column]) = [Filter]
)
)
in
Table.SelectRows(DATASTART, condition)