Excel - Programar función Split

 
Vista:

Programar función Split

Publicado por Lara (2 intervenciones) el 22/05/2018 09:40:17
Hola a todos,
estoy intentando obtener de una cadena de números separados por comas, los números por ejemplo: (15,6,12). He visto que la función Split hace esto, pero en excel no sale, y no encuentro el código de la misma. Si puedierais ayudarme.
Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.150
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Programar función Split

Publicado por Antoni Masana (1457 intervenciones) el 22/05/2018 10:21:18
Puedes poner este código en un modulo y llamar a la funcion MiSplit

1
2
3
4
5
6
7
8
9
10
11
Option Explicit
 
Function MiSplit(Texto, posicion) as String
    Dim Tabla() As String
    Tabla = Split(Texto, ",")
    If posicion > UBound(Tabla) Or posicion < LBound(Tabla) Then
        MiSplit = "#VALOR#"
    Else
        MiSplit = Tabla(posicion)
    End If
End Function

Ejemplo;

1
2
3
4
5
6
Celda A1 = 15,6,12
Celda B1 = MiSplit(A1, 0)  devuelve 15
Celda B2 = MiSplit(A1, 1)  devuelve 6
Celda B3 = MiSplit(A1, 2)  devuelve 12
Celda B3 = MiSplit(A1, 3)  devuelve #VALOR#
Celda B3 = MiSplit(A1,-1)  devuelve #VALOR#

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Programar función Split

Publicado por Lara (2 intervenciones) el 22/05/2018 10:30:31
Hola, gracias por la ayuda, me sucede lo mismo que antes ya que la función Split que utiliza la macro no está definida en excel, lo que necesito es definir la función split.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.150
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Programar función Split

Publicado por Antoni Masana (1457 intervenciones) el 22/05/2018 12:05:12
Me extraña que el VBA no tenga la función SPLIT en las macros. ¿Que version de Excel tienes?

Macro sin la función SPLIT pero haciendo SPLIT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Function MiSplit(Texto, Posicion) As String
    Dim Punt As Integer, a As Integer
    ReDim Tabla(1) As String
 
    Punt = 0
    For a = 1 To Len(Texto)
        If Mid$(Texto, a, 1) = "," Then
            Punt = Punt + 1: ReDim Preserve Tabla(Punt)
        Else
            Tabla(Punt) = Tabla(Punt) + Mid$(Texto, a, 1)
        End If
    Next
 
    If Posicion > Punt Or Posicion < 0 Then
        MiSplit = "#VALOR#"
    Else
        MiSplit = Tabla(Posicion)
    End If
End Function

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Abraham Valencia
Val: 294
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Programar función Split

Publicado por Abraham Valencia (109 intervenciones) el 23/05/2018 18:37:09
Pues la función "Split" de VBA, está presente hace varias versiones, con certeza puedo afirmar que en Excel 2000 ya estaba presente.

Si lo que ha hecho nuestro amigo es querer usar "Split" en una celda, pues he ahí el error.

Definitivamente la UDF de Antoni, de ser el caso, sería la alternativa, o si quiere complicarse la vida usar "Derecha", "Izquierda", etc., o quizá usar "Texto en columnas".

Saludos

Abraham Valencia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar