Clàr-innse
Innsidh an oideachadh seo dhut mar a sgaras tu teacsa bho àireamhan ann an Excel le bhith a’ cleachdadh foirmlean dùthchasach agus gnìomhan gnàthaichte. Ionnsaichidh tu cuideachd mar a roinneas tu teacsa agus àireamhan gu dà cholbh air leth.
Smaoinich air seo: gheibh thu dàta amh airson mion-sgrùdadh agus gheibh thu a-mach gu bheil àireamhan measgaichte le teacsa ann an aon cholbh. Anns a’ mhòr-chuid de shuidheachaidhean, gu cinnteach bidh e nas fhasa iad a bhith ann an colbhan fa-leth airson sgrùdadh nas mionaidiche.
Air eagal gu bheil thu ag obair le dàta aon-ghnèitheach, dh’ fhaodadh tu na gnìomhan LEFT, RIGHT, agus MID a chleachdadh gus na an aon àireamh de charactaran bhon aon suidheachadh. Ach tha sin na dheagh shuidheachadh airson deuchainnean obair-lann. Ann am fìor bheatha, tha thu nas dualtaiche dèiligeadh ri dàta eu-coltach far a bheil àireamhan a’ tighinn ro theacsa, às deidh teacsa no eadar teacsa. Tha na h-eisimpleirean gu h-ìosal a’ toirt seachad fuasglaidhean dìreach airson a’ chùis seo.
Mar a bheir thu air falbh teacsa agus cùm àireamhan ann an ceallan Excel
Tha am fuasgladh ag obair ann an Excel 365, Excel 2021 , agus Excel 2019
Thug Microsoft Excel 2019 a-steach beagan ghnìomhan ùra nach eil rim faighinn ann an dreachan nas tràithe, agus tha sinn gu bhith a’ cleachdadh aon de na gnìomhan sin, is e sin TEXTJOIN, gus caractaran teacsa a thoirt a-mach à cealla anns a bheil àireamhan.
'S e am foirmle coitcheann:
TEXTJOIN("", TRUE, IFERROR(MID( cell, ROW(INDIRECT( "1):"&LEN(<1)> cealla))), 1) * 1, ""))Ann an Excel 365 agus 2021, obraichidh am fear seo cuideachd:
TEXTJOIN ("", TRUE,IFERROR(MID( ceal, SEQUENCE(LEN( cell)), 1) *1, ""))Aig a' chiad sealladh, dh'fhaoidte gum bi na foirmlean a' coimhead car eagallach, ach bidh iad ag obair :)
Mar eisimpleir, gus teacsa a thoirt às na h-àireamhan ann an A2, cuir a-steach aon de na foirmlean gu h-ìosal ann am B2, agus an uairsin dèan lethbhreac dheth gu na h-uimhir de cheallan a tha a dhìth.
Ann an Excel 365 - 2019:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2))), 1) *1, ""))
Ann an Excel 2019, feumar a chuir a-steach mar fhoirmle rèite le Ctrl + Shift + Enter . Ann an raon fiùghantach Excel, bidh e ag obair mar fhoirmle àbhaisteach crìochnaichte leis an iuchair Enter.
Ann an Excel 365 agus 2021:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1, ""))
Mar thoradh air an sin, tha na caractaran teacsa uile a thoirt air falbh à cealla agus tha àireamhan gan cumail:
Mar a tha am foirmle seo ag obair:
Gus an loidsig a thuigsinn nas fheàrr, tòisichidh sinn a’ rannsachadh am foirmle on bhroinn:
Cleachdaidh tu an dàrna cuid ROW(INDIRECT("1:"&LEN(string)) no SEQUENCE(LEN(string)) gus sreath àireamhan a chruthachadh a fhreagras ris an àireamh iomlan de charactaran anns an t-sreang stòr, agus an uairsin thoir na h-àireamhan sreath sin don ghnìomh MID mar na h-àireamhan tòiseachaidh. Ann am B2, tha am pàirt seo den fhoirmle a’ coimhead mar a leanas:
MID(A2, {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}, 1)
Tha an gnìomh MID a’ toirt a-mach gach caractar à A2 a’ tòiseachadh leis a’ chiad fhear agus gan tilleadh mar raon:
{"2";"1";"0";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
Tha an t-sreath seo air iomadachadh le 1. Tha luachan àireamhach beò gun atharrachadh, fhad 's a dh'iomadaicheas caractar neo-àireamhach thig #VALUE! mearachd:
{2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
Tha an gnìomh IFERROR a' làimhseachadhna mearachdan seo agus sreangan falamh nan àite:
{2;1;0;"";"";"";"";"";"";"";"";"";"";"";""}
Tha an t-sreath mu dheireadh seo air a fhrithealadh don ghnìomh TEXTJOIN, a tha a’ co-cheangail nan luachan neo-fholamh san raon ( ignore_empty argamaid air a shuidheachadh gu TRUE) a' cleachdadh sreang fhalamh ("") airson a' chrìoch:
TEXTJOIN("", TRUE, {2;1;0;"";"";"";"";"";"";"";"";"";"";"";""})
Tip. Airson Excel 2016 - 2007, tha fuasgladh ann cuideachd, ach tha am foirmle fada nas iom-fhillte. Gheibh thu e san oideachadh seo: Mar a tharraing thu àireamhan ann an Excel.
Gnìomh gnàthaichte gus teacsa a thoirt air falbh bho àireamhan
Tha am fuasgladh ag obair airson a h-uile tionndadh Excel
Ma tha thu a’ cleachdadh tionndadh nas sine de Excel no ma lorg thu na foirmlean gu h-àrd cuideachd duilich a chuimhneachadh, chan eil dad a’ cur bacadh ort bho bhith a’ cruthachadh do ghnìomh fhèin le co-chòrdadh nas sìmplidhe agus ainm a tha furasta a chleachdadh mar RemoveText . Faodar an gnìomh a tha air a mhìneachadh leis a’ chleachdaiche (UDF) a sgrìobhadh ann an dà dhòigh:
Còd VBA 1:
An seo, bidh sinn a’ coimhead air gach caractar anns an t-sreang stòr aon le aon agus dèan cinnteach a bheil e àireamhach no nach eil. Ma tha àireamh ann, thèid an caractar a chur ris an t-sreang a thig às.
Gnìomh RemoveText(str As String ) Dim sRes As String sRes = " "Airson i = 1 Gu Len(str) Mas Fìor = IsNumeric(Mid(str, i , 1)) An uairsin sRes = sRes & Mid(str, i, 1) Crìoch Ma tha Air adhart i RemoveText = sRes End FunctionCòd VBA 2:
Tha an còd a’ cruthachadh nì gus abairt àbhaisteach a phròiseasadh. Le bhith a' cleachdadh RegExp, bheir sinn air falbh a h-uile caractar a bharrachd air àireamhan 0-9 bhon t-sreath thùsail.
Gnìomh RemoveText(str As String ) As String With CreateObject ( "VBScript.RegExp") .Global = True .Pattern = "[^0-9]" RemoveText = .Replace(str, "" ) Crìochnaich le gnìomh crìochnachaidhAir duilleagan-obrach beaga, obraichidh an dà chòd a cheart cho math. Air duilleagan-obrach mòra far an canar ceudan no mìltean de thursan ris a’ ghnìomh, obraichidh còd 2 a chleachdas VBScript.RegExp nas luaithe.
Gheibhear na ceumannan mionaideach gus an còd a chuir a-steach san leabhar-obrach agad an seo: Mar a chuireas tu VBA a-steach còd ann an Excel.
Ge bith dè an dòigh-obrach a thaghas tu, bho shealladh an neach-cleachdaidh deireannach, tha an gnìomh airson teacsa a sguabadh às agus àireamhan fhàgail cho sìmplidh ri seo:
RemoveText(string)Mar eisimpleir, gu thoir air falbh caractaran neo-àireamhach à ceal A2, is e am foirmle ann am B2:
=RemoveText(A2)
Dìreach dèan lethbhreac dheth sìos a’ cholbh, agus gheibh thu an toradh seo:
Nòta. Bidh an dà chuid na foirmlean dùthchasach agus an gnìomh gnàthaichte a’ toirt a-mach sreang àireamhach . Gus àireamh a thionndadh, iomadaich an toradh le 1, no cuir neoni ris, no paisg am foirmle anns a’ ghnìomh VALUE. Mar eisimpleir:
=RemoveText(A2) + 0
=VALUE(RemoveText(A2))
Mar a bheir thu air falbh àireamhan bho sreang teacsa ann an Excel
Tha am fuasgladh ag obair ann an Excel 365, Excel 2021, agus Excel 2019
Tha na foirmlean airson àireamhan a thoirt air falbh bho shreang alfaimigeach gu math coltach ris an fheadhainn air an deach beachdachadh san eisimpleir roimhe seo.
Airson Excel 365 - 2019:
TEXTJOIN(" ", TRUE, IF(ISERR(MID( ceal , ROW(INDIRECT("1:" cealla ))), 1), ""))Ann an Excel 2019, cuimhnich gun dèan thu foirmle rèite dheth le putadh air na h-iuchraichean Ctrl + Shift + Enter còmhla.
Airson Excel 365 agus 2021:
TEXTJOIN ("", TRUE, IF(ISERROR(MID( cell , SEQUENCE(LEN( cell 1) *1), MID) ( ceal , SEQUENCE(LEN( cealla )), 1), ""))Mar eisimpleir, gus àireamhan a tharraing à sreang ann an A2, 's e am foirmle:
=TEXTJOIN("", TRUE, IF(ISERR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2) )), 1) *1), MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1), ""))
No
=TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), ""))
Mar thoradh air an sin, thèid a h-uile àireamh a thoirt air falbh à cealla agus tha caractaran teacsa air an cumail:
Mar a chithear san dealbh-sgrìn gu h-àrd, tha an fhoirmle a’ stialladh charactaran àireamhach bho shuidheachadh sam bith ann an sreang: aig an toiseach, aig an deireadh, agus sa mheadhan. Bidh a’ tòiseachadh le àireamh agus àite ’na dhèidh, tha an t-àite sin air a ghleidheadh, a dh’ adhbhraicheas duilgheadas le bhith a’ stiùireadh beàrnan (mar ann am B2).
Gus faighinn cuidhteas beàrnan a bharrachd ron teacsa , paisg am foirmle anns a’ ghnìomh TRIM mar seo:
=TRIM(TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), "")))
A-nis, tha na toraidhean agad gu tur foirfe!
Mar a tha am foirmle seo ag obair:
Gu dearbh, tha am foirmle ag obair mar a chaidh a mhìneachadh san eisimpleir roimhe. Is e an t-eadar-dhealachadh, bhon raon mu dheireadh a chaidh a fhrithealadh gu gnìomh TEXTJOIN, gum feum thu àireamhan a thoirt air falbh, chan e teacsa. Gus a dhèanamh, cleachdaidh sinn am measgachadh de ghnìomhan IF agus ISERROR.
Mar a chuimhnicheas tu,Bidh MID(…)+0 a’ gineadh sreath de dh’ àireamhan agus #VALUE! mearachdan a' riochdachadh charactaran teacsa anns na h-aon shuidheachaidhean:
{2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
Tha an gnìomh ISERROR a' glacadh nam mearachdan agus a' dol seachad air an raon de luachan Boolean a thig às gu IF:
{FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}
Nuair a chì an gnìomh IF TRUE (mearachd), cuiridh e an caractar teacsa co-fhreagarrach a-steach don raon giullachd le cuideachadh bho ghnìomh MID eile. Nuair a chì an gnìomh IF FALSE (àireamh), cuiridh e sreang fhalamh na àite:
{"";"";"";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
Thèid an t-sreath mu dheireadh seo a chuir a-null gu TEXTJOIN, agus mar sin bidh e a’ co-cheangail nan caractaran teacsa agus a’ toirt a-mach na thoradh.
Gnìomh gnàthaichte gus àireamhan a thoirt às an teacsa
Tha am fuasgladh ag obair airson a h-uile tionndadh Excel
A’ cumail an aire gum bu chòir foirmle làidir a chumail sìmplidh, roinnidh mi còd a’ ghnìomh a tha air a mhìneachadh leis a’ chleachdaiche (UDF) gus caractar àireamhach sam bith a thoirt air falbh.
Còd VBA 1:
Gnìomh RemoveNumbers(str As String ) Dim sRes As String sRes = "" Airson i = 1 Gu Len(str) Ma tha Meallta = IsNumeric(Mid(str, i, 1)) An uairsin sRes = sRes & Meadhan(str, i, 1) Crìoch ma tha Air adhart i RemoveNumbers = sRes Gnìomh DeireannachCòd VBA 2:
Gnìomh RemoveNumbers(str Mar String ) Mar sreang le CreateObject ("VBScript.RegExp" ). mòrduilleagan-obrach gus an dèanadas a bharrachadh.Aon uair 's gu bheil an còd air a chur ris an leabhar-obrach agad, 's urrainn dhut a h-uile caractar àireamhach a thoirt a-mach à cealla leis a' ghnìomh àbhaisteach seo:
Anns a' chùis againn, bidh an is e am foirmle ann am B2:
=RemoveNumbers(A2)
Gus prìomh àiteachan a ghearradh ma tha gin ann, neadaich an gnìomh àbhaisteach am broinn TRIM mar a dhèanadh tu le foirmle dùthchasach:
=TRIM(RemoveNumbers(A2))
Sgar àireamhan agus teacsa gu colbhan fa leth
San suidheachadh far a bheil thu airson teacsa agus àireamhan a sgaradh ann an dà cholbh, bhiodh e math an obair a dhèanamh le aon fhoirmle , aontaich? Airson seo, bidh sinn dìreach a’ ceangal còd nan gnìomhan RemoveText agus RemoveNumbers ann an aon ghnìomh, air a bheil SplitTextNumbers , no dìreach Split , no ge bith dè as toil leat :)
Còd VBA 1:
Gnìomh SplitTextNumbers(str As String , is_remove_text As Boolean ) Mar String Dim sNum, sText, sChar As String sCurChar = sNum = sText = "" Airson i = 1 Gu Len(str) sCurChar = Meadhan(str, i, 1) Ma tha fìor = Isàireamhach(sCurChar) An uairsin sNum = sNum & sCurChar Eile sText = sText & sCurChar Crìoch ma tha an ath cheum i Ma tha e fìor = is_remove_text An uairsin SplitTextNumbers = sNum Eile SplitTextNumbers = sText Deireadh Ma tha gnìomh crìochnachaidhCòd VBA 2:
Function SplitTextNumbers(str Mar sreang, is_remove_text As Boolean ) Mar String Le CreateObject ( "VBScript.RegExp") .Global = Fìor Ma tha Fìor = is_remove_text An uairsin .Pattern = "[^0-9]" Eile.Pattern = "[0-9]" Crìoch ma tha SplitTextNumbers = .Replace(str, "" ) Crìochnaich le gnìomh crìochnachaidhFeumaidh an gnìomh gnàthaichte ùr againn dà argamaid:
SplitTextNumbers(sreang, is_remove_text)Càite 'S e luach Boole a th' ann an is_remove_text a' sealltainn dè na caractaran a bu chòir a sguabadh às:
- TRUE no 1 - thoir air falbh teacsa agus cùm àireamhan
- FALSE no 0 - thoir air falbh àireamhan agus cùm teacsa
Airson an t-seata-dàta sampall againn, gabhaidh na foirmlean am foirm seo:
Gus caractaran neo-àireamhach a thoirt air falbh:
=SplitTextNumbers(A2, TRUE)
Gus caractaran àireamhach a sguabadh às :
=SplitTextNumbers(A2, FALSE)
Tip. Gus duilgheadas a dh’ fhaodadh a bhith ann le bhith a’ stiùireadh àiteachan a sheachnadh, tha mi a’ moladh an-còmhnaidh a bhith a’ pasgadh na foirmle a bheir air falbh àireamhan anns a’ ghnìomh TRIM:
=TRIM(SplitTextNumbers(A2, FALSE))
Inneal sònraichte airson àireamhan no teacsa a thoirt air falbh
Dhaibhsan a nì sin chan eil e coltach ri bhith a’ dèanamh rudan toinnte gun fheum, seallaidh mi ar dòigh fhìn air teacsa no àireamhan a thoirt air falbh ann an Excel.
A’ gabhail ris gu bheil an Ultimate Suite againn air a chur ris an rioban Excel agad, seo na nì thu:
- Air an taba Ablebits Data , sa bhuidheann Text , briog air Thoir air falbh > Thoir air falbh Caractaran . <21
Gliocas. Ma tha cuid de phrìomh àiteachan anns na toraidhean, na Trim Spacescuiridh inneal às dhaibh ann an ùine sam bith.
Sin mar a bheir thu air falbh teacsa no caractaran àireamhach à sreang ann an Excel. Tha mi a' toirt taing dhut airson an leughadh agus tha mi a' coimhead air adhart ri ur faicinn air ar blog an ath sheachdain!
Luchdaich a-nuas ri fhaighinn
Thoir air falbh teacsa no àireamhan ann an Excel - eisimpleirean (faidhle .xlsm)
Ultimate Suite - tionndadh deuchainn (faidhle .exe)