Sub CombineCategoryCols()
Dim rngCat As Range
Dim rngCats As Range
Dim rngDst As Range
Dim rngVal As Range
Dim rngVals As Range
Set rngDst = Cells(1, Columns.Count).End(xlToLeft).Offset(, 1)
Rows(1).Replace "Category", ""
rngDst.Value = "Category"
Set rngCats = Rows(1).SpecialCells(xlCellTypeBlanks)
For Each rng In rngCats
Set rngVals = Range(rng.Offset(1), Cells(Rows.Count, rng.Column).End(xlUp))
For Each rngVal In rngVals
If rngVal <> "" Then
Cells(rngVal.Row, rngDst.Column).Value = rngVal.Value
End If
Next rngVal
Next rng
rngCats.EntireColumn.Delete ' optional
End Sub