检查Power Query表是否为Empty然后返回其他内容

时间:2016-04-01 12:33:19

标签: excel powerquery

我有一个Power Query表,它从ODBC连接中提取数据,过滤该数据,然后将其返回到excel。然后,我在Excel中的表中添加了几个列,这些列使用Excel networkdays公式。我的问题是偶尔Power Query表将为空,当空时,NetWorkdays公式从excel表中消失。

我的问题是这个。有没有办法检查Power Query是否为空并返回0或其他会阻止excel单元格中的公式消失的方法,或者如果表格为空则防止excel删除公式的方法?

1 个答案:

答案 0 :(得分:1)

我找到了一种方法,如果查询结果中没有数据,Power Query将返回一个空行,但这有点像变通方法。

  1. 在工作簿中创建一个与Power Query返回的表格完全相同的列(不包括您为NETWORKDAYS公式添加的列)。该表应该只有一行可以为空白。
  2. 从刚创建的表中创建一个新查询,并将ODBC查询附加到它。
  3. 添加索引从1开始(这将允许我们识别查询中的哪一行来自您创建的表,以便我们可以在ODBC查询返回行时将其过滤掉)
  4. 创建ODBC查询的副本。这样我们就可以确定查询是否会返回行。
  5. 在查询编辑器中打开副本。添加名为" Group"的自定义列使用公式=" Group"添加一个包含" Group"的列在每一行。
  6. 在“变换”选项卡上,按照您在步骤3中创建的“组”列,使用名为“Count”的新列进行“分组依据”和“分组”操作。这将返回一个包含两列(Group和Count)的行表。
  7. 使用此公式添加另一个自定义列= if [Count]> 0然后1 else 0
  8. 现在返回到您在步骤2-3中创建的附加查询,并将其与您在步骤4-7中创建的查询合并。将其合并到索引列(来自步骤2-3查询)和您在步骤7中添加的自定义列(到步骤4-7查询)。请务必使用Join Kind Left Anti(这只会返回在第二个查询中不匹配的行。
  9. 最后,如果没有从ODBC查询返回的数据,它将从您在步骤1中创建的表中加载该行。如果ODBC查询中有数据,则步骤1表中的行将获得由左反加入过滤掉。