top of page

Excel Arena

This is the place, where we can test the boundaries of Excel functions.

Add Multiple Columns at One Step - Power Query

The input table includes a Date column.

The objective is to add Multiple columns simultaneously, including Year, Quarter, and Month.



Method-1:

let

 Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],

 ChType = Table.TransformColumnTypes(Source,{{"Date", type date}}),

 Result = Table.SplitColumn(ChType, "Date", each {_, Date.Year(_), Date.QuarterOfYear( ), Date.ToText(,"MMM")}, { "Date","Year","Qtr","Month" })

in

 Result


Method-2:

let

 Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],

 ChType = Table.TransformColumnTypes(Source,{{"Date", type date}}),

 Result = Table.FromList(ChType[Date], each {_, Date.Year(_), "Q" & Text.From(Date.QuarterOfYear(_)), Text.Start(Date.MonthName(_), 3 )}, type table [Date = date, Year = number, Qtr = text, Month = text])

in

 Result


Method-3:

let

 Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],

 ChType = Table.TransformColumnTypes(Source,{{"Date", type date}}),

 Result = Table.FromRecords(Table.TransformRows(ChType, each _ & [Year = Date.Year([Date]), Qtr = "Q" & Text.From(Date.QuarterOfYear([Date])), Month = Date.ToText([Date],"MMM") ]))

in

 Result


Method-4 proposed by Arnaud Duvernois:

let

 Source = MyTable,

 List = List.TransformMany(Source[Date] , (x)=> {Date.From(x)} , (x,y)=> {y , Date.Year(y),"Q"&Text.From(Date.QuarterOfYear(y)),Date.ToText(y,"MMM") } ),

 Tbl = Table.FromRows( List , {"Date","Year","Qtr","Month"})

in

 Tbl


Method-5 Proposed by my Mentor

Yaroslav Drohomyretskyi :

let

 Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],

 Logic = Table.AddColumn(Source, "x", each [Year = Date.Year([Date]), Qtr = "Q" & Text.From(Date.QuarterOfYear([Date])), Month = Text.Start(Date.MonthName([Date]),3)]),

 Result = Table.ExpandRecordColumn(Logic, "x", Record.FieldNames(Logic{0}[x]))

in

 Result

Comments


  • LinkedIn
  • Facebook
  • Twitter
  • Instagram
bottom of page