我有一些数据需要多次应用过滤器(不同条件),最后合并每次过滤的结果。我想用电源查询来做到这一点。
数据示例:
设备 | 来自区域 | 前往区域 |
---|---|---|
防火墙1 | 内部 | 外部 |
防火墙1 | 内部 | VPN |
防火墙1 | 网关 | 公开 |
防火墙2 | 外部 | 非军事区 |
防火墙2 | VPN | 非军事区 |
防火墙2 | 网关 | 非军事区 |
防火墙3 | 网关 | 内部 |
防火墙3 | 非军事区 | 内部 |
数据集1:将通过“设备”列中的“防火墙1”和与“内部”匹配的“来自区域”列
设备 | 来自区域 | 前往区域 |
---|---|---|
防火墙1 | 内部 | 外部 |
防火墙1 | 内部 | VPN |
数据集2:将通过“设备”列中的“防火墙2”和与“DMZ”匹配的“到区域”列或与“VPN”匹配的“来自区域”列或与“网关”匹配的“来自区域”
设备 | 来自区域 | 前往区域 |
---|---|---|
防火墙2 | 外部 | 非军事区 |
防火墙2 | VPN | 内部 |
防火墙2 | 网关 | 内部 |
等等...
最后,我需要将所有结果合并到一个查询中。如果可能的话,我宁愿不为每个过滤条件创建源的副本以便稍后将其组合。我想为每个设备提供输入参数,例如:
设备:防火墙1
来自区域:内部
前往区域:任何
设备:防火墙2
来自区域:网关、VPN
前往区域: DMZ
您可以在过滤步骤中使用逻辑表达式(
and
、or
)来完成此操作。
例如:
= Table.SelectRows(YourPreviousStep, each
( [Device] = "firewall 1" and [From Zone] = "Internal" )
or
( [Device] = "firewall 2" and ( List.Contains({"Gateway", "VPN"}, [From Zone] ) or [To Zone] = "DMZ" ) )
)