# Tags **Software** : [[02 - Tags/Software/Power Query]] **Functions** used : [[List.RemoveNulls]] [[List.Distinct]] [[Record.ToList]] [[Table.Skip]] [[List.Split]] [[Table.ToColumns]] [[List.Transform]] [[Table.FromColumns]] [[Table.FromList]] [[Table.AddIndexColumn]] [[Table.TransformColumns]] [[Table.ExpandTableColumn]] [[Table.TransformColumnTypes]] [[Excel.CurrentWorkbook]] **Date** : 17-March-2025 # Description - In this video i show you an alternative approach to deal with Double barrel header datasets using various list / record and table functions. # Video Link <iframe width="560" height="315" src="https://www.youtube.com/embed/ABX3ukOVPLo?si=YABxWvPJ8xkSDIO2" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> [GITHUB File Link](https://github.com/jbotes/powerbiTutorials/blob/main/PQ_DOUBLE_BARREL_2_Video.xlsx) # M-Query ```mquery let Source = Excel.CurrentWorkbook(){[Name="Table7"]}[Content], PortfolioNames = List.RemoveNulls(Record.ToList(Source{0})), ColumnHeaders = List.Distinct(Record.ToList(Source{1})), TableData = Table.Skip(Source,2), SplitTable = List.Split(Table.ToColumns(TableData),3), Transform = List.Transform(SplitTable, each Table.FromColumns(_, ColumnHeaders)), ToTable = Table.FromList(Transform, Splitter.SplitByNothing(), null, null, ExtraValues.Error), IndexTable = Table.AddIndexColumn(ToTable, "Portfolio", 0, 1, Int64.Type), Custom1 = Table.TransformColumns( IndexTable, {"Portfolio", each PortfolioNames{_}}), #"Expanded Column1" = Table.ExpandTableColumn(Custom1, "Column1", {"Date", "Stocks", "Value"}, {"Date", "Stocks", "Value"}), #"Changed Type" = Table.TransformColumnTypes(#"Expanded Column1",{{"Date", type date}, {"Stocks", Int64.Type}, {"Value", Int64.Type}}) in #"Changed Type" ``` ## Optional Tags **Tags** : **Technique** : [[[[Stacking Lists]]]]