0% found this document useful (0 votes)
79 views1 page

Working With Tables in Power Query M in Power BI

This document discusses various ways of working with tables in Power Query including: 1. Creating tables from records using #table(), Table.FromRecords(), and Record.FromList(). 2. Manipulating rows by inserting, removing, sorting, and transforming rows. 3. Manipulating columns by reordering, adding, selecting, and transforming columns.

Uploaded by

BilalAhmed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views1 page

Working With Tables in Power Query M in Power BI

This document discusses various ways of working with tables in Power Query including: 1. Creating tables from records using #table(), Table.FromRecords(), and Record.FromList(). 2. Manipulating rows by inserting, removing, sorting, and transforming rows. 3. Manipulating columns by reordering, adding, selecting, and transforming columns.

Uploaded by

BilalAhmed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

Row manipulation

> Tables
Working With Tables in

// Insert records into a table with InsertRows()

Creation Table.InsertRows(

Musicians,

Power Query M in Power BI // Create a table with #table()


1,

#table(
{[FirstName = "Bad", LastName = "Bunny", BirthDate = #date(1994, 3, 10)]}

{"Name", "BirthYear", "IsDataScientist", "ChartsInvented"},


) // Returns a table with new record after previous 1st record

{"William Playfair", 1759, true, {"line", "bar", "area", "pie"}},

{"Karl Pearson", 1857, true, {"histogram"}}


// Vertically concatenate tables with Combine()

}
Table.Combine(

Musicians, 

Learn Power BI online at www.DataCamp.com // Create a table from a list of records with FromRecords()

Table.FromRecords({

[FirstName = "Bad", LastName = "Bunny", BirthDate = #date(1994, 3, 10)]

Table.FromRecords({

[
})

Name = "William Playfair",


) // Returns a table with 3 records

BirthYear = 1759,

IsDataScientist = true, 

// Remove records with RemoveRows()

>
ChartsInvented = {"line", "bar", "area", "pie"}

Records ],

Table.RemoveRows(Musicians, 0) // Returns table without 0th record

Name = "Karl Pearson",


// Change the order of records with Sort()

Creation BirthYear = 1857,

IsDataScientist = true, 

Table.Sort(Musicians, {"FirstName"}) // Returns by alphabetical order of FirstName

ChartsInvented = {"histogram"}

// Define a record with [name = value]


]}
// Change values in a field with TransformRows()

//You can include different data types including lists


)

Table.TransformRows(Musicians, {"BirthDate", Date.ToText})

Name = "William Playfair",


// Enforce column data types with type table[]

Table.FromRecords({
// Calculate grouped aggregations with Group()

BirthYear = 1759,

[
Table.Group(Musicians, "FirstName", each List.Min([BirthDate])
IsDataScientist = true, 

Name = "William Playfair",

ChartsInvented = {"line", "bar", "area", "pie"}

BirthYear = 1759,

IsDataScientist = true, 
Column manipulation
ChartsInvented = {"line", "bar", "area", "pie"}

// Create a record from lists of values and fields with FromList()


],

Record.FromList(
// Add a column to a table with AddColumn()
// Change the order of columns with ReorderColumns()

{"William Playfair", 1759, true, {"line", "bar", "area", "pie"}},


Name = "Karl Pearson",
Table.AddColumn(Musicians, "FullName", each Table.ReorderColumns(Musicians, {"LastName",
{"Name", "BirthYear", "IsDataScientist", "ChartsInvented"}
BirthYear = 1857,
[FirstName] & [LastName]) // Returns table "FirstName", "BirthDate", "ID"}) // Returns table
)
IsDataScientist = true, 
with extra column

with new column order

// Create a record from a table of records with FromTable()


ChartsInvented = {"histogram"}

Record.FromTable(
]},

type table[Name = text, BirthYear = number, IsDataScientist = logical, ChartsInvented = list]


// Select columns of a table with // Change values in a field with TransformColumns()

Table.FromRecords({

[Name = "Name", Value = "William Playfair"],


)

SelectColumns()
Table.TransformColumns(

[Name = "BirthYear", Value = 1759],


Table.SelectColumns(Musicians, Musicians, 

// Create a table from a list of lists with FromColumns()


{"FirstName", "LastName"}) // Returns 2 {{"FirstName", Text.Upper}, {"LastName",
[Name = "IsDataScientist", Value = true],

Table.FromColumns({

[Name = "ChartsInvented", Value = {"line", "bar", "area", "pie"}]

{"William Playfair", "Karl Pearson"},


columns

Text.Lower}}

})
{1759, 1857},
)

{true, true},
// Drop columns of a table with
{{"line", "bar", "area", "pie"}, {"histogram"}}
RemoveColumns()

// Records can be nested 


},

[
Table.RemoveColumns(Musicians,
{"Name", "BirthYear", "IsDataScientist ", "ChartsInvented"}

Name = [First = "William", Last = Playfair"],


)

{"BirthDate"}) // Returns remaining 3


BirthYear = 1759,
columns
IsDataScientist = true, 
// Create a table from a list of lists with FromRows()

ChartsInvented = {"line", "bar", "area", "pie"}


Table.FromRows({

]

 {"William Playfair", 1759, true, {"line", "bar", "area", "pie"}},
Table Relations
{"Karl Pearson", 1857, true, {"histogram"}}

},

{"Name", "BirthYear", "IsDataScientist ", "ChartsInvented"}


// Set as column as the primary key with AddKey(, , true)

) Table.AddKey(Musicians, "ID", true)

Example records
// Set as column as the secondary key with AddKey(, , false)

// Define a record
Example tables Table.AddKey(Albums, "ArtistID", false)

let

TaylorSwift = [
// Define tables
// Join two tables with Join()

FirstName = "Taylor", 
let
Table.Join(Musicians, "ID", Albums, "ArtistID", JoinKind.LeftOuter)
LastName = "Swift", 
Musicians = #table(

BirthDate = #date(1989, 12, 13)


{"ID", "FirstName", "LastName", "BirthDate"},


{
Pivoting
in
{1, "Taylor", "Swift", #date(1989, 12, 13)},

TaylorSwift {2, "Ed", "Sheeran", #date(1991, 2, 17)}

// Convert from wide to long with Unpivot()

)
Table.Unpivot(Musicians, {"FirstName", "LastName"}, "NameType", "NameValue") // Returns table
Counting in
with FirstName and LastName on their own rows

Musicians

// Get the number of fields with FieldCount()


// Convert from long to wide with Pivot()

let

Record.FieldCount(TaylorSwift) // Returns 3

Albums = #table(
Table.Unpivot(MusiciansLong, {"FirstName", "LastName"}, "NameType", "NameValue") // Reverses
{"ID", "ArtistID", "Title"},
the unpivot step
// Determine if a record has a field name with HasFields()
{

Record.HasFields(TaylorSwift, "LastName") // Returns true {1, 1, "1989"},

{2, 2, "-"},

{3, 2, "5"}

Manipulation/Transformation }

in

// Add a new field with AddField()

Albums
Record.AddField(TaylorSwift, "MiddleName", "Alison")

// Combine fields from records with Combine()

Record.Combine(TaylorSwift)

Counting
// Remove fields with RemoveFields()

// Get the number of rows with RowCount()

Record.RemoveFields(TaylorSwift)

Table.RowCount(Musicians) // Returns 2

// Change the order of fields with ReorderFields()


// Get the number of columns with ColumnCount()

Record.ReorderFields(TaylorSwift)

Table.ColumnCount(Musicians) // Returns 4

// Change values in a field with TransformFields()


// Get the column names with ColumnNames()

Record.TransformFields(TaylorSwift, {"BirthDate", Date.ToText}) Table.ColumnNames(Musicians) // Returns {"ID", "FirstName", "LastName", "BirthDate"}

// Get details of the columns with Schema()

Table.Schema(Musicians) // Returns a table of column details

Learn Power BI Online at


Metadata
// Get a summary of number columns with Profile()

www.DataCamp.com
Table.Profile(Musicians) // Returns a table of min, max, mean, etc. by column
// Add a metadata record to a value with meta

"To a collector of curios, the dust is metadata." meta [

ContentType = "quote",

Author = "David Weinberger",


Selection
Source = "Everything Is Miscellaneous: The Power of the New Digital Disorder"

// Get a record by position with {}


// Select unique records with Distinct()

Musicians{0} // Returns Taylor Swift Table.Distinct(Table.Combine(Musicians, Musicians)) //


// Remove all metadata with RemoveMetadata()
record

Returns Musicians

Value.RemoveMetadata(curios)

// Get a column with []


// Get elements that match a criteria with
// Remove specific metadata with RemoveMetadata(, metaValue)
Musicians[FirstName]

SelectRows()

Value.RemoveMetadata(curios, "Author") Table.SelectRows(Musicians, each


// Get a column dynamically with Text.Contains([FirstName], "Tay")) // Returns the
Column()
Taylor Swift record

Table.Column(Musicians, "FirstName")

// Return true if all elements match a criteria with


// Get the first few rows with FirstN()
MatchesAllRows()

Table.FirstN(Musicians, 1) // Returns Table.MatchesAllRows(Musicians, each


first record

[IsDataScientist]) // Returns true

// Get the last few element with LastN()


// Return true if any elements match a criteria with
Table.LastN(Musicians, 1) // Returns MatchesAnyRows()

last record Table.MatchesAnyRows(Musicians, each


Text.Contains([FirstName], "Drake")) // Returns false

You might also like