You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerQuery M:通过Table B筛选Table A的支付参考列

解决方法

方案1:通配符转正则匹配(支持任意位置*)

如果筛选规则中的*可以出现在任意位置,可将通配符转换为正则表达式实现匹配:

  1. 在Power Query中给Table A添加自定义列,输入公式:
List.AnyTrue(
    List.Transform(
        TableB[Filters],
        each Text.MatchesPattern([Payment References], Text.Replace(_, "*", ".*"))
    )
)
  1. 筛选该自定义列值为True的记录,即可得到符合规则的结果。

方案2:前缀匹配优化(仅*在规则末尾时适用)

若所有筛选规则的*都位于末尾(如B-Cr*、C-INV*均为前缀匹配场景),可使用更高效的前缀匹配方法:

  1. 给Table A添加自定义列,公式如下:
List.AnyTrue(
    List.Transform(
        TableB[Filters],
        each Text.StartsWith([Payment References], Text.Remove(_, "*"))
    )
)
  1. 筛选该列为True的记录即可。

原代码无效原因

你之前使用Text.ToList会把支付参考字符串拆成单个字符的列表,再用List.ContainsAny检查单个字符是否存在于筛选规则列表中——这完全偏离了“匹配前缀/通配符规则”的需求,因此返回空结果。

内容的提问来源于stack exchange,提问作者Marc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 06:17:13