Tartalomjegyzék
Az oktatóanyag példákkal magyarázza el az Excel REPLACE és SUBSTITUTE függvényeket. Nézze meg, hogyan használhatja a REPLACE függvényt szöveges karakterláncokkal, számokkal és dátumokkal, és hogyan fészkelhet be több REPLACE vagy SUBSTITUTE függvényt egy képletbe.
A múlt héten a FIND és SEARCH funkciók különböző módjait tárgyaltuk az Excel munkalapokon belül. Ma két másik funkciót fogunk mélyebben megvizsgálni, amelyekkel egy cellában lévő szöveget a helye alapján cserélhetünk ki, vagy egy szövegrészletet egy másikkal helyettesíthetünk a tartalma alapján. Mint már kitalálhattad, az Excel REPLACE és SUBSTITUTE funkciókról beszélek.
Excel REPLACE funkció
Az Excel REPLACE funkciója lehetővé teszi, hogy egy szöveges karakterlánc egy vagy több karakterét egy másik karakterrel vagy karakterkészlettel cserélje ki.
REPLACE(régi_text, start_num, num_chars, új_text)Amint látja, az Excel REPLACE függvényének 4 argumentuma van, amelyek mindegyike szükséges.
- Old_text - az eredeti szöveget (vagy az eredeti szöveget tartalmazó cellára való hivatkozást), amelyben néhány karaktert ki akar cserélni.
- Start_num - az old_textben lévő első karakter pozíciója, amelyet ki akar cserélni.
- Num_chars - a helyettesíteni kívánt karakterek száma.
- New_text - a helyettesítő szöveg.
Például a " nap " a " fiú ", a következő képletet használhatja:
=REPLACE("sun", 2, 1, "o")
Ha pedig az eredeti szót egy cellába, mondjuk A2-be helyezi, akkor a megfelelő cellahivatkozást megadhatja a régi_text argumentumban:
=REPLACE(A2, 2, 1, "o")
Megjegyzés: Ha a start_num vagy a num_chars argumentum negatív vagy nem numerikus, az Excel Replace formula a #VALUE! hibát adja vissza.
Az Excel REPLACE funkció használata numerikus értékekkel
Az Excelben a REPLACE funkciót úgy tervezték, hogy szöveges karakterláncokkal dolgozzon. Természetesen használhatja például a szöveges karakterlánc részét képező numerikus karakterek helyettesítésére is:
=REPLACE(A2, 7, 4, "2016")
Vegye észre, hogy a "2016" szót idézőjelek közé tesszük, ahogyan a szöveges értékeknél szoktuk.
Hasonló módon helyettesíthet egy vagy több számjegyet egy számon belül. Például:
=REPLACE(A4, 4, 4, 4, "6")
A csereértéket ismét idézőjelek közé kell zárni ("6").
Megjegyzés: Az Excel REPLACE képlet mindig visszaad egy szöveges karakterlánc A fenti képernyőképen figyelje meg a B2-ben a visszakapott szöveges érték balra igazítását, és hasonlítsa össze a jobbra igazított eredeti számmal az A2-ben. És mivel ez egy szöveges érték, nem tudja majd felhasználni más számításokban, hacsak nem alakítja vissza számmá, például 1-gyel való szorzással vagy a Hogyan alakítsuk át a szöveget számmá című fejezetben leírt bármely más módszerrel.
Az Excel REPLACE funkció használata dátumokkal
Ahogy az imént láttad, a REPLACE függvény számokkal is jól működik, kivéve, hogy egy szöveges karakterláncot ad vissza :) Ha emlékszel, hogy az Excel belső rendszerében a dátumokat számként tároljuk, megpróbálhatsz néhány Replace képletet használni dátumokra. Az eredmények elég kínosak lennének.
Például van egy dátum az A2-ben, mondjuk 1-Oct-14, és meg akarja változtatni a " Október " a " Nov ". Tehát megírja a REPLACE(A2, 4, 3, "Nov") képletet, amely azt mondja az Excelnek, hogy az A2 cellákban a 4. karakterrel kezdődő 3 karaktert helyettesítse... és a következő eredményt kapja:
Miért? Mert a "01-Oct-14" csak a dátumot jelentő sorozatszám (41913) vizuális megjelenítése. Tehát a Csere képletünk a fenti sorozatszám utolsó 3 számjegyét a következőre változtatja: " Nov " és a "419Nov" szöveges karakterláncot adja vissza.
Ahhoz, hogy az Excel REPLACE függvény helyesen működjön dátumokkal, a dátumokat először a TEXT függvény vagy a Hogyan alakítsunk dátumot szöveggé az Excelben című fejezetben bemutatott bármely más technika segítségével szöveges karakterláncokká alakíthatja. Alternatívaként a TEXT függvényt közvetlenül a REPLACE függvény old_text argumentumába is beágyazhatja:
=REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")
Kérjük, ne feledje, hogy a fenti képlet eredménye egy szöveges karakterlánc , ezért ez a megoldás csak akkor működik, ha nem tervezi a módosított dátumokat további számításokban felhasználni. Ha szöveges karakterláncok helyett dátumokra van szüksége, használja a DATEVALUE függvényt az Excel REPLACE függvény által visszaadott értékek dátumokká alakításához:
=DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy")), 4, 3, "Nov"))
Beágyazott REPLACE függvények egy cellában történő többszörös helyettesítéshez
Gyakran előfordulhat, hogy egynél több cserét kell végrehajtania ugyanabban a cellában. Természetesen elvégezhet egy cserét, a közbenső eredményt egy további oszlopba írhatja, majd ismét használhatja a REPLACE függvényt. Jobb és professzionálisabb megoldás azonban, ha a beágyazott REPLACE függvények amelyek lehetővé teszik, hogy egyetlen formulával több cserét hajtson végre. Ebben az összefüggésben a "beágyazás" azt jelenti, hogy egy függvényt egy másikba helyezünk.
Tekintsük a következő példát: Tegyük fel, hogy az A oszlopban van egy telefonszámok listája, amely "123456789" formátumú, és kötőjelek hozzáadásával szeretné, hogy a telefonszámok inkább telefonszámoknak tűnjenek. Más szóval, a célja az, hogy az "123456789"-ből "123-456-789" legyen.
Az első kötőjel beillesztése egyszerű. Írjon egy szokásos Excel Replace képletet, amely helyettesíti a következőt nulla karakter kötőjellel, azaz a cella 4. pozíciójába kötőjelet tesz:
=REPLACE(A2,4,0,"-")
A fenti helyettesítő képlet eredménye a következő:
Oké, és most még egy kötőjelet kell beillesztenünk a 8. pozícióba. Ehhez a fenti képletet egy másik Excel REPLACE függvényen belül helyezzük el. Pontosabban beágyazzuk a old_text argumentumát, így a második REPLACE függvény az első REPLACE által visszaadott értéket fogja kezelni, nem pedig az A2 cellában lévő értéket:
=REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")
Ennek eredményeként a telefonszámokat a kívánt formázásban kapja meg:
Hasonló módon használhat beágyazott REPLACE függvényeket, hogy a szöveges karakterláncokat dátumokká alakítsa, adott esetben egy előrevágott perjel (/) hozzáadásával:
=(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
Ezenkívül a fenti REPLACE formula DATEVALUE függvénnyel való kiegészítésével a szöveges karakterláncokat valódi dátumokká alakíthatja:
=DATEVALUE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
És természetesen nincs korlátozva az egy képleten belül beágyazható függvények száma (az Excel 2010, 2013 és 2016 modern változatai legfeljebb 8192 karaktert és legfeljebb 64 beágyazott függvényt engedélyeznek egy képletben).
Például 3 egymásba ágyazott REPLACE függvényt használhatsz, hogy egy A2-ben lévő számot dátumként és időpontként jeleníts meg:
=REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")
Az egyes cellákban eltérő pozícióban megjelenő karakterlánc helyettesítése
Eddig minden példában hasonló jellegű értékekkel foglalkoztunk, és minden egyes cellában azonos helyen végeztük el a helyettesítést. A valós életben azonban a feladatok gyakran ennél bonyolultabbak. A munkalapokon a helyettesítendő karakterek nem feltétlenül ugyanott szerepelnek minden cellában, ezért a az első karakter pozíciójának megkeresése A következő példa bemutatja, hogy miről beszélek.
Tegyük fel, hogy az A oszlopban van egy e-mail címzési lista, és az egyik cég neve "ABC"-ről "BCA"-ra változott. Tehát az összes ügyfél e-mail címzését ennek megfelelően kell frissítenie.
A probléma azonban az, hogy az ügyfélnevek különböző hosszúságúak, és ezért nem tudja pontosan megadni, hogy hol kezdődik a cégnév. Más szóval nem tudja, hogy milyen értéket kell megadnia az Excel REPLACE függvény start_num argumentumában. Ennek kiderítéséhez használja az Excel FIND függvényét, hogy meghatározza az első karakter pozícióját a "@abc" karakterláncban:
=FIND("@abc",A2)
Ezután adja meg a fenti FIND függvényt a REPLACE formula start_num argumentumában:
=REPLACE(A2, FIND("@abc",A2), 4, "@bca")
Tipp: Az Excel keresési és csere képletében a "@" betűt használjuk, hogy elkerüljük a véletlen cseréket az e-mail címek névrészében. Természetesen nagyon kicsi az esélye, hogy ilyen egyezések előfordulnak, de azért érdemes biztosra menni.
Amint az alábbi képernyőképen látható, a képletnek nem okoz gondot a régi szöveg megtalálása és kicserélése az új szöveggel. Ha azonban a kicserélendő szövegrészletet nem találja, a képlet a #VALUE! hibát adja vissza:
És azt szeretnénk, ha a képlet a hiba helyett az eredeti e-mail címet adná vissza. Tehát zárjuk be a FIND & REPLACE képletünket az IFERROR függvénybe:
=IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)
És ez a továbbfejlesztett formula tökéletesen működik, nem igaz?
A REPLACE függvény másik gyakorlati alkalmazása a cella első betűjének nagybetűvé tétele. Amikor nevek, termékek és hasonlók listájával foglalkozik, a fenti képlet segítségével az első betűt nagybetűre változtathatja.
Tipp: Ha a cseréket az eredeti adatokban szeretné elvégezni, egyszerűbb megoldás az Excel FIND és REPLACE párbeszédpanelének használata.
Excel SUBSTITUTE funkció
Az Excelben a SUBSTITUTE funkció egy adott karakter vagy szöveges karakterlánc egy vagy több példányát helyettesíti egy megadott karakterrel (karakterekkel).
Az Excel SUBSTITUTE függvény szintaxisa a következő:
SUBSTITUTE(text, régi_szöveg, új_szöveg, [instance_num])Az első három argumentum kötelező, az utolsó pedig opcionális.
- Szöveg - az eredeti szöveg, amelybe karaktereket kíván helyettesíteni. Megadható tesztlánc, cellahivatkozás vagy egy másik képlet eredménye.
- Old_text - a helyettesíteni kívánt karakter(ek).
- New_text - az új karakter(ek), amellyel a régi_szöveget helyettesíteni kell.
- Instance_num - a régi_szöveg azon előfordulása, amelyet ki akar cserélni. Ha kihagyja, a régi szöveg minden előfordulása az új szövegre fog változni.
Például az alábbi képletek mindegyike az A2 cellában az "1"-et "2"-vel helyettesíti, de különböző eredményeket ad vissza attól függően, hogy melyik számot adja meg az utolsó argumentumként:
=SUBSTITUTE(A2, "1", "2", 1)
- Az "1" első előfordulását "2"-vel helyettesíti.
=SUBSTITUTE(A2, "1", "2", 2)
- Az "1" második előfordulását "2"-vel helyettesíti.
=SUBSTITUTE(A2, "1", "2")
- Az "1" minden előfordulását "2"-vel helyettesíti.
A gyakorlatban a SUBSTITUTE függvényt a nem kívánt karakterek cellákból való eltávolítására is használják. Valós példákat lásd:
- Karakterek vagy szavak eltávolítása a karakterláncból
- Hogyan lehet törölni a nem kívánt karaktereket a cellákból
Megjegyzés: Az Excelben a SUBSTITUTE funkció a következő case-sensitive A következő képlet például az A2 cellában a nagybetűs "X" minden példányát "Y"-ra cseréli, de a kisbetűs "x" egyetlen példányát sem fogja helyettesíteni.
Több érték helyettesítése egyetlen képlettel (beágyazott SUBSTITUTE)
Az Excel REPLACE függvényéhez hasonlóan több SUBSTITUTE függvényt is beágyazhat egyetlen képletbe, hogy egyszerre több helyettesítést hajtson végre, azaz egyetlen képlettel több karaktert vagy részláncot helyettesítsen.
Tegyük fel, hogy van egy olyan szöveges karakterláncunk, mint " PR1, ML1, T1 " az A2 cellában, ahol a "PR" a "Project", az "ML" a "Milestone", a "T" pedig a "Task" (feladat) kifejezéseket jelenti. Azt szeretnénk, hogy a három kódot teljes nevekkel helyettesítsük. Ennek eléréséhez 3 különböző SUBSTITUTE képletet írhatunk:
=SUBSTITUTE(A2, "PR", "Projekt ")
=SUBSTITUTE(A2, "ML", "Mérföldkő ")
=SUBSTITUTE(A2, "T", "Feladat ")
Aztán fészkeljük őket egymásba:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Projekt "), "ML", "Mérföldkő "), "T", "Feladat ")
Vegyük észre, hogy a jobb olvashatóság érdekében minden new_text argumentum végén szóközt tettünk.
Az egyszerre több érték cseréjének más módjairól a Hogyan végezhetünk tömeges keresést és cserét az Excelben című témakörben tájékozódhat.
Excel REPLACE vs. Excel SUBSTITUTE
Az Excel REPLACE és SUBSTITUTE függvények nagyon hasonlítanak egymásra, mivel mindkettő a szöveges karakterláncok cseréjére szolgál. A két függvény közötti különbségek a következők:
- SUBSTITUTE egy vagy több példányok egy adott karakter vagy egy szöveges karakterlánc. Ha tehát ismeri a helyettesítendő szöveget, használja az Excel SUBSTITUTE függvényét.
- A REPLACE megváltoztatja a karaktereket egy megadott pozíció Ha tehát ismeri a helyettesítendő karakter(ek) pozícióját, használja az Excel REPLACE függvényét.
- Az Excel SUBSTITUTE függvénye lehetővé teszi egy opcionális paraméter (instance_num) hozzáadását, amely megadja, hogy melyik előfordulás a régi_szöveget új_szövegre kell cserélni.
Így használja a SUBSTITUTE és a REPLACE függvényeket az Excelben. Remélhetőleg ezek a példák hasznosnak bizonyulnak a feladatok megoldásában. Köszönöm, hogy elolvasták, és remélem, jövő héten találkozunk a blogon!
Gyakorlati munkafüzet letöltése
REPLACE és SUBSTITUTE képlet példák (.xlsx fájl)