跳过数据查询的条件语句

跳过数据查询的条件语句

我有一个工作簿,它使用来自 Web 的数据源(XML 查询)来提取一些信息。如果我为一个值发送“0”或“空白”,服务器将返回错误,因此我试图找到一种方法将我的一个查询包装在条件中,if statement以便查询仅在特定单元格中有正值时运行(SecondSize如果有帮助,则命名该单元格)。我去了 PowerEditor,然后去了高级编辑器,得到了以下信息,但不确定在哪里(以及如何)在这里放置 IF 语句。

let
    apiAddress = Excel.CurrentWorkbook(){[Name="ApiUrl2"]}[Content]{0}[Column1],
    Source = Json.Document(Web.Contents(apiAddress)),
    #"Converted to Table" = Record.ToTable(Source),
    Value = #"Converted to Table"{6}[Value],
    ac_monthly = Value[ac_monthly],
    #"Converted to Table1" = Table.FromList(ac_monthly, Splitter.SplitByNothing(), null, null, ExtraValues.Ignore)
in
    #"Converted to Table1"

在真正理想的世界中,我不但会在值为 0 或空白时跳过查询,而且还会用“0”覆盖表 1 中的 12 个值...但如果太多,我可以对另一个单元格进行条件管理该部分。

答案1

您的问题目前还不是 100% 清楚,但假设成功的 API 调用将返回表中的 12 行,并且如果 SecondSize 不大于 0,则您希望返回每行均为零的 12 行表,然后尝试以下操作:

let
    apiAddress = Excel.CurrentWorkbook(){[Name="ApiUrl2"]}[Content]{0}[Column1],
    secondSize = Excel.CurrentWorkbook(){[Name="SecondSize"]}[Content]{0}[Column1],

    getResultAndProcess = (apiAddress) =>
        let
            Source = Json.Document(Web.Contents(apiAddress)),
            asTable = Record.ToTable(Source),
            Value = asTable{6}[Value],
            ac_monthly = Value[ac_monthly],
            result = Table.FromList(ac_monthly, Splitter.SplitByNothing(), null, null, ExtraValues.Ignore)
        in
            result,

    result = 
        if secondSize > 0 
        then getResultAndProcess(apiAddress) 
        else Table.FromList(List.Repeat({0}, 12), Splitter.SplitByNothing())
in
    result

相关内容