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.