有没有办法在电源查询代码中使用if exist语句?

时间:2019-05-03 11:13:50

标签: powerbi powerquery m

嘿,我需要代码帮助,我试图弄清楚如何处理具有不同页数的不同文件。

我实际上是使用power bi从pdf的文件夹中提取数据,但问题是这些文件的页面数不同,在下面的代码中您可以看到我有3个表,每个表都在一个页面上(表1为第一页的表..),因此对于只有一页的pdf文件,表2和3不存在,所以我正在寻找一种方法来忽略会有错误的代码部分

let

 Source = Pdf.Tables(#"Paramètre de l'exemple de fichier1"),
 Table1 = Source{[Id="Table1"]}[Data],
 #"En-têtes promus1" = Table.PromoteHeaders(Table1, [PromoteAllScalars=true]),
 Table2=Source{[Id="Table2"]}[Data],
 #"En-têtes promus2" = Table.PromoteHeaders(Table2, [PromoteAllScalars=true]),
 Table3=Source{[Id="Table3"]}[Data],
 #"En-têtes promus3" = Table.PromoteHeaders(Table3, [PromoteAllScalars=true]),
 #"Table" = Table.Combine({#"En-têtes promus1", #"En-têtes promus2",#"En-têtes promus3"}),
 #"Index ajouté" = Table.AddIndexColumn(Table, "Index", 1, 1),
 #"Colonnes renommées" = Table.RenameColumns(#"Index ajouté",{{"Index", "Page"}})
in
 #"Colonnes renommées"

2 个答案:

答案 0 :(得分:0)

是的。您可以将tryotherwise用于可能发生错误的步骤。

更多详细信息: https://docs.microsoft.com/en-us/power-query/handlingerrors

答案 1 :(得分:0)

 let
 Source = Pdf.Tables(#"Paramètre de l'exemple de fichier1"),
Table005 = Source{[Id="Table005"]}[Data],
#"En-têtes promus1" = Table.PromoteHeaders(Table005, [PromoteAllScalars=true]),

#"Table010"=try Source{[Id="Table010"]}[Data] otherwise null,
#"En-têtes promus2" = Table.PromoteHeaders(Table010, [PromoteAllScalars=true]),
Table015=try Source{[Id="Table015"]}[Data] otherwise null ,
#"En-têtes promus3" = Table.PromoteHeaders(Table015, [PromoteAllScalars=true]),
#"Table" =  try Table.Combine({#"En-têtes promus1", #"En-têtes promus2"}) otherwise  #"En-têtes promus1",
#"Table2" =  try Table.Combine({#"Table",#"En-têtes promus3"}) otherwise  #"Table",
#"Index ajouté" = Table.AddIndexColumn(Table2, "Index", 1, 1),
#"Colonnes renommées" = Table.RenameColumns(#"Index ajouté",{{"Index", "Page"}})


in
 #"Colonnes renommées"