Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

Append queries based on excel cell values.

I have some queries and I append all queries into a Master query. SS23_LL_LP + AH23_LL_LP + SS24_LL_LP = MasterChartLL But I want that MasterChartLL will be appended based on the Excel table.    ...
  • ams1's avatar
    3 years ago

    Hi Anonymous 

     

    They say "eval is EVIL", but in PowerQuery it's an angel ğŸ‘¼!

     

    Given:

    ...and TLSeasonFilter is:

    WHEN MasterChartLL is:

     

    let
        Source = TLSeasonFilter,
        #"Added WithSuffix" = Table.AddColumn(Source, "WithSuffix", each [Season] & "_LL_SP"),
        //                                                                          ^^^^^^^^ - all have same suffix, right?
        #"Removed Other Columns" = Table.SelectColumns(#"Added WithSuffix", {"WithSuffix"}),
        TableToList = Table.ToList(#"Removed Other Columns"),
        listOfTables = List.Accumulate(
            TableToList, {}, (final, current) => List.Combine({final, {Expression.Evaluate(current, #shared)}})
        ),
        ret = Table.Combine(listOfTables) // assumes all tables have same header
    in
        ret

     

    Then you should get what you want - if I understood it correctly. ğŸ˜‰

     

    Please mark this as ANSWER if it helped.

     

    P.S.: currently the TLSeasonFilter controls what tables get appended. If you want SS24_LL_LP to be always present, just add it to the List.Accumulate seed: instead of "{}", use "{Expression.Evaluate("SS24_LL_SP", #shared)}"