# 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]]]]