Assuming you are starting off with source data in range Table1 that has three columns, and no column headers, this code will work in powerquery (paste into Home ... Advanced Editor...)
It creates two custom columns using the split function to split on : into a list
Then combines the two lists into a table, before we expand it
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Added Custom" = Table.AddColumn(Source, "Custom", each Text.Split([Column2],":")),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom.1", each Text.Split([Column3],":")),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "Custom.2", each Table.FromColumns({[Custom],[Custom.1]})),
#"Expanded Custom.2" = Table.ExpandTableColumn(#"Added Custom2", "Custom.2", {"Column1", "Column2"}, {"Column1.1", "Column2.1"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Custom.2",{"Column2", "Column3", "Custom", "Custom.1"})
in #"Removed Columns"
alternately, below works on any number of columns, all at once
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes (Source,List.Transform(Table.ColumnNames(Source), each {_, type text})),
TableTransform = Table.Combine(List.Transform(List.Transform(Table.ToRecords(#"Changed Type"), (x) => List.Transform(Record.ToList(x), each Text.Split(_,":"))), each Table.FromColumns(_, Table.ColumnNames(#"Changed Type")))),
#"Filled Down" = Table.FillDown(TableTransform,{"Column1"})
in #"Filled Down"