Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
2 years ago
Solved

Excel Power Query - Stop query if record field does not exist

0

I'm running a query which returns a record with a number of fields. If the record contains the field 'CashField', the query continues as normal. However, if the field does NOT exist, is there a way to terminate the query cleanly and exit the function i.e. not subsequent steps from running?

 

let
    Source = Excel.CurrentWorkbook(){[Name="CASH_FLOW_QUERY"]}[Content],
    ...
    res = Record.HasFields(Source, "CashField"),
in
    res
  • Anonymous your Source does not look like a record... Anyway, _after in_ instead of res write smth like

    if Record.HasFields(your_test_record, "CashField") then name_of_the_last_step else [Ted_Striker_Says = "what a pisser"]. Power Query M is "lazy" so it starts from the end and won't execute subsequent steps if this field is missing. 

3 Replies

  • Anonymous your Source does not look like a record... Anyway, _after in_ instead of res write smth like

    if Record.HasFields(your_test_record, "CashField") then name_of_the_last_step else [Ted_Striker_Says = "what a pisser"]. Power Query M is "lazy" so it starts from the end and won't execute subsequent steps if this field is missing. 

    • Anonymous's avatar
      Anonymous
      Not applicable

      I see, thank you! Before, i was trying something like: if Record.HasFields(your_test_record, "CashField")  = False then <EXIT_QUERY>  inside the LET statement... Sounds like my understanding of Power Query M was wrong! 

      • AlienSx's avatar
        AlienSx
        Super User

        Anonymous order of lines of your code does not matter

        let
            res = if b = 2 then null else c,
            a = 1, 
            c = a + b, 
            b = 2
        in
            res