Obtener el primer elemento de Split ()

104

Utilizo la función SPLIT para dividir una cadena que se parece a 1.23/1.15.

Ahora mismo produce dos celdas, como debería. Pero, ¿cómo obtengo un determinado elemento del resultado? Me gustaría hacer algo como esto:

SPLIT("1.23/1.15", "/")[0]

extraer 1.23. ¿Cuál es la sintaxis correcta para eso?

Intenté usar la INDEXfunción, sin éxito:=INDEX(SPLIT("1.23/1.15", "/"), 0,0)

filur
fuente

Respuestas:

158

Puede utilizar la función de índice para seleccionar qué valor devolver. Entonces, para recuperar el segundo valor de su ejemplo, podría usar:

=index(SPLIT("1.23/1.15", "/"), 0, 2)

El último argumento dice qué columndesea recuperar: 1recuperaría el primer valor.

Alternativamente, puede usar left/ righty findpara extraer cualquier valor de su ejemplo. Por ejemplo, para obtener el primer valor, puede usar:

=left("1.23/1.15", find("/", "1.23/1.15"))
gar
fuente
1
Oh, supuse que el índice estaba basado en cero. Gracias
filur
Intenté left/ rightcon splity siempre devolvió el primer valor. Solo un aviso para cualquiera que no se dé cuenta de que necesita usar finden su lugar.
logicbloke
24

El problema con las dos soluciones anteriores es que no se admiten dentro de una función arrayformula. Si envuelve una función de consulta, obtiene el resultado deseado y es muy flexible en términos de analizar solo el campo que desea devolver:

Devolver la 1ra columna

=query(SPLIT("1.23/1.15", "/"), "SELECT Col1")

Devolver 2da columna

=query(SPLIT("1.23/1.15", "/"), "SELECT Col2")
usuario3626750
fuente
si desea usarlo en una fórmula de matriz, recuerde establecer el encabezado en vacío: =query(SPLIT("1.23/1.15", "/"), "SELECT Col1 label Col1 '' ")
arno
1

Además, si desea aplicar esto a un rango, puede usar:

 =index(split(filter(A2:A,A2:A<>""),"/"),0,2)
N_Browder
fuente