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)

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"))

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")

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)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.