Power BI: extract columns from a table to another one

I will explain how to insert a specific column from a table to an existing table or using some columns from multiple tables to create a new table. I will begin by adding a new column to an existing table. The first option will be to used the RELATED function (relationship between tables should exists). For instance, RELATED('table'[argument]):

power bi

NOTE: make sure that the relationship is from the table to insert (destination) to the table to extract (source) like in the picture and not the contrary

power bi

The second option is to do it in the Power Query Editor (in this case, no relationship between tables is needed) by clicking on “transform data -> transform data”:

power bi

Click on “home -> merge queries”:

power bi

On this popup, I will select the tables/columns to match:

power bi

Click on the right icon then select "state":

power bi

Now let’s see about creating a new table with an existing column. I will use the SELECTCOLUMNS function (relationship between tables no needed). For instance, SELECTCOLUMNS('table',[argument]):

power bi

NOTE: change “table” and “argument” by yours.

This formula will put the same name as “argument” but if I want to put a different name, I will use this one:

SELECTCOLUMNS('table',"different name",[argument])

power bi

NOTE: change “different name” by yours.

If I want to add multiple columns, just add another [argument] like that:

  • SELECTCOLUMNS('table',[argument1],[argument2])
    power bi
  • SELECTCOLUMNS('table',"different name1",[argument1],"different name2",[argument2])
    power bi

NOTE: instead to use [argument1], I can use a specific value:

SELECTCOLUMNS('table',"different name1",”specific value”,"different name2",[argument2])

power bi

To get only unique values, I will add the DISTINCT function:

DISTINCT(SELECTCOLUMNS('table',"different name1",[argument1]))

power bi

To filter a specific criteria, I will add the FILTER function, for instance, if I have a huge data and I want to extract only data for a specific group:

  • To get data for a particular criteria:
    FILTER(DISTINCT(SELECTCOLUMNS('table',"different name1",[argument1],"different name2",[argument2])),[different name2]="value")
    power bi
  • To exclude blank values:
    FILTER(DISTINCT(SELECTCOLUMNS('table',"different name1",[argument1],"different name2",[argument2])),NOT(ISBLANK([different name2])))
    power bi

NOTE: “different name2” is the new column name where there is the criteria/blank cell(s)

To filter from another table, I will use the CALCULATETABLE function:

SELECTCOLUMNS(CALCULATETABLE('table1',FILTER('table2','table2'[argument]="value")),"different name1",[argument1],"different name2",[argument2])

power bi

NOTE: argument1 and argument2 are from table1

Now if I add the UNION function, I will be able to merge columns from 2 different tables into 1 same column:

UNION(SELECTCOLUMNS('table1',[argument]),SELECTCOLUMNS('table2',[argument]))

power bi

And to not repeat again, if I want to add more columns or put a particular name, just follow the same formula as above.

Interesting Topics