我需要过滤一个表。对我来说,挑战在于过滤器信息(列名,列数以及过滤器值)可以更改。
经过一些研究,我认为List.Generate()可以在这里帮助我。这个想法是创建一个循环,该循环在每个循环传递中应用一个动态传递到该循环的过滤条件。
不幸的是,我对List.Generate()的理解不够深,无法自己构建它。因此,任何帮助将不胜感激!
这是我的设置:
我有一张数据表(DATASTART)
+---+---+---+
| A | B | C |
+---+---+---+
| 1 | 1 | 2 |
| 1 | 2 | 2 |
| 1 | 3 | 2 |
| 2 | 4 | 3 |
| 2 | 5 | 3 |
| 2 | 6 | 3 |
+---+---+---+
和一张表格(FILTER),其中包含应过滤DATASTART的哪些列以及相应的过滤器值。
+--------+--------+
| Column | Filter |
+--------+--------+
| A | 1 |
| B | 2 |
+--------+--------+
带有静态Power Query代码
= Table.SelectRows(DATASTART, each ([A] = 1) and ([B] = 2))
结果将是此表(DATARESULT)。
+---+---+---+
| A | B | C |
+---+---+---+
| 1 | 2 | 2 |
+---+---+---+
答案 0 :(得分:1)
怎么样?
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)