Tabloya naverokê
Ev tutorial dê fêrî we bike ka meriv çawa bi karanîna formûlên xwemalî û fonksiyonên xwerû nivîsê ji hejmarên li Excel veqetîne. Her weha hûn ê fêr bibin ka meriv çawa nivîs û jimareyan dike du stûnên cihê.
Vê bifikire: hûn daneyên xav ji bo analîzê distînin û fêr dibin ku jimar di yek stûnê de bi nivîsê re têne tevlihev kirin. Di pir rewşan de, bê guman ew ê hêsantir be ku meriv wan di stûnên cihê de ji bo lêkolînek nêzîktir hebin.
Heke hûn bi daneyên homojen re dixebitin, dibe ku hûn fonksiyonên LEFT, RIGHT, û MID bikar bînin da ku vekêşanê derxînin. heman hejmara tîpan ji heman pozîsyonê. Lê ew ji bo ceribandinên laboratîf senaryoyek îdeal e. Di jiyana rast de, bi îhtîmalek mezin hûn bi daneyên cihêreng re mijûl dibin ku hejmar li pêş nivîsê, piştî nivîsê an di navbera nivîsê de têne. Mînakên jêrîn tam ji bo vê rewşê çareseriyê peyda dikin.
Çawa meriv nivîsê jê dike û jimareyan di hucreyên Excel de digire
Çareserî di Excel 365, Excel 2021 de dixebite , û Excel 2019
Microsoft Excel 2019 çend fonksiyonên nû destnîşan kir ku di guhertoyên berê de tune ne, û em ê yek ji van fonksiyonan, ango TEXTJOIN, bikar bînin da ku tîpên nivîsê ji şaneyek derxînin. hejmaran dihewîne.
Formula giştî ev e:
TEXTJOIN("", RAST, IFERROR(MID( hucre, ROW(INDIRECT("1:"&LEN( hucre))), 1) *1, ""))Di Excel 365 û 2021 de, ev yek jî dê bixebite:
TEXTJOIN("", RAST,IFERROR(MID( hucre, SEQUENCE(LEN( hucre)), 1) *1, ""))Di nihêrîna pêşîn de, dibe ku formula hinekî tirsnak xuya bike, lê ew kar dikin :)
Mînakî, ji bo rakirina nivîsê ji hejmarên di A2 de, yek ji formûlên jêrîn di B2 de têkevin, û dûv re wê li çend şaneyan kopî bikin.
Di Excel 365 - 2019 de:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2))), 1) *1, ""))
Di Excel 2019 de, divê ew wekî formula array bi Ctrl + Shift + Enter têkevin. Di array dînamîkî de Excel, ew wekî formula normal ku bi bişkoja Enter ve hatî temam kirin dixebite.
Di Excel 365 û 2021 de:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1, ""))
Di encamê de, hemî tîpên nivîsê ne ji şaneyek tê derxistin û jimar têne girtin:
Ev formula çawa dixebite:
Ji bo ku mantiqê çêtir fam bikin, werin em dest bi lêkolînê bikin formula ji hundurê:
Hûn ROW(INDIRECT("1:"&LEN(string))) an SEQUENCE(LEN(string)) bikar tînin da ku rêzek hejmarên ku bi tevahî hejmar re têkildar biafirînin. tîpên di rêzika çavkaniyê de, û dûv re wan hejmarên rêzdar wekî jimareyên destpêkê bi fonksiyona MID-ê bidin. Di B2 de, ev beşa formulê weha xuya dike:
MID(A2, {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}, 1)
Fonksiyon MID her karakterek ji A2-ê bi ya yekem dest pê dike derdixe û wan wekî rêzek vedigerîne:
{"2";"1";"0";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
Ev array bi 1-ê tê zêdekirin. Nirxên jimareyî bê guhertin dimînin, dema ku pirkirina karakterek nehejmarî #VALUE encam dide! xeletî:
{2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
Fonksiyon IFERROR bi rê ve dibevan xeletiyan û rêzikên vala li şûna wan digire:
{2;1;0;"";"";"";"";"";"";"";"";"";"";"";""}
Ev rêza dawîn ji fonksiyona TEXTJOIN re tê servîskirin, ku nirxên nevala di rêzê de ( ignore_empty argumana TRUE hate danîn) ji bo veqetandekê rêzek vala ("") bikar tîne:
TEXTJOIN("", TRUE, {2;1;0;"";"";"";"";"";"";"";"";"";"";"";""})
Serişte. Ji bo Excel 2016 - 2007, çareseriyek jî heye, lê formula pir tevlihevtir e. Hûn dikarin wê di vê tutoriyê de bibînin: Meriv çawa jimareyan li Excel derdixe.
Fonksiyonek xwerû ji bo rakirina nivîsê ji hejmaran
Çareserî ji bo hemî guhertoyên Excel dixebite
Heke hûn guhertoyek kevintir a Excel bikar tînin an jî formulên jorîn bibînin zehmet e ku were bibîranîn, tiştek nahêle ku hûn fonksiyona xwe bi hevoksaziyek hêsan û navek bikarhêner-dostane wekî RemoveText biafirînin. Fonksiyona diyarkirî ya bikarhêner (UDF) dikare bi du awayan were nivîsandin:
Koda VBA 1:
Li vir, em li her karakterek di rêzika çavkaniyê de yek bi yek mêze dikin. yek û kontrol bikin ka ew hejmar e an na. Ger jimareyek, karakter li rêzika encamî tê zêdekirin.
Fonksiyon RemoveText(str Wek String) Dim sRes As String sRes = "" Ji bo i = 1 Ji Len(str) Heke Rast = IsHejmar(Navenda(str, i , 1)) Paşê sRes = sRes & amp; Mid(str, i, 1) End If Next i RemoveText = sRes End FunctionKoda VBA 2:
Kodê ji bo pêvajoyek birêkûpêk nesneyekê diafirîne. Bi karanîna RegExp, em ji xeynî reqemên 0-9 hemî tîpan ji rêzika çavkaniyê radikin.
Fonksiyon RemoveText(str Wek String) Wek String Bi CreateObject ("VBScript.RegExp") .Global = True .Pattern = "[^0-9]" RemoveText = .Replace(str, "") Bi Endam Fonksiyon BiqedeLi ser pelên xebatê yên piçûk, her du kod dê bi heman rengî baş bikin. Li ser pelên xebatê yên mezin ên ku fonksiyonê bi sedan an bi hezaran carî tê gotin, koda 2 ya ku VBScript.RegExp bikar tîne dê zûtir bixebite.
Gavên hûrgulî ji bo têxistina kodê di pirtûka xwe de li vir têne dîtin: Meriv çawa VBA têxe koda di Excel de.
Hûn kîjan nêzîkatiyê hilbijêrin, ji perspektîfa bikarhênerê dawî, fonksiyona jêbirina nivîsê û hiştina hejmaran bi vî rengî hêsan e:
RemoveText(string)Mînakî, ji bo tîpên ne-hejmarî ji hucreya A2 derxînin, formula di B2 de ev e:
=RemoveText(A2)
Tenê wê li stûnê kopî bikin, û hûn ê vê encamê bistînin:
Nîşe. Hem formulên xwemalî hem jî fonksiyona xwerû rêzika hejmarî derdixin. Ji bo ku wê bibe jimarek, encamê bi 1-ê zêde bikin, an sifir lê zêde bikin, an jî formula di fonksiyona VALUE de bipêçin. Mînakî:
=RemoveText(A2) + 0
=VALUE(RemoveText(A2))
Meriv çawa jimareyan ji rêzika nivîsê ya di Excel de derxîne
Çareserî di Excel 365, Excel 2021, û Excel de dixebite 2019
Formulên rakirina jimareyan ji rêzikek alfabetîk pir dişibin yên ku di mînaka berê de hatine nîqaş kirin.
Ji bo Excel 365 - 2019:
TEXTJOIN(" ", RAST, IF(ISERR(MID( hucre , RÊZ(INDIRECT("1:"&LEN( hucre ) )), 1) *1), MID( hucre , ROW(INDIRECT("1:"&LEN( hucre ))), 1), ""))Di Excel 2019 de, ji bîr mekin ku hûn wê bikin formula array bi pêlkirina bişkokên Ctrl + Shift + Enter bi hev re.
Ji bo Excel 365 û 2021:
TEXTJOIN("", RAST, IF(ISERROR(MID( hucre , SEQUENCE(LEN( hucre 1) *1), MID ( hucre , SEQUENCE(LEN( hucre )), 1), ""))Mînakî, ji bo derxistina jimareyan ji rêzek di A2 de, formula ev e:
=TEXTJOIN("", TRUE, IF(ISERR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2) )), 1) *1), MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1), ""))
An
=TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), ""))
Di encamê de, hemî hejmar ji şaneyek têne derxistin û tîpên nivîsê têne parastin:
Wek ku di dîmena jorîn de jî tê xuyang kirin, formula tîpên jimareyî ji her cîhekî di rêzekê de jê dike: di destpêkê de, di dawiyê de û di navîn de. Lêbelê, hişyariyek heye: ger rêzek bi jimarekê dest pê dike û li dûv valahiyek , ew valahî tê parastin, ku pirsgirêkek cîhên sereke çêdike (wek di B2 de).
Ji bo jinavbirina cihên zêde berî nivîsê , formula di fonksiyona TRIM de bi vî rengî bipêçin:
=TRIM(TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), "")))
Naha, encamên we bi tevahî bêkêmasî ne!
Ev formula çawa dixebite:
Di eslê xwe de, formula mîna ku di mînaka berê de hatî ravekirin dixebite. Cûdahî ev e ku, ji rêzika paşîn a ku heya fonksiyona TEXTJOIN hatî xizmet kirin, hûn hewce ne ku jimareyan, ne nivîsê jê bikin. Ji bo ku em pêk bînin, em tevhevkirina fonksiyonên IF û ISERROR bikar tînin.
Wekî ku tê bîra we,MID(…)+0 rêzek hejmaran û #VALUE diafirîne! xeletiyên ku tîpên nivîsê di heman cihan de temsîl dikin:
{2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
Fonksiyon ISERROR xeletiyan digire û rêzika encamên nirxên Boolean dişîne IF:
{FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}
Dema ku fonksiyona IF RAST (çewtiyek) dibîne, ew karaktera nivîsê ya têkildar bi alîkariya fonksiyonek din a MID-ê dixe nav rêzika pêvajoyî. Dema ku fonksiyona IF FALSE (hejmarek) dibîne, ew bi rêzek vala diguhezîne:
{"";"";"";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
Ev rêza dawîn derbasî TEXTJOIN dibe, ji ber vê yekê ew tîpên nivîsê li hev dixe û derdixe. encam.
Fonksiyonek xwerû ji bo rakirina jimareyan ji nivîsê
Çareserî ji bo hemî guhertoyên Excel kar dike
Divê bîr bînin ku divê formulayek bihêz were girtin. sade, ez ê koda fonksiyona diyarkirî ya bikarhêner (UDF) parve bikim da ku her karakterek hejmarî ji holê rakim.
Koda VBA 1:
Fonksiyon RemoveNumbers(str As String) Dim sRes Wek String sRes = "" Ji bo i = 1 Ji Len (str) Heke Derew = IsHejmar (Navenda (str, i, 1)) Paşê sRes = sRes & amp; Mid(str, i, 1) Dawî Heke Paşê i RemoveNumbers = sRes Endam FunctionVBA code 2:
Fonksiyon RemoveNumbers(str As String ) As String With CreateObject ( "VBScript.RegExp" ) .Global = Rast .Pattern = "[0-9]" RemoveNumbers2 = .Replace(str, "") Bi Endam Fonksiyon BiqedeWek ku di fonksiyona RemoveText de ye, koda duyemîn çêtir e ku di nav de were bikar anîn. mezinpelên xebatê da ku performansê xweştir bikin.
Dema ku kod li pirtûka weya xebatê were zêdekirin, hûn dikarin bi karanîna vê fonksiyona xwerû hemî tîpên hejmarî ji şaneyek derxînin:
RemoveNumbers(string)Di rewşa me de, formula di B2 de ev e:
=RemoveNumbers(A2)
Ji bo kêmkirina cihên sereke heke hebe, fonksiyona xwerû di hundurê TRIM-ê de wekî ku hûn formula xwemalî bikin hêlîn bikin:
=TRIM(RemoveNumbers(A2))
Hejmar û nivîsê li stûnên cihê veqetînin
Di rewşek ku hûn dixwazin nivîs û jimareyan bikin du stûn, baş e ku hûn kar bi formula yekane were kirin. , dipejirînin? Ji bo vê yekê, em tenê koda fonksiyonên RemoveText û RemoveNumbers di yek fonksiyonê de, bi navê SplitTextNumbers , an bi tenê Split , dikin yek, an her tiştê ku hûn jê hez dikin :)
Koda VBA 1:
Fonksiyon SplitTextNumbers(str Wek String, is_remove_text Wek Boolean) Wek String Dim sNum, sText, sChar Wek String sCurChar = sNum = sText = "" Ji bo i = 1 To Len (str) sCurChar = Mid (str, i, 1) Ger Rast = IsHejmar (sCurChar) Hingê sNum = sNum & amp; sCurChar Else sText = sText & amp; sCurChar Dawî Heke Paşê i Ger Rast = is_remove_text Hingê SplitTextNumbers = sNum Wekî din SplitTextNumbers = sText Dawiya Ger Fonksiyon DawîVBA Koda 2:
Fonksiyon SplitTextNumbers(str Wek String Asremole_ext e) Bi CreateObject ("VBScript.RegExp") .Global = Rast Ger Rast = is_remove_text Paşê .Pattern = "[^0-9]" Wekî din.Pattern = "[0-9]" Dawî Heke SplitTextNumbers = .Replace(str, "") Bi Endam Fonksiyon BiqedeFonksiyona meya xwerû ya nû du argumanan hewce dike:
SplitTextNumbers(string, is_remove_text)Li ku is_remove_text nirxek Boolean e ku nîşan dide kîjan tîpan jêbikin:
- RAST an 1 - nivîsê rake û hejmaran bihêle
- FALSE an 0 - hejmaran rake û nivîsê biparêze
Ji bo daneheva meya nimûneyê, formulan ev form digirin:
Ji bo rakirina tîpên nehejmar:
=SplitTextNumbers(A2, TRUE)
Ji bo jêbirina tîpên hejmarî :
=SplitTextNumbers(A2, FALSE)
Şîret. Ji bo ku ji pirsgirêkek potansiyel a cîhên pêşeng dûr nekevin, ez pêşniyar dikim her gav formula ku di fonksiyona TRIM-ê de jimaran jê dike bipêçin:
=TRIM(SplitTextNumbers(A2, FALSE))
Amûrek taybetî ji bo rakirina jimareyan an nivîsê
Ji bo kesên ku dikin. ne ji tevlihevkirina tiştên bêhewce, ez ê awayê xwe yê rakirina nivîs an jimareyan li Excel nîşan bidim.
Bihesibînin ku Suite meya Ultimate li ribbona weya Excel were zêdekirin, tiştê ku hûn dikin ev e:
- Li ser tabloya Ablebits Data , di koma Text de, bitikîne Rake > Rake Karakteran .
Şîret. Ger encam hin cîhên pêşeng hene, Cihên Trimamûr dê di demek kurt de wan ji holê rake.
Bi vî rengî meriv nivîs an tîpên hejmarî ji rêzek li Excel-ê jê dike. Ez spasiya te dikim ji bo xwendinê û hêvî dikim ku hefteya pêş me te li ser bloga xwe bibînim!
Daxistinên berdest
Nivîs an hejmaran li Excel-ê rake - mînak (pelê .xlsm)
Ultimate Suite - guhertoya ceribandinê (pelê .exe)