1

我需要过滤一个表。我面临的挑战是过滤器信息(列名、列数以及过滤器值)可以更改。

在做了一些研究之后,我认为 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 |
+---+---+---+
4

1 回答 1

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)
于 2019-12-05T08:30:19.897 回答