let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"EXTRACTED DATA", type any}}),
#"Replaced Value" = Table.ReplaceValue(#"Changed Type",null,"X",Replacer.ReplaceValue,{"Column1"}),
#"Added Custom" = Table.AddColumn(#"Replaced Value", "Custom", each if Text.Contains([Column1], "ROW") then [EXTRACTED DATA] else null),
#"Filled Down" = Table.FillDown(#"Added Custom",{"Custom"}),
#"Removed Columns" = Table.RemoveColumns(#"Filled Down",{"Column1"}),
#"Grouped Rows" = Table.Group(#"Removed Columns", {"Custom"}, {{"Data", each _, type table [EXTRACTED DATA=any, Custom=number]}}),
#"Added Custom1" = Table.AddColumn(#"Grouped Rows", "Custom.1", each Table.AddIndexColumn([Data], "Index", 1, 1)),
#"Expanded Custom.1" = Table.ExpandTableColumn(#"Added Custom1", "Custom.1", {"EXTRACTED DATA", "Index"}, {"Custom.1.EXTRACTED DATA", "Custom.1.Index"}),
#"Removed Columns1" = Table.RemoveColumns(#"Expanded Custom.1",{"Data"}),
#"Filtered Rows" = Table.SelectRows(#"Removed Columns1", each ([Custom.1.Index] <> 1)),
#"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Filtered Rows", {{"Custom.1.Index", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(#"Filtered Rows", {{"Custom.1.Index", type text}}, "en-US")[Custom.1.Index]), "Custom.1.Index", "Custom.1.EXTRACTED DATA")
in
#"Pivoted Column"
Power Query is a free AddIn for Excel 2010 and 2013, and is built-in functionality from Excel 2016 onwards (where it is referred to as "
Bookmarks