Eliminazione condizionale di testi parziali in Excel


-1

Ciao Di seguito sono riportate alcune celle in cui i testi sono di dimensioni casuali separati da * o con% o con entrambi% e * o con * e% o con più di uno% o con nulla e alcuni punti.

Cella A1: adlkjadflaskd * kljadkfjasdkfjhas

Cella A2: adslfkjasdfçlkjlkjlksjdflsdfs% 309982409

Cella A3: lkaçlaskjdfçklsadjf% sdakdaçsdlkfjaçsl% kdf

Cella A4: lkaçlaskj% dfçklsadjfsdakdaçs% dlkfjaçsl% kd% foi.emb% bl.za *

Cella A5: lkaçlaskj% dfçklsadjfs * dakdaçs% dlkfjaçsl% kd% .rdpdi

Cella A6: lkaçlaskj% dfçklsadjfs * dakdaçs% dlkfjaçsl% kd% e.nem

Cella A7: lkaçlaskj% dfçklsadjfs% dakdaçs% dlkfjaçsl% kd% ensjc.

Cella A8: lkaçlaskj% dfçklsadjfs * dakdaçs% dlkfjaçsl% kd% qsam

Cella A9: alksd.jflskjd

Cella A10: .alksd.jflskjd

Cella A11: alksdjflskjd.

Cella A12: asdsad

Come posso scrivere una formula che dice quanto segue per favore?

a) Se esiste solo * (e% non esiste), quindi eliminare tutto (incluso esso), a destra, e fornire solo la parte sinistra come risultato (esempio, la cella B1 darebbe come risultato: Cella B1: adlkjadflaskd)

b) Se esiste solo% (e * non esiste), quindi eliminare tutto (incluso esso), a sinistra, e fornire solo la parte destra come risultato (esempio, la cella B2 darebbe come risultato: Cella B2: 309982409)

c) Se esistono sia * che%, quando * viene per primo e qualunque sia% o * dopo in qualsiasi ordine questi ultimi 2, quindi, dai come risultato solo ciò che precede il primo * ed elimina il resto dopo il primo * includendolo ( esempio, la cella B3 darebbe come risultato: cella B3: lkaçlaskjdfçklsadjf)

d) Se esiste sia% che *, quando% viene prima di * o anche se un'altra% viene dopo la prima%, quindi, dai come risultato solo ciò che è tra il primo% che appare con * se * è il simbolo successivo dopo% (se non lo è, non ottenere ancora il risultato) e se tra% e * all'interno del testo esiste un punto (.) non in un'altra posizione (inizio / fine). Se è presente% textwithpointinside *, ottieni il risultato, in caso contrario, no. Se non esiste un punto tra il testo, controlla il resto della cella se esiste un'altra combinazione diretta di% textwithpointinside * per stampare questo primo che si verifica e se si verifica un risultato, non è necessario cercare il resto della cella per altri risultati, stampa solo il primo. Se non ci sono risultati tra% e * con il punto all'interno, lasciare vuoto il risultato. (esempio, darebbe come risultato: cella B4: foi.

e) Se sono presenti sia% che * (esempio celle A5 e A6), con% che viene prima ma senza alcuna% testo diretta con pointinside * o se esiste più dell'1% nella cella (esempio Cella A7) senza *, quindi andare a l'ultima% della cella e dare come risultato l'ultimo testo a destra dopo l'ultimo% ma solo se c'è un punto all'interno di quest'ultimo testo e lasciare in bianco se pont è prima del testo (cella A5), dopo il testo ( cella A7) o inesistente (cella A8). (esempio, darebbe come risultato: Cella B5: vuota (perché dopo l'ultimo% il punto è prima del testo non all'interno), Cella B6: e.nem (ok perché dopo l'ultimo% c'è un punto all'interno del testo. E risultato non è dfçklsadjfs perché non vi era alcun punto, altrimenti se lo fosse), cella B7: vuota (perché dopo l'ultimo% il punto non è all'interno del testo ma alla fine), cella B8:

f) Se non esiste né * né%, copia il testo completo della cella come risultato solo se il testo contiene almeno 1 punto all'interno del testo (cella A9). Se è presente un punto prima del testo (cella A10) o dopo il testo (cella A11), lasciare vuoto il risultato. E se non c'è nessun punto in nessun posto (cella A12), lascia il risultato vuoto. (esempio, darebbe come risultato: cella B9: alksd.jflskjd (perché non ha% né * ma ha testo con un punto all'interno), cella B10: vuota (perché c'è un punto prima del testo), cella B11: vuota ( perché c'è un punto dopo il testo), cella B12: vuota, (perché non ha * né% né un punto)

Grazie


Il campione non è corretto, si prega di modificare e fornire prima il campione corretto.
Lee

1. Se esistono sia * che%, quando * viene per primo e poi% viene dopo, quindi, dai come risultato solo ciò che è tra il primo% che appare con * ed elimina il resto per entrambi i lati (esempio, la cella B3 darebbe come risultato: cella B3: lksdakdaçs) 2. Se esiste sia% che *, quando% viene prima e poi * viene dopo, quindi, dai come risultato solo ciò che è compreso tra il primo% visualizzato con * ed elimina il resto per entrambi lati (esempio, la cella B4 darebbe come risultato: cella B4: dlkfja) Qualche differenza tra questi 2 requisiti?
Lee

Caro Lee, grazie per il tuo aiuto. In effetti, B3 e B4 mi hanno sbagliato a scrivere. Ho corretto il testo completo (ho riorganizzato le informazioni sbagliate in un nuovo testo, un po 'più grande, ma credo ora chiaro per aver spiegato in modo più dettagliato la differenza che volevo dire all'inizio. Grazie mille per il tuo prezioso aiuto
Joao

Per favore, non vandalizzare il tuo post
Suraj Rao,

Forse "vandalizzare" è un termine sbagliato, ma è meglio pubblicare il risultato finale della revisione piuttosto che mettere la domanda in uno stato temporaneo di "modifica ...". Prenditi il ​​tuo tempo, ma assicurati di migliorare il tuo post!
Andrew T.

Risposte:


1

Poiché le tue esigenze non sono molto chiare, fornirò parte della formula per ottenere il risultato per A1, A2, A5 e A6.

Come mostrato nella figura seguente, puoi provare questa formula:

=IF(SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,"*","")))=1,LEFT(A1,FIND("*",A1)-1),IF(SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,"%","")))=1,MID(A1,FIND("%",A1)+1,LEN(A1)-FIND("%",A1)),IF(SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,".","")))=1,A1,"")))

inserisci qui la descrizione dell'immagine

Per A3, A4, fornisci le informazioni corrette e ti aiuterò a completare questa formula.


Ciao Lee, hai modificato e corretto, se potessi aiutarti apprezzerei. Grazie
Joao,

Ciao Lee, ho ridotto le dimensioni del testo per essere più facile da leggere se mi aiutassi a finire la formula. Grazie
Joao,
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.