Bien, entonces la opción Texto en columnas la dejo sin el guión.
Entrá al Editor de macros, insertá un módulo y allí copiá esto:
Sub MacroSepara()
'x Elsamatilde
'se separa texto en columnas, delimitado x espacio y comas
Range("B1:B" & Range("B65536").End(xlUp).Row).Select
Selection.TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=True, Space:=True, Other:=False, FieldInfo:= _
Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True
'limpia la col B para colocar los nuevos valores
Range("B:B") = ""
'se recorre la col A hasta su final
Range("A1").Select
While ActiveCell.Value <> ""
'se recorren las col de la fila activa, a partir de C
ActiveCell.Offset(0, 2).Select
'guarda la fila activa
filini = ActiveCell.Row
filx = filini
ind = 0
col = 3
While Cells(filini, col).Value <> ""
If ind > 0 Then
Cells(filx, col).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If
'revisa si tiene guión, sinó solo coloca ese valor en la celda
ubica = InStr(1, Cells(filini, col). Value, "-")
If ubica = 0 Then
Cells(filx, 2) = Cells(filini, col).Value
Else
Cells(filx, 2) = Left(Cells(filini, col).Value, 4)
'inserto tantas filas como el valor del campo
For i = Left(Cells(filini, col).Value, 4) + 1 To Mid(Cells(filini, col).Value, 6, 4)
filx = filx + 1
Cells(filx, 2).Select
Selection.EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Cells(filx, 2) = i
Next i
End If
filx = filx + 1
col = col + 1
ind = 1
Wend
'rellena dato fijo
If filx > filini + 1 Then
Range("A" & filini).Copy
Range("A" & filini + 1 & ":A" & filx - 1).Select
ActiveSheet.Paste
End If
Cells(filx, 1).Select
'vuelvo al inicio del bucle
Wend
Application.CutCopyMode = False
'opcional: borrar las col auxiliares
End SubAl finalizar debiera eliminar las col auxiliares, pero las dejo para que puedas revisar que cada dato se ha pasado correctamente. Según tu ejemplo, va a estar bien .... pero quizás tengas algún otro separador que no se ve en el ejemplo y deba ajustarse.
Sdos y NO olvides finalizar si el tema queda resuelto.