如何使用Excel Power查询中的范围验证表来验证源数据

时间:2018-03-13 16:20:09

标签: excel excel-vba powerbi powerquery vba

有人可以帮我这个吗? 我正在尝试验证3列BU中的源数据 - 在范围验证数据中的行动 - 部门[BU - 开始行动 - 结束帐户 - 开始部门 - 结束部门](截图附件)。Data

BU是验证表中的单个列,但Act&部门列是范围列。我需要检查Range数据中是否存在BU-Act-Dept组合。 那么Power查询是否具有使用嵌套连接验证源数据的任何功能? 这需要在Excel电源查询中完成,而不是公式,因为验证范围文件有超过100万条记录。

1 个答案:

答案 0 :(得分:1)

我不确定这是多么有效,但它原则上有效。

我假设您已将两个表都加载到查询编辑器中,其名称为SourceValidation

首先,在Source表中选择Validation查询并合并,在Source[Unit] = Validation[BU]上匹配左外连接。

合并后,展开除Validation[BU]以外的所有列。这将为您提供包含更多行的表格,因为它会覆盖与Validation对应的Source[Unit]中的每一行。

Expand Columns

现在您可以编写验证Status列。添加列>自定义列:

= if [Account] >= [Beg Act] and [Account] <= [End Act] and
     [Dept] >= [Beg Dept] and [Dept] <= [End Dept]
  then "Valid" else "Invalid"

现在您已拥有此列,请按前三列分组,并在新自定义列Status上取最大值。这应该会将您的表格缩减回原始大小,如果该行与Status表中提取的任何条件相匹配,则在Validation列中显示“有效”,否则为“无效”。< / p>

Group By