Utilizarea SUBSTITUTE cu caractere wildcard (Programare, Excel, Formula Excel)

utilizator7758051 a intrebat.

Pentru a ilustra problema mea, utilizați următorul exemplu simplu.

Doresc să pot înlocui orice text care se află între „replace” și „that” cu „it is done”. De exemplu, cele două șiruri de caractere următoare:

blah blah blah replace this and that blah
blah blah blah replace this and some other text and that blah

la acest șir

blah blah blah it is done blah

folosind funcția SUBSTITUTE din excel folosind caractere wildcard.

Aceasta este formula pe care o folosesc:

=SUBSTITUTE("blah blah blah replace this and that blah","replace*that","it is done")

Totuși, formula nu înlocuiește textul și se evaluează la „blah blah blah blah replace this and that blah”

Ce se întâmplă?

Comentarii

  • SUBSTITUTE nu funcționează cu caractere wildcard. Va trebui să construiți o soluție utilizând FIND pentru a localiza primul cuvânt și ultimul cuvânt, apoi, probabil, utilizați REPLACE. Ceva de genul =REPLACE(A1,FIND("replace",A1,1),FIND("that",A1,1)-FIND("replace",A1,1)+4,"it is done") –  > Por PeterT.
2 răspunsuri
dnacarlos

Ambele funcții SUBSTITUTE și REPLACE vor selecta un șir de caractere din text și se vor actualiza în consecință. Cu toate acestea, funcția REPLACE înlocuiește șirul pe baza poziției sale.

=REPLACE(A1,SEARCH("replace",A1),SEARCH("that",A1)+ 4-SEARCH("replace",A1),"it is done")

Puteți utiliza funcția SEARCH pentru a găsi primul cuvânt și apoi lungimea șirului pe care doriți să îl înlocuiți.

ImaginaryHuman072889

Nu sunt sigur dacă puteți utiliza SUBSTITUTE cu caractere wildcards.

Dar puteți folosi FIND pentru a obține locația acelor cuvinte în cadrul textului, apoi LEFT și RIGHT pentru a obține textul din afara acestor cuvinte.

De exemplu:

= LEFT(A1,FIND("replace",A1)-1)&"it is done"&RIGHT(A1,LEN(A1)-FIND("that",A1)-3)

Notă FIND("replace",B4)-1 obține locația caracterului chiar înainte de „replace”.

Și LEN(B4)-FIND("that",B4)-3 obține locația caracterului imediat după „that”.