Ottieni il primo elemento da Split ()


104

Uso la funzione SPLIT per dividere una stringa che assomiglia a qualcosa di simile 1.23/1.15.

In questo momento produce due celle, come dovrebbe. Ma come ottengo un determinato elemento dal risultato? Vorrei fare qualcosa del genere:

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

estrarre 1.23. Qual è la sintassi corretta per questo?

Ho provato a utilizzare la INDEXfunzione, senza successo:=INDEX(SPLIT("1.23/1.15", "/"), 0,0)

Risposte:


158

È possibile utilizzare la funzione indice per selezionare il valore da restituire. Quindi per recuperare il secondo valore dal tuo esempio potresti usare:

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

L'ultimo argomento dice quale columnsi desidera recuperare - 1recupererebbe il primo valore.

In alternativa puoi usare left/ righte findper estrarre uno dei valori dal tuo esempio. Ad esempio, per ottenere il primo valore potresti utilizzare:

=left("1.23/1.15", find("/", "1.23/1.15"))

1
Oh, ho solo presunto che l'indice fosse a base zero. Grazie
filur

Ho provato left/ rightcon splite ha sempre restituito il primo valore. Solo un avvertimento per chiunque là fuori non si accorga che devi usare findinvece.
logicbloke

24

Il problema con le due soluzioni precedenti è che non sono supportate all'interno di una funzione arrayformula. Se esegui il wrapping in una funzione di query, ottieni il risultato desiderato ed è molto flessibile in termini di analisi solo del campo che stai cercando di restituire:

Restituisci la prima colonna

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

Ritorno seconda colonna

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

se vuoi usarlo in un arrayformula ricordati di impostare l'header a vuoto: =query(SPLIT("1.23/1.15", "/"), "SELECT Col1 label Col1 '' ")
arno

1

Inoltre, se desideri applicarlo a un intervallo, puoi utilizzare:

 =index(split(filter(A2:A,A2:A<>""),"/"),0,2)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.