Tabloya naverokê
Di vê tutoriyê de, em ê li çend awayan binihêrin ku hûn çend peyvan, rêzan, an tîpên kesane bibînin û biguhezînin, da ku hûn yeka ku herî baş li gorî hewcedariyên we ye hilbijêrin.
Mirov bi gelemperî li Excel çawa digerin? Bi piranî, bi bikaranîna Find & amp; Vebijêrk veguherîne, ku ji bo nirxên yekane baş dixebite. Lê heger hûn bi dehan an jî bi sedan hêmanên ku hûn li şûna xwe biguhezînin hebe? Bê guman, kes naxwaze wan hemî veguheztinan yek-bi-yek bi destan çêbike, û dûv re gava ku dane diguhezîne wê ji nû ve bike. Xwezî, çend awayên bibandortir hene ku meriv li Excel-ê bi girseyî biguhezîne, û em ê her yek ji wan bi hûrgulî lêkolîn bikin.
Bi SUBSTITUTE hêlînê re gelek nirxan bibînin û biguhezînin
Rêya herî hêsan a dîtin û cîhgirtina gelek navnîşan di Excel de bi karanîna fonksiyona SUBSTITUTE ye.
Mantiqa formula pir hêsan e: hûn çend fonksiyonên takekesî dinivîsin da ku nirxek kevn bi nirxek nû veguherînin. . Û dûv re, hûn wan fonksîyonan yeko yeko hêlîn dikin, da ku her SUBSTITUTEya paşîn derana SUBSTITUTE ya berê bikar bîne da ku li nirxa din bigere.
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( text, kevin_text1, new_text1), text_kevn2, new_text2), text_kevn3, new_text3)Di navnîşa cîhên di A2:A10 de, bifikirin ku hûn dixwazin navên welat ên kurtkirî (wek FR , UK û USA ) bi tevahî veguherînin.Fonksiyona MassReplace dê tenê di pirtûka xebatê ya ku we kod lê kiriye de bixebite. Heke hûn nebawer in ka meriv çawa wiya rast dike, ji kerema xwe gavên ku di beşa Çawa koda VBA-ê li Excel têxe diyar kirin bişopînin.
Dema ku kod li pirtûka weya xebatê were zêdekirin, fonksiyon dê di formula intellisense de xuya bibe - tenê navê fonksiyonê, ne argûman! Her çend, ez bawer dikim ku bîrkirina hevoksaziyê ne tiştek mezin e:
MassReplace(navbera_ketina, find_range, şûna_range)Li ku:
- Rêbaza_kevndanê - rêza çavkaniyê ku tu dixwazî nirxan biguherînî.
- Find_range - tîp, rêzik an jî peyvên ku lê bigere.
- Replace_range - karakter, rêzik, an jî peyvên ku bi wan re werin veguheztin.
Di Excel 365 de, ji ber piştgirîkirina rêzikên dînamîkî, ev wekî formula normal dixebite, ku tenê pêdivî ye ku di şaneya jorîn (B2) de were nivîsandin:
=MassReplace(A2:A10, D2:D4, E2:E4)
Di Excel-a pêş-dînamîk de, ev wekî formula array CSE-ya kevnar kar dike: hûn hemî rêza çavkaniyê hilbijêrin (B2:B10), binivîsin formula, û bişkojkên Ctrl + Shift + Enter bi hevdemî bikirtînin da ku wê temam bikin.
Awantajên : alternatîfek maqûl a fonksiyonek LAMBDA ya xwerû ya li Excel 2019 , Excel 2016 û guhertoyên berê
Kêmasî : Divê pirtûka xebatê wekî pelek .xlsm-ya makro-çalakkirî were hilanîn
Li Excel-ê bi makroya VBA-yê bi girseyî veguherînin
Heke hûn ji otoyê hez dikin peywirên hevpar bi makroyan re hevber kirin, paşê hûndikare koda VBA-ya jêrîn bikar bîne da ku çend nirxan di nav rêzekê de bibîne û biguhezîne.
Sub BulkReplace() Dim Rng Wek Rêze, SourceRng Wek Rêze, ReplaceRng Wek Rêjeya Li Ser Çewtiyê Resume Next Set SourceRng = Application.InputBox( "Daneyên çavkaniyê: " , "Bulk Replace" , Application.Selection.Navnîşan, Tîp :=8) Err. Paqij bike Ger Ne ÇavkanîRng Ne Tiştek e Paşê ReplaceRng saz bike = Application.InputBox( "Replace range:" , "Bulk Replace" , Type :=8) Err.Clear If Not ReplaceRng Is Nothing Hingê Application.ScreenUpdating = Ji bo Her Rng Di ReplaceRng.Columns(1) de derewîn Application.ScreenUpdating = Rast Dawî Heke Biqede Heke End SubJi bo ku hûn tavilê makroyê bikar bînin, hûn dikarin pirtûka meya xebatê ya ku kod tê de ye dakêşin. An jî hûn dikarin kodê têxin pirtûka xweya xebatê.
Makroyê çawa bi kar tînin
Berî ku makroyê bimeşîne, nirxên kevin û yên nû di du stûnên cîran de binivîsin wek ku di wêneya jêrîn de tê nîşandan ( C2:D4).
Û paşê, daneya çavkaniya xwe hilbijêrin, Alt + F8 bikirtînin, makroya BulkReplace hilbijêrin û bikirtînin Run .
Ji ber ku çavkanî rage ji berê ve hatî hilbijartin, tenê referansê rast bikin, û OK bikirtînin:
Piştî wê, li şûna rêzê hilbijêre, û OK bitikîne:
Dê!
Awantaj : carekê saz bike, her dem ji nû ve bi kar bîne
Kêmasî : pêdivî ye ku makro bi her daneyê re were xebitandinGuhertin
Di Excel de bi amûra Substring re gelek peydakirin û şûna wan
Di mînaka yekem de, min behs kir ku SUBSTITUTE nested awayê herî hêsan e ku meriv gelek nirxan di Excel de biguhezîne. Ez qebûl dikim ku ez xelet bûm. Suite meya Ultimate tiştan hîn hêsantir dike!
Ji bo ku hûn di pelgeya xebata xwe de bi girseyî veguherînin, berê xwe bidin tabloya Ablebits Data û bikirtînin Amûrên Binerdê > Binxêzan biguherînin .
Dê qutiya diyalogê ya Berçengan Biguherînin derkeve holê ku ji we tê xwestin ku hûn rêzika Çavkanî û <1 diyar bikin. Rêzeya binavçete .
Her du rêzên hilbijartî, bişkoka Li şûna bikirtînin û encaman di stûnek nû ya ku li rastê tê danîn de bibînin. ji daneyên orîjînal. Erê, ew qas hêsan e!
Tip. Berî ku hûn li Replace bikirtînin, tiştek girîng heye ku hûn bifikirin - qutika hesas-qezenc . Ger hûn bixwazin tîpên mezin û piçûk wekî tîpên cihêreng bi kar bînin, pê ewle bin ku wê hilbijêrin. Di vê nimûneyê de, em vê vebijarkê îşaret dikin ji ber ku em tenê dixwazin rêzikên sermayeyî biguhezînin û jêr-rêzikên mîna "fr", "uk", an "ak" di nav peyvên din de saxlem bihêlin.
Heke hûn meraq dikin ku zanibin ka çi operasyonên din ên mezin dikarin li ser têlan bêne kirin, Amûrên Binstringê yên din ên ku di nav Suite Ultimate me de hene bibînin. An jî hê çêtir, guhertoya nirxandinê ya li jêr dakêşin û wê biceribînin!
Bi vî rengî meriv dikare bibîne û biguhezînedi Excel de gelek peyv û karakter bi yekcarî. Ez spasiya we dikim ji bo xwendinê û hêvî dikim ku hefteya pêş me we li ser bloga xwe bibînim!
Daxistinên berdest
Di Excel de (pelê .xlsm) pirrjimar bibînin û biguhezînin
Ultimate Suite 14 Guhertoya rojane ya bi tevahî fonksiyonel (pelê .exe)
navan.Ji bo ku wê were kirin, di D2:D4 de nirxên kevin û di E2:E4 de jî nirxên nû binivîsin mîna ku di dîmena jêrîn de têne xuyang kirin. Û dûv re, formula jêrîn têxe B2 û Enter bikirtînin:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2:A10, D2, E2), D3, E3), D4, E4)
…û hûn ê hemî veguheztin di yekcar de bikin:
Ji kerema xwe bala xwe bidin, nêzîkatiya jorîn tenê di Excel 365 de dixebite ku rêzikên dînamîkî piştgirî dike.
Di guhertoyên pêş-dînamîkî yên Excel 2019, Excel 2016 û berê de, pêdivî ye ku formula were ji bo şaneya herî jorîn (B2) hatiye nivîsandin, û dûv re li şaneyên jêrîn tê kopî kirin:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, $D$2, $E$2), $D$3, $E$3), $D$4, $E$4)
Ji kerema xwe bala xwe bidin ku, di vê rewşê de, em nirxên veguheztinê bi referansên şaneya mutleq kilît dikin, ji ber vê yekê dema kopîkirina formulê berjêr dibe ew ê neguherin.
Nîşe. Fonksîyona SUBSTITUTE hesas-qezenc e , yanî divê hûn nirxên kevin ( nivîsa_kevn ) di heman tîpê de binivîsin ku ew di daneya orîjînal de xuya dikin.
Bi qasî ku dibe bila bibe, vê rêbazê kêmasiyek girîng heye - dema ku hûn bi dehan hêmanên ku hûn biguhezînin hebin, rêvebirina fonksiyonên hêlînê pir dijwar dibin.
Awantajên : hêsan -bicihkirin; di hemî guhertoyên Excel de tê piştgirî kirin
Dawazî : çêtir e ku meriv ji bo hejmarek sînordar nirxan bibîne/guhezîne
Li gelek navnîşan bi XLOOKUP-ê bigerin û biguhezînin
Di rewşa ku hûn lê digerin ku tevahiya naveroka şaneyê biguherînin , ne beşa wê, fonksiyona XLOOKUP bi kêr tê.
Werin embêje di stûna A de navnîşek we ya welatan heye û armanc dikin ku hûn hemî kurtenivîsan bi navên tam ên têkildar veguherînin. Mîna di mînaka berê de, hûn dest bi danîna hêmanên "Find" û "Replace" di stûnên cihê de (D û E) dikin, û dûv re vê formulê di B2 de têkevin:
=XLOOKUP(A2, $D$2:$D$4, $E$2:$E$4, A2)
Ji zimanê Excel hatiye wergerandin bo zimanê mirovî, li vir formula çi dike:
Li nirxa A2 (lookup_value) li D2:D4 (lookup_array) bigerin û ji E2:E4 (return_array) lihevhatinek vegerînin. Ger nehate dîtin, nirxa orîjînal ji A2 bikişîne.
Du caran li ser destikê dagirtinê bikirtînin da ku formula li şaneyên jêrîn were kopî kirin, û encam dê we li bendê nehêle:
Ji ber ku fonksiyona XLOOKUP tenê di Excel 365 de heye, formula jorîn dê di guhertoyên berê de nexebite. Lêbelê, hûn dikarin bi tevliheviya IFERROR an IFNA û VLOOKUP re bi hêsanî vê tevgerê bişibînin:
=IFNA(VLOOKUP(A2, $D$2:$E$4, 2, FALSE), A2)
Nîşe. Berevajî SUBSTITUTE, fonksîyonên XLOOKUP û VLOOKUP ne hesas-qeydeyî ne , yanî ew li nirxên lêgerînê digerin û guh nadin pîvaza tîpan. Mînakî, formula me dê hem FR û hem jî fr bi Fransa biguherîne.
Awantaj : bikaranîna neasayî ya fonksiyonên asayî; di hemî guhertoyên Excel de dixebite
Dawazî : li ser astek şaneyê dixebite, nikare beşek ji naveroka hucreyê biguhezîne
Gotina pirjimar bi karanîna fonksiyona LAMBDA ya paşverû
Ji bo Microsoft365 aboneyên, Excel fonksiyonek taybetî peyda dike ku destûrê dide afirandina fonksiyonên xwerû bi karanîna zimanek formula kevneşopî. Erê, ez behsa LAMBDA dikim. Bedewiya vê rêbazê ev e ku ew dikare formûlek pir dirêj û tevlihev veguhezîne formek pir tevlihev û hêsan. Wekî din, ew dihêle hûn fonksiyonên xwe yên ku di Excel de tune biafirînin, tiştek ku berê tenê bi VBA-yê gengaz bû.
Ji bo agahdariya berfireh li ser çêkirin û karanîna fonksiyonên LAMBDA yên xwerû, ji kerema xwe vê dersê binihêrin: Çawa ji bo nivîsandina fonksiyonên LAMBDA li Excel. Li vir, em ê çend mînakên pratîkî nîqaş bikin.
Awantajên : Encam fonksiyonek xweşik û ecêb hêsan e ku tê bikar anîn, bêyî ku hejmara cotên veguheztinê hebe
Kêmasî : tenê di Excel 365 de heye; Pirtûka xebatê ya taybet e û nikare ji nû ve li pirtûkên xebatê yên cihêreng were bikar anîn
Mînak 1. Bi yekcarî li gelek peyvan / rêzikan bigerin û biguhezînin
Ji bo ku gelek peyvan an nivîsê di yek gavê de biguhezînin, me xwerûyek çêkir. Fonksiyona LAMBDA, bi navê MultiReplace , ku dikare yek ji van awayan bigire:
=LAMBDA(text, old, new, IF(old"", MultiReplace(SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0)), text))
An
=LAMBDA(text, old, new, IF(old="", text, MultiReplace(SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0))))
Herdu jî paşveger in fonksiyonên ku ji xwe re dibêjin. Cûdahî tenê di awayê damezrandina xala derketinê de ye.
Di formula yekem de, fonksiyona IF kontrol dike ka lîsteya kevin ne vala ye (kevn""). Ger RAST be, fonksiyona MultiReplace tê gotin. Ger FALSE, fonksiyonê text forma xweya niha vedigerîne û derdikeve.
Formula duyemîn mantiqa berevajî bikar tîne: heke old vala be (old=""), wê hingê vegere text û derkeve; wekî din gazî MultiReplace bikin.
Beşê herî dijwar pêk tê! Ya ku ji we re maye ku hûn bikin ev e ku hûn fonksiyona MultiReplace di Rêvebirê Navê de wekî ku di dîmena jêrîn de tê xuyang kirin bi nav bikin. Ji bo rêwerzên berfireh, ji kerema xwe binihêrin Meriv çawa fonksiyonek LAMBDA bi nav dike.
Dema ku fonksiyon navek werdigire, hûn dikarin wê mîna her fonksiyonek din a çêkirî bikar bînin.
Ji du guhertoyên formulê kîjan ku hûn hilbijêrin, ji perspektîfa bikarhênerê dawî, hevoksazî bi vî rengî hêsan e:
MultiReplace(text, kevn, nû)Li ku:
- Nivîs - Daneyên çavkaniyê
- Kevn - Nirxên ku têne dîtin
- Nû - nirxên ku werin şûna
Nimûneya berê hinekî pêşdetir bigerin, em ne tenê kurtenivîsên welat, lê kurtenivîsên dewletê jî biguherînin. Ji bo vê, di stûna D-yê de ku bi D2-yê dest pê dike kurtenivîsên ( nirxên kevn ) û di stûna E-yê de bi E2-yê dest pê dike navên tam ( nû nirxên) binivîsin.
Di B2, têkevin fonksiyona MultiReplace:
=MultiReplace(A2:A10, D2, E2)
Lêxin Enter û ji encaman kêfê bikin :)
Ev formula çawa dixebite
Nîşana têgihîştina formulê têgihîştina vegerê ye. Dibe ku ev tevlihev xuya bike, lê prensîb pir hêsan e. Bi herdubarekirin, fonksiyonek vegerî mînakek piçûk a pirsgirêkek mezintir çareser dike. Di rewşa me de, fonksiyona MultiReplace di nav nirxên kevin û yên nû de digere û bi her lûleyê re yek veguheztinê pêk tîne:
MultiReplace (SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0))
Wekî fonksiyonên SUBSTITUTE hêlîn, encama SUBSTITUTE ya berê dibe parametreya text ji bo SUBSTITUTE ya din. Bi gotineke din, li ser her bangewaziya paşîn a MultiReplace , fonksiyona SUBSTITUTE ne rêzika nivîsê ya orîjînal, lê derketina bangewaziya berê pêvajo dike.
Ji bo birêvebirina hemî hêmanên li ser <1 Lîsteya>kevn , em bi şaneya herî jorîn dest pê dikin, û fonksiyona OFFSET bikar tînin da ku bi her hevberdanê re 1 rêzek ber bi jêr ve biçînin:
OFFSET(old, 1, 0)
Heman tişt ji bo tê kirin. navnîşa nû :
OFFSET(new, 1, 0)
Ya girîng ew e ku hûn xala derketinê peyda bikin da ku rê li ber bangên paşverû her û her bidomînin. Ew bi alîkariya fonksiyona IF pêk tê - heke şaneya kevin vala be, fonksiyon text forma xweya niha vedigerîne û derdikeve:
=LAMBDA(text, old, new, IF(old="", text, MultiReplace(…)))
an
=LAMBDA(text, old, new, IF(old"", MultiReplace(…), text))
Mînak 2. Di Excel de gelek tîpan biguherînin
Di prensîbê de, fonksiyona MultiReplace ku di mînaka berê de hatî nîqaş kirin dikare tîpên takekesî jî bişopînin, bi şertê ku her karakterek kevin û nû di şaneyek cihê de were nivîsandin, tam mîna navên kurtkirî û tam ên di dîmenên jorîn de.
Heke hûn çêtir dixwazin tîpa kevin têkevintîpên di hucreyekê de û karakterên nû di şaneyek din de, an rasterast wan di formula de binivîsin, wê hingê hûn dikarin fonksiyonek xwerû ya din, bi navê ReplaceChars , bi karanîna yek ji van formulan biafirînin:
=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))
An
=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))))
Bînin bîra xwe ku wekî her car di Rêvebirê Navê de fonksiyona xweya Lambda ya nû bi nav bikin:
Û fonksiyona weya xwerû ya nû ji bo karanînê amade ye:
ReplaceChars(nivîsar, tîpên_kevin, tîpên_new)Li ku:
- Nivîs - rêzikên eslî
- Kevn - tîpên ku li wan bigerin
- Nû - tîpên ku werin şûna wan
Ji bo ceribandina zeviyê bidin, werin em tiştekî bikin ku pirê caran li ser daneya îthalkirî tê kirin - bêjeyên biaqil û apostrofên jîr bi tîpên rast û apostrofên rast biguhezînin.
Pêşîn, em biwêjên biaqil û apostrofên biaqil di D2-ê de, li E2-yên rast û apostrofên rast dinivîsin , veqetandina karakteran bi cihan ji bo xwendina çêtir. (Ji ber ku em di her du hucreyan de heman veqetandek bikar tînin, ew ê bandorek li ser encamê neke - Excel dê tenê cîhek bi cîhekî biguhezîne.)
Piştî vê yekê, em vê formulê di B2 de dinivîsin:
=ReplaceChars(A2:A4, D2, E2)
Û tam encamên ku em lê digeriyan bistînin:
Di heman demê de gengaz e ku meriv tîpan rasterast di formulê de binivîsîne. Di doza me de, tenê ji bîr mekin ku hûn biwêjên rasterast bi vî rengî "duber bikin":
=ReplaceChars(A2:A4, "“ ” ’", """ "" '")
Ev formula çawa dixebite
ReplaceChars fonksîyon di nav rêzên chars_kevn û new_chars de dizivire û her carê ji tîpa yekem a li milê çepê dest pê dike yek diguherîne. Ev beş ji hêla fonksiyona SUBSTITUTE ve tê çêkirin:
SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars))
Bi her dubarekirinê re, fonksiyona RIGHT yek karakterek ji çepê ya her du karakterên_kevn û derdixe. new_chars rêzikên, da ku LEFT bikaribe cotê tîpên din ji bo veguheztinê bîne:
ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1))
Berî her bangek vegerî, fonksiyona IF rêzika chars_old dinirxîne. . Ger ew ne vala be, fonksiyona xwe gazî dike. Hema ku karaktera dawî hat guhertin, pêvajoya dubarekirinê bi dawî dibe, formula text forma xweya niha vedigerîne û derdikeve.
Nîşe. Ji ber ku fonksiyona SUBSTITUTE ya ku di formulên me yên bingehîn de tê bikar anîn hesas-qezenc e , her du Lambda ( MultiReplace û ReplaceChars ) tîpên mezin û piçûk wekî tîpên cûda digirin dest.
Bi UDF-ê bi girseyî bibînin û biguhezînin
Heke fonksiyona LAMBDA di Excel-a we de peyda nebe, hûn dikarin fonksiyonek diyarkirî ya bikarhêner ji bo pir-guheztinê bi rengek kevneşopî bi karanîna VBA-yê binivîsin.
Ji bo ku UDF-ê ji fonksiyona MultiReplace -ya LAMBDA-ya diyarkirî cuda bikin, em ê navên wê cuda bikin, bibêjin MassReplace . Koda fonksiyonê wiha ye:
Fonksiyon MassReplace(InputRng Wek Range, FindRng Wek Range, ReplaceRng Wek Range) Wek Guherto () DimarRes() Wek Guhertoya 'array ji bo hilanîna encaman Dim arSearchReplace(), sTmp Wek String' array ku li kuderê cotan peyda/guhezîne, rêzika demkî Dim iFindCurRow, cntFindRows Wek Dirêj 'indeksa rêza heyî ya rêzika SearchReplace, hejmartin rêzikan Dim iInputCurRow, iInputCurCol, cntInputRows, cntInputCols Heya ku 'indeksa rêza heyî ya di rêza çavkaniyê de, nîşana stûna heyî ya di rêza çavkaniyê de, hejmartina rêzan, jimartina stûnan cntInputRows = InputRng.Rows.Hejmar cnt .Columns.Count cntFindRows = FindRng.Rows.Count ReDim arRes(1 Bo cntInputRows, 1 Ji bo cntInputCols) ReDim arSearchReplace(1 Ji bo cntFindRows, 1 Ji 2) 'amadekirina rêzeya peyda/guheztina cotan a find/replace arRes iFindCurRow, 1) = FindRng.Cells(iFindCurRow, 1).Nirx arSearchReplace(iFindCurRow, 2) = ReplaceRng.Cells(iFindCurRow, 1).Value Next 'Lêgerîn û li şûna di çarçoveya çavkaniyê de Ji Bo iInputCurRownC = Ji bo iFindCurRownC 1 Ji bo cntInputCols sTm p = InputRng.Cells(iInputCurRow, iInputCurCol).Nirx 'Li her şaneyê hemû cotên peyda/veguhezîne Ji bo iFindCurRow = 1 Ji bo cntFindRows sTmp = Biguherîne(sTmp, arSearchReplace(iFindCurRow, 1,PiştreplaceSearch) (iInputCurRow, iInputCurCol) = sTmp Next Next MassReplace = ArRes End FunctionWekî fonksiyonên diyarkirî yên LAMBDA, UDF berfirehiya pirtûka xebatê ne . Wateya wê