Dividi una colonna in Numbers estraendo il testo tra parentesi

2

Ho bisogno di estrarre tutto da "ORIGINAL COMBINED" che è tra parentesi e posizionarlo nello SP A A e posizionare il resto nella colonna SPLIT B. Ad esempio:

    
posta Bryan Hankins 24.02.2017 - 17:33
fonte

1 risposta

1

Per svolgere questa attività, dobbiamo utilizzare una combinazione di funzioni Text nelle nostre formule. Vedi la documentazione di Apple per ulteriori dettagli sull'uso di queste funzioni.

TL; DR le formule sono sotto la spiegazione.

Quindi dobbiamo identificare il (XX) in ogni stringa di testo. In una colonna, mostra solo i numeri e i numeri tra loro, e nell'altra colonna, li ometti. Ciò richiederà la combinazione di diverse funzioni di testo in un singolo fomula.

'Split A' Column

Nella "stringa" originale ogni personaggio ha una posizione che inizia a 1. Quindi, ad esempio nella stringa seguente, ( ha una posizione di 3.

1 (23) Large Broom

Quindi quello che dobbiamo determinare è in quale posizione è ( e ) in ogni stringa. Possiamo usare Find() per farlo.
FIND(search-string, source-string, start-pos)

Quindi, usando la stringa di esempio sopra:
=FIND("(", "1 (23) Large Broom")
restituisce: 3

Quindi possiamo usare FIND() per ottenere anche la posizione di ) . In questo caso restituisce la posizione di 6 . Ora possiamo usarlo con la funzione MID() per recuperare il numero con i parenti.

MID(A2,FIND("(",A2),FIND(")",A2,)
// Where A2 contains our original text
result: (23)

Ora, se non ci sono () otterremo un errore in modo che per gestire questo si avvolge l'intera formula nella funzione IFERROR() . Se c'è un errore, restituisce una stringa vuota. (o qualsiasi cosa tu desideri)

IFERROR(MID(A2,FIND("(",A2),FIND(")",A2,),"")

Copia questa formula nella colonna "Divisione A".

'Split B' Column

Possiamo usare la funzione REPLACE() per sostituire una stringa vuota per il nostro numero in paren. Quindi questo: (23) diventa questo: "" . (Le virgolette non verranno visualizzate.)
REPLACE(source-string, start-pos, replace-length, new-string)

Per rimuovere (23) , dobbiamo aggiungere 1 alla posizione di ) , quindi sottrarre la posizione di ( . Quindi in questo caso 7 - 3 per ottenere 4 , la lunghezza della nostra stringa numero / paren.

REPLACE(A2,FIND("(",A2,),(FIND(")",A2,)+1−FIND("(",A2,)),"")
Breakdown:

REPLACE(
  A2, ← the source string cell reference
  FIND("(",A2,),
    (FIND(")",A2,)+1−FIND("(",A2,)), ← resulting in 4
"") ← replace with empty string

Avvolgi anche questo in IFERROR() e ora il risultato è 1 Large Broom (Nota lo spazio extra. Questo può essere eliminato se aggiungiamo 2 invece di 1)

TL; DR - Quindi eccoci qui. Meno male! le formule con le nostre funzioni annidate per risolvere questo:

Dividi A

IFERROR(MID(A2,FIND("(",A2),FIND(")",A2,),"")

Dividi B

IFERROR(REPLACE(A2,FIND("(",A2,),(FIND(")",A2,)+1−FIND("(",A2,)),""),"")

    
risposta data 16.06.2017 - 00:20
fonte

Leggi altre domande sui tag