Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live now!

Reply
Jeffery24
Helper I
Helper I

Power Query using variables from a specific table column value

Hi,

 

I currently have a table that is adjusted via some variables based off queries. E.g #"Delivery KPI" is a variable.

 

#"Added Custom30"= Table.AddColumn(#"Added Custom29", "Delivery KPI Target", each #"Delivery KPI"), 

 Works ok but is pretty longwinded as each query variable references the column off another table. Delivery KPI variable is;

= MetricsDelivery[KPI Target]{0}

 Capture.JPG

 

What I'd prefer is to enter the  query variable input directly into the table add column and bypassing the additional query variable

#"Added Custom30"= Table.AddColumn(#"Added Custom29", "Delivery KPI Target", each #"MetricsDelivery[KPI Target]{0}")

Is it possible to reference a table column as a variable directly in a table add column function?

Thanks.

 

1 ACCEPTED SOLUTION
Anonymous
Not applicable

@Jeffery24,

In your scenario, firstly, choose the referenced column in the MetricsDelivery table and click drill down, then copy the M code of this query to advanced editor of your second query where  you want to add custom column.

There is an example for your reference.

let
    Source = GoogleAnalytics.Accounts(),
    #"80056532" = Source{[Id="80056532"]}[Data],
    #"UA-80056532-1" = #"80056532"{[Id="UA-80056532-1"]}[Data],
    #"124765743" = #"UA-80056532-1"{[Id="124765743"]}[Data],
    #"Added Items" = Cube.Transform(#"124765743",
        {
            {Cube.AddAndExpandDimensionColumn, "ga:sessionCount", {"ga:sessionCount"}, {"Count of Sessions"}},
            {Cube.AddAndExpandDimensionColumn, "ga:userType", {"ga:userType"}, {"User Type"}},
            {Cube.AddMeasureColumn, "Users", "ga:users"}
        }),//source code of second query



    Source1 = Excel.Workbook(File.Contents("Foldername\testrow.xlsx"), null, true),
    Sheet1_Sheet = Source1{[Item="Sheet1",Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(Sheet1_Sheet, [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Emp ID", Int64.Type}, {"Emp Name", type text}, {"Salary", Int64.Type}, {"Email", type text}, {"Geo", type text}}),// source code of first query

    #"Added Custom" = Table.AddColumn(#"Added Items", "Custom", each #"Changed Type"[Emp ID]{0})//reference the first value of Emp ID column in add custom column step of second query
in
    #"Added Custom"



Regard,
Lydia

View solution in original post

2 REPLIES 2
Anonymous
Not applicable

@Jeffery24,

In your scenario, firstly, choose the referenced column in the MetricsDelivery table and click drill down, then copy the M code of this query to advanced editor of your second query where  you want to add custom column.

There is an example for your reference.

let
    Source = GoogleAnalytics.Accounts(),
    #"80056532" = Source{[Id="80056532"]}[Data],
    #"UA-80056532-1" = #"80056532"{[Id="UA-80056532-1"]}[Data],
    #"124765743" = #"UA-80056532-1"{[Id="124765743"]}[Data],
    #"Added Items" = Cube.Transform(#"124765743",
        {
            {Cube.AddAndExpandDimensionColumn, "ga:sessionCount", {"ga:sessionCount"}, {"Count of Sessions"}},
            {Cube.AddAndExpandDimensionColumn, "ga:userType", {"ga:userType"}, {"User Type"}},
            {Cube.AddMeasureColumn, "Users", "ga:users"}
        }),//source code of second query



    Source1 = Excel.Workbook(File.Contents("Foldername\testrow.xlsx"), null, true),
    Sheet1_Sheet = Source1{[Item="Sheet1",Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(Sheet1_Sheet, [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Emp ID", Int64.Type}, {"Emp Name", type text}, {"Salary", Int64.Type}, {"Email", type text}, {"Geo", type text}}),// source code of first query

    #"Added Custom" = Table.AddColumn(#"Added Items", "Custom", each #"Changed Type"[Emp ID]{0})//reference the first value of Emp ID column in add custom column step of second query
in
    #"Added Custom"



Regard,
Lydia

Hi Lydia,

 

Thankyou very much, it worked. Took me awhile to get my head around it but will save a lot of work now!

 

Below is final code, just needed to add {1} to reference next line in table. 

 

let
    Source = if SourceName = "SBI" then SPDATASBI else SPDATASCOUT,
    #"Merged Queries" = Table.NestedJoin(Source,{"Container Type Source"},#"Container Type",{"Container Type"},"Container Type",JoinKind.LeftOuter),
    #"Expanded Container Type" = Table.ExpandTableColumn(#"Merged Queries", "Container Type", {"Referance", "Max Fill", "Max Weight", "TEU", "Target Fill"}, {"Referance", "Max Fill", "Max Weight", "TEU", "Target Fill"}),
    #"Renamed Columns1" = Table.RenameColumns(#"Expanded Container Type",{{"Referance", "Container Type"}, {"TEU", "TEU Set"}, {"Target Fill", "Cont Analysis Target Fill"}}),
    NewType = Table.TransformColumnTypes(#"Renamed Columns1",{{"Cont Analysis Target Fill", Percentage.Type}}),
       
    Source1 = SharePoint.Files(SourceID, [ApiVersion = 15]),
    FileID1 = Source1{[Name=AccountName&" Metrics.xlsx",#"Folder Path"=MyPathParameter]}[Content],
    #"Imported Excel" = Excel.Workbook(FileID1),
    Metrics_Table = #"Imported Excel"{[Item="Metrics",Kind="Table"]}[Data],
    #"Removed Columns" = Table.RemoveColumns(Metrics_Table,{"In Scope"}),
    MAP = if SourceName = "SBI" then #"SBIMAP" else #"SCOUTMAP",
    #"Merged Queries1" = Table.NestedJoin(#"Removed Columns",{"Recorder Milestone"},MAP,{"Name"},EventMap,JoinKind.LeftOuter),
    ExpandedMAP = Table.ExpandTableColumn(#"Merged Queries1", EventMap, {"PBI Name"}, {"PBI Name"}),
    #"Added Conditional Column" = Table.AddColumn(ExpandedMAP, "Event Measured", each if [PBI Name] = null then [Recorder Milestone] else [PBI Name]),
    #"Removed Columns1" = Table.RemoveColumns(#"Added Conditional Column",{"PBI Name", "Recorder Milestone"}),
    #"Merged Queries2" = Table.NestedJoin(#"Removed Columns1",{"Measurer Milestone"},MAP,{"Name"},EventMap,JoinKind.LeftOuter),
    ExpandedMAP1 = Table.ExpandTableColumn(#"Merged Queries2", EventMap, {"PBI Name"}, {"PBI Name"}),
    #"Added Conditional Column1" = Table.AddColumn(ExpandedMAP1, "Event Measurer", each if [PBI Name] = null then [Measurer Milestone] else [PBI Name]),
    #"Removed Columns2" = Table.RemoveColumns(#"Added Conditional Column1",{"PBI Name", "Measurer Milestone"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Removed Columns2",{{"KPI Target", Percentage.Type}, {"Event Measured", type text}, {"Event Measurer", type text}}),
    #"Sorted Rows" = Table.Sort(#"Changed Type",{{"#", Order.Ascending}}),
    #"Buffer table" = Table.Buffer(#"Sorted Rows"),
   
    #"Added Custom" = Table.AddColumn(NewType, "Custom", each #"Buffer table"[Event Measured]{0}),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom1", each Record.Field(_,#"Buffer table"[Event Measured]{1}))
 in
    #"Added Custom1"

Helpful resources

Announcements
FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.