విషయ సూచిక
ఈ ట్యుటోరియల్ స్థానిక సూత్రాలు మరియు అనుకూల ఫంక్షన్లను ఉపయోగించి Excelలోని సంఖ్యల నుండి వచనాన్ని ఎలా వేరు చేయాలో నేర్పుతుంది. మీరు టెక్స్ట్ మరియు సంఖ్యలను రెండు వేర్వేరు నిలువు వరుసలుగా ఎలా విభజించాలో కూడా నేర్చుకుంటారు.
దీనిని ఊహించండి: మీరు విశ్లేషణ కోసం ముడి డేటాను స్వీకరిస్తారు మరియు ఒక నిలువు వరుసలో సంఖ్యలు టెక్స్ట్తో మిళితం చేయబడతాయని కనుగొనండి. చాలా సందర్భాలలో, వాటిని నిశితంగా పరిశీలించడం కోసం ప్రత్యేక నిలువు వరుసలలో ఉంచడం మరింత సౌకర్యవంతంగా ఉంటుంది.
ఒకవేళ మీరు సజాతీయ డేటాతో పని చేస్తుంటే, మీరు బహుశా ఎడమ, కుడి మరియు MID ఫంక్షన్లను సేకరించేందుకు ఉపయోగించవచ్చు. ఒకే స్థానం నుండి ఒకే సంఖ్యలో అక్షరాలు. కానీ ప్రయోగశాల పరీక్షలకు ఇది అనువైన దృశ్యం. నిజ జీవితంలో, మీరు టెక్స్ట్కు ముందు, టెక్స్ట్ తర్వాత లేదా టెక్స్ట్ మధ్య సంఖ్యలు వచ్చే అసమాన డేటాతో వ్యవహరించే అవకాశం ఉంది. దిగువ ఉదాహరణలు ఈ కేసుకు సరిగ్గా పరిష్కారాలను అందిస్తాయి.
టెక్స్ట్ని తీసివేయడం మరియు సంఖ్యలను Excel సెల్లలో ఉంచడం ఎలా
పరిష్కారం Excel 365, Excel 2021లో పని చేస్తుంది , మరియు Excel 2019
Microsoft Excel 2019 మునుపటి సంస్కరణల్లో అందుబాటులో లేని కొన్ని కొత్త ఫంక్షన్లను పరిచయం చేసింది మరియు మేము సెల్ నుండి టెక్స్ట్ అక్షరాలను తీసివేయడానికి TEXTJOIN అనే ఫంక్షన్లలో ఒకదాన్ని ఉపయోగించబోతున్నాము. సంఖ్యలను కలిగి ఉంది.
సాధారణ సూత్రం:
TEXTJOIN("", TRUE, IFERROR(MID( సెల్, ROW(INDIRECT("1:""&LEN(<1")>సెల్))), 1) *1, ""))Excel 365 మరియు 2021లో, ఇది కూడా పని చేస్తుంది:
TEXTJOIN("", TRUE,IFERROR(MID( సెల్, SEQUENCE(LEN( సెల్)), 1) *1, ""))మొదటి చూపులో, సూత్రాలు కొంచెం భయపెట్టేలా కనిపించవచ్చు, కానీ అవి పని చేస్తాయి :)
ఉదాహరణకు, A2లోని సంఖ్యల నుండి వచనాన్ని తీసివేయడానికి, B2లో దిగువ సూత్రాలలో ఒకదాన్ని నమోదు చేసి, ఆపై అవసరమైనన్ని సెల్లకు కాపీ చేయండి.
Excel 365 - 2019:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2))), 1) *1, ""))
Excel 2019లో, ఇది తప్పనిసరిగా Ctrl + Shift + Enterతో అర్రే ఫార్ములాగా నమోదు చేయాలి. డైనమిక్ శ్రేణి Excelలో, ఇది Enter కీతో పూర్తి చేయబడిన సాధారణ ఫార్ములా వలె పని చేస్తుంది.
Excel 365 మరియు 2021:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1, ""))
ఫలితంగా, అన్ని టెక్స్ట్ అక్షరాలు సెల్ నుండి తీసివేయబడింది మరియు సంఖ్యలు ఉంచబడతాయి:
ఈ ఫార్ములా ఎలా పని చేస్తుంది:
లాజిక్ను బాగా అర్థం చేసుకోవడానికి, పరిశోధించడం ప్రారంభిద్దాం లోపల నుండి సూత్రం:
మొత్తం సంఖ్యకు అనుగుణమైన సంఖ్యల క్రమాన్ని సృష్టించడానికి మీరు ROW(INDIRECT("1:"&LEN(string))) లేదా SEQUENCE(LEN(string))ని ఉపయోగించండి మూలం స్ట్రింగ్లోని అక్షరాలను, ఆపై ఆ క్రమ సంఖ్యలను ప్రారంభ సంఖ్యలుగా MID ఫంక్షన్కు అందించండి. B2లో, ఫార్ములాలోని ఈ భాగం క్రింది విధంగా కనిపిస్తుంది:
MID(A2, {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}, 1)
MID ఫంక్షన్ ప్రతి అక్షరాన్ని మొదటి దానితో ప్రారంభించి A2 నుండి సంగ్రహిస్తుంది మరియు వాటిని శ్రేణిగా అందిస్తుంది:
{"2";"1";"0";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
ఈ శ్రేణి 1తో గుణించబడుతుంది. సంఖ్యా విలువలు ఎటువంటి మార్పు లేకుండా మనుగడలో ఉంటాయి, అయితే సంఖ్యేతర అక్షరాన్ని గుణించడం వలన #VALUE వస్తుంది! లోపం:
{2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
IFERROR ఫంక్షన్ హ్యాండిల్ చేస్తుందిఈ లోపాలు మరియు వాటిని ఖాళీ స్ట్రింగ్లతో భర్తీ చేస్తుంది:
{2;1;0;"";"";"";"";"";"";"";"";"";"";"";""}
ఈ చివరి శ్రేణి TEXTJOIN ఫంక్షన్కు అందించబడుతుంది, ఇది శ్రేణిలోని ఖాళీ-కాని విలువలను సంగ్రహిస్తుంది ( ignore_empty డీలిమిటర్ కోసం ఖాళీ స్ట్రింగ్ ("")ని ఉపయోగించి వాదన TRUEకి సెట్ చేయబడింది:
TEXTJOIN("", TRUE, {2;1;0;"";"";"";"";"";"";"";"";"";"";"";""})
చిట్కా. Excel 2016 - 2007 కోసం, ఒక పరిష్కారం కూడా ఉంది, కానీ ఫార్ములా చాలా క్లిష్టంగా ఉంటుంది. మీరు దీన్ని ఈ ట్యుటోరియల్లో కనుగొనవచ్చు: ఎక్సెల్లో సంఖ్యలను ఎలా సంగ్రహించాలి.
సంఖ్యల నుండి వచనాన్ని తీసివేయడానికి అనుకూల ఫంక్షన్
పరిష్కారం అన్ని Excel సంస్కరణలకు పని చేస్తుంది
మీరు Excel యొక్క పాత సంస్కరణను ఉపయోగిస్తుంటే లేదా పై సూత్రాలను కూడా కనుగొంటే గుర్తుంచుకోవడం కష్టం, సరళమైన సింటాక్స్ మరియు RemoveText వంటి వినియోగదారు-స్నేహపూర్వక పేరుతో మీ స్వంత ఫంక్షన్ను సృష్టించకుండా ఏదీ మిమ్మల్ని నిరోధించదు. వినియోగదారు నిర్వచించిన ఫంక్షన్ (UDF)ని రెండు విధాలుగా వ్రాయవచ్చు:
VBA కోడ్ 1:
ఇక్కడ, మేము సోర్స్ స్ట్రింగ్లోని ప్రతి అక్షరాన్ని ఒక్కొక్కటిగా పరిశీలిస్తాము ఒకటి మరియు అది సంఖ్యా లేదా కాదా అని తనిఖీ చేయండి. ఒక సంఖ్య అయితే, అక్షరం ఫలిత స్ట్రింగ్కు జోడించబడుతుంది.
ఫంక్షన్ RemoveText(string వలె ) మసకబారిన sRes స్ట్రింగ్ వలె sRes = "" కోసం i = 1 నుండి లెన్(str) ట్రూ = IsNumeric(Mid(str, i) , 1)) అప్పుడు sRes = sRes & Mid(str, i, 1) ముగింపు ఐతే తర్వాత i RemoveText = sRes ముగింపు ఫంక్షన్VBA కోడ్ 2:
కోడ్ సాధారణ వ్యక్తీకరణను ప్రాసెస్ చేయడానికి ఒక వస్తువును సృష్టిస్తుంది. RegExpని ఉపయోగించి, మేము మూలం స్ట్రింగ్ నుండి 0-9 అంకెలు కాకుండా అన్ని అక్షరాలను తీసివేస్తాము.
ఫంక్షన్ RemoveText(string As ) CreateObjectతో స్ట్రింగ్ వలె ( "VBScript.RegExp" ) .Global = True .Pattern = "[^0-9]" RemoveText = .Replace(str, "" ) ముగింపు ఫంక్షన్తో ముగించు చిన్న వర్క్షీట్లలో, రెండు కోడ్లు సమానంగా పని చేస్తాయి. ఫంక్షన్ని వందల లేదా వేల సార్లు పిలిచే పెద్ద వర్క్షీట్లలో, VBScript.RegExpని ఉపయోగించే కోడ్ 2 వేగంగా పని చేస్తుంది.
మీ వర్క్బుక్లో కోడ్ను చొప్పించడానికి వివరణాత్మక దశలను ఇక్కడ చూడవచ్చు: VBAని ఎలా చొప్పించాలి Excelలో కోడ్.
ఎండ్-యూజర్ దృక్కోణం నుండి మీరు ఏ విధానాన్ని ఎంచుకున్నా, టెక్స్ట్ని తొలగించడం మరియు సంఖ్యలను వదిలివేయడం వంటి ఫంక్షన్ చాలా సులభం:
RemoveText(string)ఉదాహరణకు, కు సెల్ A2 నుండి సంఖ్యేతర అక్షరాలను తీసివేయండి, B2లోని సూత్రం:
=RemoveText(A2)
దీనిని నిలువు వరుసలో కాపీ చేయండి మరియు మీరు ఈ ఫలితాన్ని పొందుతారు:
గమనిక. స్థానిక సూత్రాలు మరియు అనుకూల ఫంక్షన్ రెండూ సంఖ్యా స్ట్రింగ్ ని అందిస్తాయి. దీన్ని సంఖ్యగా మార్చడానికి, ఫలితాన్ని 1తో గుణించండి లేదా సున్నాని జోడించండి లేదా సూత్రాన్ని VALUE ఫంక్షన్లో చుట్టండి. ఉదాహరణకు:
=RemoveText(A2) + 0
=VALUE(RemoveText(A2))
Excelలో టెక్స్ట్ స్ట్రింగ్ నుండి సంఖ్యలను ఎలా తీసివేయాలి
పరిష్కారం Excel 365, Excel 2021 మరియు Excelలో పని చేస్తుంది 2019
ఆల్ఫాన్యూమరిక్ స్ట్రింగ్ నుండి సంఖ్యలను తీసివేయడానికి ఫార్ములాలు మునుపటి ఉదాహరణలో చర్చించిన వాటితో సమానంగా ఉంటాయి.
Excel 365 - 2019 కోసం:
TEXTJOIN(" ", TRUE, IF(ISERR(MID( సెల్ , ROW(INDIRECT)"1:"&LEN( సెల్ ) )), 1) *1), MID( సెల్ , ROW(INDIRECT("1:"&LEN( ) సెల్ ))), 1), ""))Excel 2019లో, Ctrl + Shift + Enter కీలను కలిపి నొక్కడం ద్వారా దీన్ని శ్రేణి ఫార్ములా గా మార్చాలని గుర్తుంచుకోండి.
0>Excel 365 మరియు 2021 కోసం: TEXTJOIN("", TRUE, IF(ISERROR(MID( సెల్ , SEQUENCE(LEN( సెల్ 1)) *1), MID ( సెల్ , SEQUENCE(LEN( సెల్ )), 1), ""))ఉదాహరణకు, A2లోని స్ట్రింగ్ నుండి సంఖ్యలను తీసివేయడానికి, ఫార్ములా:
=TEXTJOIN("", TRUE, IF(ISERR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2) )), 1) *1), MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1), ""))
లేదా
=TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), ""))
ఫలితంగా, సెల్ నుండి అన్ని సంఖ్యలు తీసివేయబడతాయి మరియు వచన అక్షరాలు ఉంచబడతాయి:
పై స్క్రీన్షాట్లో చూపినట్లుగా, ఫార్ములా స్ట్రింగ్లోని ఏదైనా స్థానం నుండి సంఖ్యా అక్షరాలను స్ట్రిప్ చేస్తుంది: ప్రారంభంలో, ముగింపులో మరియు మధ్యలో. అయితే, ఒక హెచ్చరిక ఉంది: స్ట్రింగ్ అయితే సంఖ్యను అనుసరించి స్పేస్తో మొదలవుతుంది , ఆ స్థలం అలాగే ఉంచబడుతుంది, ఇది లీడింగ్ స్పేస్ల సమస్యను (B2లో వలె) ఉత్పత్తి చేస్తుంది.
వచనానికి ముందు అదనపు స్పేస్లను వదిలించుకోవడానికి , TRIM ఫంక్షన్లో సూత్రాన్ని ఇలా చుట్టండి:
=TRIM(TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), "")))
ఇప్పుడు, మీ ఫలితాలు ఖచ్చితంగా సంపూర్ణంగా ఉన్నాయి!
ఈ ఫార్ములా ఎలా పని చేస్తుంది:
సారాంశంలో, ఫార్ములా మునుపటి ఉదాహరణలో వివరించిన విధంగానే పనిచేస్తుంది. తేడా ఏమిటంటే, TEXTJOIN ఫంక్షన్కు అందించబడిన చివరి శ్రేణి నుండి, మీరు సంఖ్యలను తీసివేయాలి, వచనాన్ని కాదు. దీన్ని పూర్తి చేయడానికి, మేము IF మరియు ISERROR ఫంక్షన్ల కలయికను ఉపయోగిస్తాము.
మీకు గుర్తున్నట్లుగా,MID(...)+0 సంఖ్యల శ్రేణిని ఉత్పత్తి చేస్తుంది మరియు #VALUE! అదే స్థానాల్లోని టెక్స్ట్ అక్షరాలను సూచించే లోపాలు:
{2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
ISERROR ఫంక్షన్ లోపాలను క్యాచ్ చేస్తుంది మరియు ఫలితంగా వచ్చే బూలియన్ విలువల శ్రేణిని IF:
{FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}
IF ఫంక్షన్ TRUEని చూసినప్పుడు (ఒక లోపం), అది మరొక MID ఫంక్షన్ సహాయంతో సంబంధిత టెక్స్ట్ క్యారెక్టర్ని ప్రాసెస్ చేయబడిన శ్రేణిలోకి చొప్పిస్తుంది. IF ఫంక్షన్ FALSE (ఒక సంఖ్య)ని చూసినప్పుడు, అది ఖాళీ స్ట్రింగ్తో భర్తీ చేస్తుంది:
{"";"";"";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
ఈ చివరి శ్రేణి TEXTJOINకి పంపబడుతుంది, కనుక ఇది టెక్స్ట్ అక్షరాలను సంగ్రహిస్తుంది మరియు అవుట్పుట్ చేస్తుంది ఫలితం.
టెక్స్ట్ నుండి నంబర్లను తీసివేయడానికి అనుకూల ఫంక్షన్
పరిష్కారం అన్ని Excel వెర్షన్లకు పనిచేస్తుంది
బలమైన ఫార్ములా ఉంచాలని గుర్తుంచుకోండి సరళమైనది, ఏదైనా సంఖ్యాత్మక అక్షరాన్ని తీసివేయడానికి నేను వినియోగదారు నిర్వచించిన ఫంక్షన్ (UDF) కోడ్ను భాగస్వామ్యం చేస్తాను.
VBA కోడ్ 1:
ఫంక్షన్ RemoveNumbers(str As String ) మసక sRes స్ట్రింగ్ వలె sRes = "" కోసం i = 1 నుండి లెన్(str) తప్పు = IsNumeric(Mid(str, i, 1)) అప్పుడు sRes = sRes & మధ్య(str, i, 1) ముగింపు ఐతే తర్వాత i RemoveNumbers = sRes ముగింపు ఫంక్షన్VBA కోడ్ 2:
ఫంక్షన్ RemoveNumbers(string వలె ) CreateObjectతో స్ట్రింగ్గా ( "VBScript.RegExp" ) .Global = True .Pattern = "[0-9]" RemoveNumbers2 = .Replace(str, "" ) ముగింపు ఫంక్షన్తో ముగించుRemoveText ఫంక్షన్లో వలె, రెండవ కోడ్ని ఉపయోగించడం ఉత్తమం పెద్దపనితీరును ఆప్టిమైజ్ చేయడానికి వర్క్షీట్లు.
మీ వర్క్బుక్కి కోడ్ జోడించబడిన తర్వాత, మీరు ఈ అనుకూల ఫంక్షన్ని ఉపయోగించి సెల్ నుండి అన్ని సంఖ్యా అక్షరాలను తీసివేయవచ్చు:
RemoveNumbers(string)మా విషయంలో, B2లోని ఫార్ములా:
=RemoveNumbers(A2)
ముఖ్యమైన స్పేస్లు ఏవైనా ఉంటే ట్రిమ్ చేయడానికి, మీరు స్థానిక సూత్రం వలె TRIM లోపల అనుకూల ఫంక్షన్ను నెస్ట్ చేయండి:
=TRIM(RemoveNumbers(A2))
సంఖ్యలను మరియు వచనాన్ని ప్రత్యేక నిలువు వరుసలుగా విభజించండి
మీరు టెక్స్ట్ మరియు సంఖ్యలను రెండు నిలువు వరుసలుగా విభజించాలనుకున్నప్పుడు, ఒకే ఫార్ములాతో పనిని పూర్తి చేయడం మంచిది , అంగీకరిస్తున్నారు? దీని కోసం, మేము RemoveText మరియు RemoveNumbers ఫంక్షన్ల కోడ్ను SplitTextNumbers పేరుతో ఒక ఫంక్షన్లో విలీనం చేస్తాము లేదా కేవలం Split , లేదా మీకు ఏది నచ్చితే అది :)
VBA కోడ్ 1:
ఫంక్షన్ SplitTextNumbers(string As , is_remove_text as Boolean ) స్ట్రింగ్ డిమ్ sNum, sText, sChar స్ట్రింగ్ లాగా sCurChar = sNum = sText = "" కోసం i = 1 నుండి లెన్(str) sCurChar = మధ్య(str, i, 1) నిజమైతే = IsNumeric(sCurChar) అప్పుడు sNum = sNum & sCurChar ఎల్స్ sText = sText & sCurChar ముగియినట్లయితే తర్వాత నేను True = is_remove_text అప్పుడు SplitTextNumbers = sNum Else SplitTextNumbers = sText End ఈఫ్ ఎండ్ ఫంక్షన్VBA కోడ్ 2:
ఫంక్షన్ SplitTextNumbers(string_text వలె String_text) CreateObjectతో ( "VBScript.RegExp" ) .Global = True అయితే True = is_remove_text అప్పుడు .Pattern = "[^0-9]" వేరే.Pattern = "[0-9]" ముగింపు ఉంటే SplitTextNumbers = .Replace(str, "" ) ముగింపు ఫంక్షన్తో ముగించండిమా కొత్త అనుకూల ఫంక్షన్కు రెండు ఆర్గ్యుమెంట్లు అవసరం:
SplitTextNumbers(string, is_remove_text)ఎక్కడ is_remove_text అనేది బూలియన్ విలువ, ఇది ఏ అక్షరాలను తీసివేయాలో సూచిస్తుంది:
- TRUE లేదా 1 - వచనాన్ని తీసివేసి సంఖ్యలను ఉంచండి
- FALSE లేదా 0 - సంఖ్యలను తీసివేసి, వచనాన్ని ఉంచండి
మా నమూనా డేటాసెట్ కోసం, సూత్రాలు ఈ ఫారమ్ను తీసుకుంటాయి:
సంఖ్యేతర అక్షరాలను తీసివేయడానికి:
=SplitTextNumbers(A2, TRUE)
సంఖ్యా అక్షరాలను తొలగించడానికి :
=SplitTextNumbers(A2, FALSE)
చిట్కా. లీడింగ్ స్పేస్ల సంభావ్య సమస్యను నివారించడానికి, TRIM ఫంక్షన్లో సంఖ్యలను తీసివేసే సూత్రాన్ని ఎల్లప్పుడూ చుట్టాలని నేను సిఫార్సు చేస్తున్నాను:
=TRIM(SplitTextNumbers(A2, FALSE))
సంఖ్యలు లేదా వచనాన్ని తీసివేయడానికి ప్రత్యేక సాధనం
అలా చేసే వారి కోసం అనవసరంగా విషయాలను క్లిష్టతరం చేయడం ఇష్టం లేదు, నేను Excelలో టెక్స్ట్ లేదా నంబర్లను తీసివేయడానికి మా స్వంత మార్గాన్ని చూపుతాను.
మా అల్టిమేట్ సూట్ మీ Excel రిబ్బన్కి జోడించబడిందని ఊహిస్తే, మీరు ఇలా చేస్తారు:
- Ablebits డేటా ట్యాబ్లో, Text సమూహంలో, తొలగించు > అక్షరాలను తీసివేయి .
చిట్కా. ఫలితాలు కొన్ని లీడింగ్ స్పేస్లను కలిగి ఉంటే, ట్రిమ్ స్పేస్లుసాధనం వాటిని ఏ సమయంలోనైనా తొలగిస్తుంది.
ఎక్సెల్లోని స్ట్రింగ్ నుండి టెక్స్ట్ లేదా సంఖ్యా అక్షరాలను ఎలా తీసివేయాలి. నేను చదివినందుకు ధన్యవాదాలు మరియు వచ్చే వారం మా బ్లాగ్లో మిమ్మల్ని చూడాలని ఎదురుచూస్తున్నాను!
అందుబాటులో ఉన్న డౌన్లోడ్లు
Excelలో టెక్స్ట్ లేదా నంబర్లను తీసివేయండి - ఉదాహరణలు (.xlsm ఫైల్)
అల్టిమేట్ సూట్ - ట్రయల్ వెర్షన్ (.exe ఫైల్)