Jedwali la yaliyomo
Katika somo hili, tutaangalia njia kadhaa za kupata na kubadilisha maneno, mifuatano, au vibambo vingi, ili uweze kuchagua ile inayofaa mahitaji yako.
Watu hutafutaje kwa kawaida katika Excel? Mara nyingi, kwa kutumia Tafuta & Badilisha kipengele, ambacho hufanya kazi vizuri kwa thamani moja. Lakini vipi ikiwa una makumi au hata mamia ya vitu vya kubadilisha? Hakika, hakuna mtu ambaye angetaka kufanya uingizwaji huo wote kwa mikono moja kwa moja, na kisha kuifanya tena wakati data inabadilika. Kwa bahati nzuri, kuna mbinu chache bora zaidi za kuchukua nafasi ya wingi katika Excel, na tutachunguza kila mojawapo kwa undani.
Tafuta na ubadilishe thamani nyingi kwa SUBSTITUTE iliyoainishwa
Njia rahisi zaidi ya kupata na kubadilisha maingizo mengi katika Excel ni kutumia kitendakazi SUBSTITUTE.
Mantiki ya fomula ni rahisi sana: unaandika vitendakazi vichache vya kibinafsi ili kubadilisha thamani ya zamani na mpya. . Na kisha, unaweka vitendaji hivyo kimoja hadi kingine, ili kila SUBSTITUTE inayofuata itumie matokeo ya SUBSTITUTE iliyotangulia kutafuta thamani inayofuata.
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( text, ) maandishi_ya_zamani1, maandishi_mapya1), maandishi_ya_zamani2, maandishi_mapya2), maandishi_ya_zamani3, maandishi_mpya3)Katika orodha ya maeneo katika A2:A10, tuseme unataka kubadilisha majina ya nchi yaliyofupishwa (kama vile FR , UK na USA ) kwa kamili.Kitendaji cha MassReplace kitafanya kazi tu kwenye kitabu cha kazi ambacho umeingiza msimbo. Ikiwa huna uhakika jinsi ya kufanya hili kwa usahihi, tafadhali fuata hatua zilizoelezwa katika Jinsi ya kuingiza msimbo wa VBA katika Excel.
Pindi msimbo unapoongezwa kwenye kitabu chako cha kazi, chaguo la kukokotoa litaonekana katika fomula akili - pekee. jina la kazi, si hoja! Ingawa, naamini sio jambo kubwa kukumbuka sintaksia:
MassReplace(input_range, find_range, replace_range)Wapi:
- Input_range - safu ya chanzo ambapo unataka kubadilisha thamani.
- Tafuta_fungu - herufi, mifuatano, au maneno ya kutafuta.
- Replace_range - herufi, mifuatano, au maneno ya kubadilisha nayo.
Katika Excel 365, kutokana na uhimili wa safu zinazobadilika, hii hufanya kazi kama fomula ya kawaida, ambayo inahitaji tu kuingizwa katika kisanduku cha juu (B2):
=MassReplace(A2:A10, D2:D4, E2:E4)
Katika Excel inayobadilika kabla, hii inafanya kazi kama fomula ya safu ya CSE ya mtindo wa zamani: unachagua masafa yote ya chanzo (B2:B10), chapa fomula, na ubonyeze Ctrl + Shift + Ingiza vitufe kwa wakati mmoja ili kuikamilisha.
Faida : mbadala inayofaa kwa chaguo maalum la kukokotoa LAMBDA katika Excel 2019 , Excel 2016 na matoleo ya awali
Kasoro : kitabu cha kazi lazima kihifadhiwe kama faili ya .xlsm iliyowezeshwa kwa wingi
Badilisha kwa wingi katika Excel kwa VBA macro
Ikiwa unapenda auto kuunganisha kazi za kawaida na macros, basi weweinaweza kutumia msimbo ufuatao wa VBA kutafuta na kubadilisha thamani nyingi katika safu.
Sub BulkReplace() Dim Rng As Range, SourceRng As Range, ReplaceRng As Range On Hitilafu Resume Next Set SourceRng = Application.InputBox( "Chanzo data: " , "Replace Bulk" , Application.Selection.Address, Type :=8) Err.Futa Ikiwa Sio SourceRng Si Kitu Kisha Weka ReplaceRng = Application.InputBox( "Badilisha safu:" , "Replace Bulk" , Type :=8) Kosa.Safisha Ikiwa Si ReplaceRng Si Kitu Basi Application.ScreenUpdating = Siyo Kwa Kila Rng Katika ReplaceRng.Safuwima(1).Cells SourceRng.Replace what:=Rng.Value, replacement:=Rng.Offset(0, 1).Thamani Inayofuata Application.ScreenUpdating = Kweli Mwisho Ikiwa Mwisho Ikiwa Mwisho NdogoIli kutumia makro mara moja, unaweza kupakua sampuli ya kitabu chetu cha kazi kilicho na msimbo. Au unaweza kuingiza msimbo kwenye kitabu chako cha kazi.
Jinsi ya kutumia jumla
Kabla ya kuendesha jumla, charaza thamani za zamani na mpya katika safu wima mbili zilizo karibu kama inavyoonyeshwa kwenye picha hapa chini ( C2:D4).
Na kisha, chagua chanzo chako cha data, bonyeza Alt + F8 , chagua BulkReplace macro, na ubofye Run .
Kama chanzo cha hasira kinapochaguliwa mapema, thibitisha tu marejeleo, na ubofye SAWA:
Baada ya hapo, chagua badilisha masafa , na ubofye SAWA:
Nimemaliza!
Manufaa : sanidi mara moja, tumia tena wakati wowote
Kasoro : macro inahitaji kuendeshwa na kila databadilisha
Tafuta nyingi na ubadilishe katika Excel kwa zana ya Uunganisho
Katika mfano wa kwanza kabisa, nilitaja kuwa nested SUBSTITUTE ndiyo njia rahisi zaidi ya kubadilisha thamani nyingi katika Excel. Ninakubali kwamba nilikosea. Ultimate Suite yetu hurahisisha mambo hata zaidi!
Ili kuchukua nafasi ya wingi katika lahakazi yako, nenda kwenye kichupo cha Ablebits Data na ubofye Zana Ndogo > Badilisha Mifuatano midogo .
Kisanduku cha mazungumzo Badilisha Mifuatano midogo kitatokea kukuuliza ubainishe safu ya Chanzo na safu ndogo mbalimbali.
Kwa safu mbili zilizochaguliwa, bofya kitufe cha Badilisha na utafute matokeo katika safu wima mpya iliyoingizwa upande wa kulia. ya data asili. Ndiyo, ni rahisi hivyo!
Kidokezo. Kabla ya kubofya Badilisha , kuna jambo moja muhimu kwako kuzingatia - kisanduku cha Si nyeti . Hakikisha umeichagua ikiwa ungependa kushughulikia herufi kubwa na ndogo kama herufi tofauti. Katika mfano huu, tunaweka alama kwenye chaguo hili kwa sababu tunataka tu kubadilisha mifuatano yenye herufi kubwa na kuacha tungo ndogo kama "fr", "uk", au "ak" ndani ya maneno mengine ikiwa sawa.
Ikiwa una hamu ya kujua ni shughuli gani zingine nyingi zinaweza kufanywa kwenye mifuatano, angalia Zana zingine za Msururu uliojumuishwa na Ultimate Suite yetu. Au bora zaidi, pakua toleo la tathmini hapa chini na ujaribu!
Hiyo ndiyo jinsi ya kupata na kubadilishamaneno mengi na wahusika mara moja katika Excel. Ninakushukuru kwa kusoma na kutumaini kukuona kwenye blogu yetu wiki ijayo!
Vipakuliwa vinavyopatikana
Pata nyingi na ubadilishe katika Excel (.xlsm file)
Ultimate Suite 14 -siku-toleo linalofanya kazi kikamilifu (.exe faili)
majina.Ili kuifanya, weka thamani za zamani katika D2:D4 na thamani mpya katika E2:E4 kama inavyoonyeshwa kwenye picha ya skrini iliyo hapa chini. Na kisha, weka fomula iliyo hapa chini katika B2 na ubonyeze Enter:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2:A10, D2, E2), D3, E3), D4, E4)
...na ubadilisho wote utafanywa mara moja:
Tafadhali kumbuka, mbinu iliyo hapo juu inafanya kazi tu katika Excel 365 inayoauni safu badilika.
Katika matoleo ya awali yanayobadilika ya Excel 2019, Excel 2016 na mapema, fomula inahitaji kuwekwa. iliyoandikwa kwa seli ya juu kabisa (B2), na kisha kunakiliwa hadi seli zilizo hapa chini:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, $D$2, $E$2), $D$3, $E$3), $D$4, $E$4)
Tafadhali zingatia kwamba, katika kesi hii, tunafunga thamani za uingizwaji kwa marejeleo kamili ya seli, kwa hivyo. hazitahama wakati wa kunakili fomula chini.
Kumbuka. Chaguo za kukokotoa za SUBSTITUTE ni nyeti-nyeti , kumaanisha kwamba unapaswa kuandika thamani za zamani ( maandishi_ya_zamani ) katika herufi sawa na zinavyoonekana katika data asili.
Rahisi kadri inavyowezekana, njia hii ina shida kubwa - unapokuwa na vipengee vingi vya kubadilisha, vitendaji vilivyowekwa huwa vigumu kudhibiti.
Faida : rahisi -kutekeleza; inatumika katika matoleo yote ya Excel
Kasoro : bora zaidi kutumika kwa idadi ndogo ya thamani za kupata/kubadilisha
Tafuta na ubadilishe maingizo mengi kwa XLOOKUP
Katika hali unapotafuta kubadilisha maudhui yote ya kisanduku , si sehemu yake, kitendakazi cha XLOOKUP kinafaa.
Hebu tusaidie.sema unayo orodha ya nchi kwenye safu A na unalenga kubadilisha vifupisho vyote na majina kamili yanayolingana. Kama ilivyo katika mfano uliopita, unaanza kwa kuingiza vipengee vya "Tafuta" na "Badilisha" katika safu wima tofauti (D na E mtawalia), kisha uingize fomula hii katika B2:
=XLOOKUP(A2, $D$2:$D$4, $E$2:$E$4, A2)
Imetafsiriwa kutoka lugha ya Excel hadi lugha ya binadamu, hivi ndivyo fomula hufanya:
Tafuta thamani ya A2 (lookup_value) katika D2:D4 (lookup_array) na urejeshe inayolingana kutoka E2:E4 (return_array). Iwapo haitapatikana, vuta thamani halisi kutoka kwa A2.
Bofya mara mbili kipini cha kujaza ili fomula inakiliwa kwa visanduku vilivyo hapa chini, na matokeo hayatakufanya usubiri:
Kwa kuwa kitendakazi cha XLOOKUP kinapatikana katika Excel 365 pekee, fomula iliyo hapo juu haitafanya kazi katika matoleo ya awali. Hata hivyo, unaweza kuiga tabia hii kwa urahisi kwa mchanganyiko wa IFERROR au IFNA na VLOOKUP:
=IFNA(VLOOKUP(A2, $D$2:$E$4, 2, FALSE), A2)
Kumbuka. Tofauti na SUBSTITUTE, vitendakazi vya XLOOKUP na VLOOKUP ni si nyeti kadiri , kumaanisha kwamba hutafuta thamani za utafutaji na kupuuza herufi. Kwa mfano, fomula yetu ingebadilisha FR na fr na Ufaransa .
Faida : matumizi yasiyo ya kawaida ya vitendaji vya kawaida; inafanya kazi katika matoleo yote ya Excel
Kasoro : inafanya kazi katika kiwango cha seli, haiwezi kuchukua nafasi ya sehemu ya maudhui ya seli
Badilisha nyingi kwa kutumia kitendakazi cha kujirudi cha LAMBDA
Kwa Microsoft365, Excel hutoa kazi maalum ambayo inaruhusu kuunda vitendaji maalum kwa kutumia lugha ya kawaida ya fomula. Ndio, nazungumza juu ya LAMBDA. Uzuri wa njia hii ni kwamba inaweza kubadilisha fomula ndefu sana na ngumu kuwa ngumu sana na rahisi. Zaidi ya hayo, hukuruhusu kuunda vitendaji vyako ambavyo havipo katika Excel, kitu ambacho hapo awali kiliwezekana kwa VBA pekee.
Kwa maelezo ya kina kuhusu kuunda na kutumia vitendaji maalum vya LAMBDA, tafadhali angalia mafunzo haya: Jinsi ya kufanya hivyo. kuandika kazi za LAMBDA katika Excel. Hapa, tutajadili mifano michache ya vitendo.
Faida : matokeo yake ni utendakazi maridadi na rahisi ajabu kutumia, bila kujali idadi ya jozi mbadala
Kasoro : inapatikana katika Excel 365 pekee; kitabu mahususi na hakiwezi kutumika tena kwenye vitabu tofauti vya kazi
Mfano 1. Tafuta na ubadilishe maneno / mifuatano mingi kwa wakati mmoja
Ili kubadilisha maneno au maandishi mengi kwa wakati mmoja, tumeunda desturi Kitendaji cha LAMBDA, kilichopewa jina MultiReplace , ambacho kinaweza kuchukua mojawapo ya fomu hizi:
=LAMBDA(text, old, new, IF(old"", MultiReplace(SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0)), text))
Au
=LAMBDA(text, old, new, IF(old="", text, MultiReplace(SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0))))
Zote mbili zinajirudia kazi zinazojiita. Tofauti iko tu katika jinsi sehemu ya kutoka inavyowekwa.
Katika fomula ya kwanza, chaguo za kukokotoa za IF hukagua kama orodha ya zamani si tupu (zamani"). Ikiwa TRUE, kitendakazi cha MultiReplace kinaitwa. Ikiwa FALSE, chaguo la kukokotoainarudisha maandishi katika umbo lake la sasa na kutoka.
Mfumo wa pili hutumia mantiki ya kinyume: ikiwa zamani ni tupu (old=""), basi rudisha maandishi na kutoka; vinginevyo piga MultiReplace .
Sehemu ya ujanja zaidi imekamilika! Kilichosalia kwako kufanya ni kutaja kitendakazi cha MultiReplace katika Kidhibiti cha Jina kama inavyoonyeshwa kwenye picha ya skrini hapa chini. Kwa miongozo ya kina, tafadhali angalia Jinsi ya kutaja kitendakazi cha LAMBDA.
Kitendakazi kikipata jina, unaweza kukitumia kama utendakazi mwingine wowote uliojengewa ndani.
Ipi kati ya tofauti mbili za fomula unazochagua, kutoka kwa mtazamo wa mtumiaji wa mwisho, sintaksia ni rahisi kama hii:
MultiReplace(text, old, new)Where:
- Maandishi - data chanzo
- Za zamani - thamani za kupata
- Mpya - thamani za kuchukua nafasi na
Kwa kuchukua mfano uliopita mbele kidogo, tubadilishe sio tu vifupisho vya nchi bali vifupisho vya serikali pia. Kwa hili, charaza vifupisho ( thamani za zamani ) katika safu wima D kuanzia D2 na majina kamili ( thamani mpya ) katika safu wima E kuanzia E2.
Katika. B2, weka kipengele cha MultiReplace:
=MultiReplace(A2:A10, D2, E2)
Gonga Enter na ufurahie matokeo :)
Jinsi fomula hii inavyofanya kazi
Kidokezo cha kuelewa fomula ni kuelewa kujirudia. Hii inaweza kuonekana kuwa ngumu, lakini kanuni ni rahisi sana. Na kila mmojaiteration, kazi ya kujirudia hutatua mfano mmoja mdogo wa tatizo kubwa. Kwa upande wetu, chaguo za kukokotoa za MultiReplace hupitia thamani za zamani na mpya na, kwa kila kitanzi, hufanya uingizwaji mmoja:
MultiReplace (SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0))
Kama ilivyo kwa vitendaji vilivyoorodheshwa vya SUBSTITUTE, matokeo ya SUBSTITUTE iliyotangulia inakuwa maandishi parameta kwa SUBSTITUTE inayofuata. Kwa maneno mengine, kwa kila simu inayofuata ya MultiReplace , chaguo za kukokotoa za SUBSTITUTE huchakata si mfuatano wa maandishi asilia, lakini matokeo ya simu iliyotangulia.
Ili kushughulikia vipengee vyote kwenye orodha ya ya zamani, tunaanza na seli ya juu kabisa, na kutumia kitendakazi cha OFFSET kusogeza safu mlalo 1 chini kwa kila mwingiliano:
OFFSET(old, 1, 0)
Vivyo hivyo hufanyika kwa new list:
OFFSET(new, 1, 0)
Jambo muhimu ni kutoa hatua ya kutoka ili kuzuia simu zinazojirudia zisiendelee milele. Inafanywa kwa usaidizi wa kitendakazi cha IF - ikiwa seli ya zamani haina kitu, kitendakazi hurejesha maandishi umbo lake la sasa na kutoka:
=LAMBDA(text, old, new, IF(old="", text, MultiReplace(…)))
au
=LAMBDA(text, old, new, IF(old"", MultiReplace(…), text))
Mfano 2. Badilisha herufi nyingi katika Excel
Kimsingi, chaguo za kukokotoa MultiReplace iliyojadiliwa katika mfano uliopita inaweza. shughulikia herufi binafsi pia, mradi kila herufi ya zamani na mpya imeingizwa katika kisanduku tofauti, sawasawa na majina yaliyofupishwa na kamili katika picha za skrini zilizo hapo juu.
Ikiwa ungependa kuingiza ya zamani.vibambo katika kisanduku kimoja na vibambo vipya kwenye kisanduku kingine, au chapa moja kwa moja kwenye fomula, kisha unaweza kuunda chaguo maalum la kukokotoa, linaloitwa ReplaceChars , kwa kutumia mojawapo ya fomula hizi:
=LAMBDA(text, old_chars, new_chars, IF(old_chars"", ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1)), text))
Au
=LAMBDA(text, old_chars, new_chars, IF(old_chars="", text, ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1))))
Kumbuka kutaja kitendakazi chako kipya cha Lambda katika Kidhibiti cha Jina kama kawaida:
Na utendakazi wako mpya maalum uko tayari kutumika:
ReplaceChars(maandishi, old_chars, new_chars)Wapi:
- Nakala - mifuatano asili
- zamani - herufi za kutafuta
- Mpya - herufi za kubadilisha na
Ili kuifanyia jaribio la uga, tufanye jambo ambalo mara nyingi hufanywa kwenye data iliyoagizwa - badala ya nukuu mahiri na apostrofi mahiri kwa nukuu moja kwa moja na apostrofi zilizonyooka.
Kwanza, tunaweka nukuu mahiri na kiapostrofi mahiri katika D2, nukuu moja kwa moja na apostrofi moja kwa moja katika E2 , ikitenganisha wahusika kwa nafasi kwa usomaji bora. (Tunapotumia kikomo sawa katika visanduku vyote viwili, hakitakuwa na athari yoyote kwenye matokeo - Excel itachukua nafasi ya nafasi na nafasi.)
Baada ya hapo, tunaingiza fomula hii katika B2:
=ReplaceChars(A2:A4, D2, E2)
Na upate matokeo hasa tuliyokuwa tukitafuta:
Pia inawezekana kuandika herufi moja kwa moja kwenye fomula. Kwa upande wetu, kumbuka tu "kunakili" nukuu moja kwa moja kama hii:
=ReplaceChars(A2:A4, "“ ” ’", """ "" '")
Jinsi fomula hii inavyofanya kazi
The ReplaceChars mizunguko ya utendaji kazi kupitia mifuatano ya old_chars na new_chars na hufanya ubadilishaji mmoja kwa wakati kuanzia herufi ya kwanza upande wa kushoto. Sehemu hii inafanywa na chaguo la kukokotoa SUBSTITUTE:
SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars))
Kwa kila marudio, kitendakazi cha KULIA huondoa herufi moja kutoka upande wa kushoto wa char_zamani na new_chars mifuatano, ili LEFT iweze kuchukua jozi inayofuata ya vibambo badala ya:
ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1))
Kabla ya kila simu inayojirudia, chaguo la kukokotoa la IF hutathmini mfuatano wa old_chars . Ikiwa si tupu, chaguo la kukokotoa linajiita. Mara tu herufi ya mwisho inapobadilishwa, mchakato wa kurudia utakamilika, fomula huirudisha maandishi katika umbo lake la sasa na kuondoka.
Kumbuka. Kwa sababu chaguo za kukokotoa za SUBSTITUTE zinazotumika katika fomula zetu kuu ni nyeti-nyeti , Lambdas ( MultiReplace na ReplaceChars ) huchukulia herufi kubwa na ndogo kama herufi tofauti.
Tafuta na ubadilishe kwa wingi UDF
Iwapo kitendakazi cha LAMBDA hakipatikani katika Excel yako, unaweza kuandika kitendakazi kilichobainishwa na mtumiaji kwa kubadilisha vitu vingi kwa njia ya kitamaduni kwa kutumia VBA.
Ili kutofautisha UDF na chaguo la kukokotoa la MultiReplace lililofafanuliwa LAMBDA, tutaitaja kwa njia tofauti, sema MassReplace . Msimbo wa chaguo za kukokotoa ni kama ifuatavyo:
Kama vitendaji vilivyoainishwa na LAMBDA, UDF ni kitabu cha kazi . Hiyo ina maana ya