Macro excel visual basic separar texto en columnas por dos operadores distintos

Tengo una tabla con una columna con los datos de la siguiente manera:

11111 - AB / 3456

231 - D / 123

Etc.

No consigo adaptar la función split para que me separe el texto en tres columnas dividido por - y por / (por dos operadores distintos).

¿Se puede hacer?

Respuesta
1

Puedes poner la siguiente fórmula en B2 copiar hacia la derecha hasta D2 y luego copiar hacia abajo:

=ESPACIOS(EXTRAE(SUSTITUIR(SUSTITUIR($A2;"/";"-");"-";REPETIR(" ";99));COLUMNAS($B$1:B1)*99-98;99))


O puedes poner 3 fórmulas:

En B2

=IZQUIERDA(A2;HALLAR(" ";A2)-1)

En C2

=ESPACIOS(EXTRAE(A2;HALLAR("-";A2)+2;HALLAR("/";A2)-HALLAR("-";A2)-2))

En D2

=ESPACIOS(EXTRAE(A2;HALLAR("/";A2)+1;99))

O con la siguiente macro. Asumiendo que tus datos empiezan en la celda A2:

Sub TextoEnColumnas()
  Dim c As Range, d As Variant
  For Each c In Range("A2", Range("A" & Rows.Count).End(3))
    c.Offset(, 1) = WorksheetFunction.Trim(Split(c, "-")(0))
    c.Offset(, 2) = WorksheetFunction.Trim(Split(Split(c, "-")(1), "/")(0))
    c.Offset(, 3) = WorksheetFunction.Trim(Split(c, "/")(1))
  Next
End Sub

¡Gracias, Dante! me funcionó perfecto, como siempre ;).

Como siempre, me agrada ayudarte, gra cias por comentar!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas