સામગ્રીઓનું કોષ્ટક
આ ટ્યુટોરીયલ તમને શીખવશે કે એક્સેલમાં મૂળ સૂત્રો અને કસ્ટમ ફંક્શનનો ઉપયોગ કરીને ટેક્સ્ટને નંબરોથી કેવી રીતે અલગ કરવું. તમે ટેક્સ્ટ અને સંખ્યાઓને બે અલગ-અલગ કૉલમમાં કેવી રીતે વિભાજિત કરવી તે પણ શીખી શકશો.
આની કલ્પના કરો: તમને પૃથ્થકરણ માટે કાચો ડેટા મળે છે અને ખબર પડે છે કે એક કૉલમમાં ટેક્સ્ટ સાથે સંખ્યાઓ મિશ્રિત છે. મોટાભાગની પરિસ્થિતિઓમાં, નજીકની તપાસ માટે તેમને અલગ કૉલમમાં રાખવાનું ચોક્કસપણે વધુ અનુકૂળ રહેશે.
જો તમે સમાન ડેટા સાથે કામ કરી રહ્યાં હોવ, તો તમે કદાચ ડાબે, જમણે અને મધ્ય ફંક્શનનો ઉપયોગ કરી શકો છો. સમાન સ્થિતિમાંથી સમાન સંખ્યામાં અક્ષરો. પરંતુ તે પ્રયોગશાળા પરીક્ષણો માટે એક આદર્શ દૃશ્ય છે. વાસ્તવિક જીવનમાં, તમે અસંભવિત ડેટા સાથે વ્યવહાર કરો છો જ્યાં સંખ્યાઓ ટેક્સ્ટ પહેલાં, ટેક્સ્ટ પછી અથવા ટેક્સ્ટની વચ્ચે આવે છે. નીચેના ઉદાહરણો આ કેસ માટે બરાબર ઉકેલો પૂરા પાડે છે.
ટેક્સ્ટને કેવી રીતે દૂર કરવું અને એક્સેલ સેલમાં નંબર કેવી રીતે રાખવું
સોલ્યુશન Excel 365, Excel 2021 માં કામ કરે છે , અને Excel 2019
Microsoft Excel 2019 એ થોડા નવા ફંક્શન રજૂ કર્યા છે જે અગાઉના વર્ઝનમાં ઉપલબ્ધ નથી, અને અમે સેલમાંથી ટેક્સ્ટ કેરેક્ટરને દૂર કરવા માટે આવા ફંક્શન્સમાંથી એકનો ઉપયોગ કરવા જઈ રહ્યા છીએ, એટલે કે TEXTJOIN. સંખ્યાઓ ધરાવે છે.
સામાન્ય સૂત્ર છે:
TEXTJOIN("", TRUE, IFERROR(MID( cell, ROW(INDIRECT( "1:"&LEN( સેલ))), 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 સાથે એરે ફોર્મ્યુલા તરીકે દાખલ કરવું આવશ્યક છે. ડાયનેમિક એરે એક્સેલમાં, તે એન્ટર કી સાથે પૂર્ણ થયેલ સામાન્ય ફોર્મ્યુલા તરીકે કામ કરે છે.
એક્સેલ 365 અને 2021માં:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1, ""))
પરિણામે, બધા ટેક્સ્ટ અક્ષરો કોષમાંથી દૂર કરવામાં આવે છે અને નંબરો રાખવામાં આવે છે:
આ ફોર્મ્યુલા કેવી રીતે કાર્ય કરે છે:
તર્કને વધુ સારી રીતે સમજવા માટે, ચાલો તપાસ કરવાનું શરૂ કરીએ અંદરથી સૂત્ર:
તમે ક્યાં તો ROW(INDIRECT("1:"&LEN(string))) અથવા SEQUENCE(LEN(સ્ટ્રિંગ)) નો ઉપયોગ કરીને કુલ સંખ્યાને અનુરૂપ સંખ્યાઓનો ક્રમ બનાવો છો સ્ત્રોત શબ્દમાળામાં અક્ષરોની સંખ્યા, અને પછી તે અનુક્રમિક સંખ્યાઓને MID ફંક્શનમાં પ્રારંભિક સંખ્યા તરીકે ફીડ કરો. B2 માં, સૂત્રનો આ ભાગ નીચે મુજબ દેખાય છે:
MID(A2, {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}, 1)
MID ફંક્શન એ 2 માંથી દરેક અક્ષરને બહાર કાઢે છે જે પહેલાથી શરૂ થાય છે અને તેમને એરે તરીકે પરત કરે છે:
{"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;"";"";"";"";"";"";"";"";"";"";"";""})
ટીપ. એક્સેલ 2016 - 2007 માટે, એક ઉકેલ પણ અસ્તિત્વમાં છે, પરંતુ ફોર્મ્યુલા વધુ જટિલ છે. તમે તેને આ ટ્યુટોરીયલમાં શોધી શકો છો: Excel માં નંબરો કેવી રીતે કાઢવા.
નંબરમાંથી ટેક્સ્ટ દૂર કરવા માટે કસ્ટમ ફંક્શન
સોલ્યુશન બધા એક્સેલ વર્ઝન માટે કામ કરે છે
જો તમે એક્સેલના જૂના વર્ઝનનો ઉપયોગ કરી રહ્યાં હોવ અથવા ઉપરોક્ત સૂત્રો પણ શોધો યાદ રાખવું મુશ્કેલ છે, સરળ વાક્યરચના અને વપરાશકર્તા મૈત્રીપૂર્ણ નામ જેમ કે RemoveText સાથે તમારું પોતાનું કાર્ય બનાવવાથી કંઈપણ તમને અટકાવતું નથી. વપરાશકર્તા-વ્યાખ્યાયિત કાર્ય (UDF) બે રીતે લખી શકાય છે:
VBA કોડ 1:
અહીં, આપણે સ્રોત સ્ટ્રીંગમાં દરેક અક્ષરને એક દ્વારા જોઈએ છીએ એક અને તપાસો કે તે સંખ્યાત્મક છે કે નહીં. જો સંખ્યા હોય, તો પરિણામી સ્ટ્રિંગમાં અક્ષર ઉમેરવામાં આવે છે.
ફંક્શન RemoveText(string as ) sRes as String sRes = "" માટે i = 1 થી Len(str) જો True = IsNumeric(Mid(str, i) , 1)) પછી sRes = sRes & Mid(str, i, 1) End If Next i RemoveText = sRes End ફંક્શનVBA કોડ 2:
કોડ રેગ્યુલર એક્સપ્રેશન પર પ્રક્રિયા કરવા માટે ઑબ્જેક્ટ બનાવે છે. RegExp નો ઉપયોગ કરીને, અમે સ્રોત સ્ટ્રિંગમાંથી 0-9 અંકો સિવાયના બધા અક્ષરો દૂર કરીએ છીએ.
CreateObject ( "VBScript.RegExp" ) સાથે સ્ટ્રિંગ તરીકે ફંક્શન RemoveText(string as ) .ગ્લોબલ = True .Pattern = "[^0-9]" RemoveText = .Replace(str, "" ) એન્ડ ફંક્શન સાથે અંતનાની વર્કશીટ્સ પર, બંને કોડ સમાન રીતે સારું પ્રદર્શન કરશે. મોટી વર્કશીટ્સ પર જ્યાં ફંક્શનને સેંકડો અથવા હજારો વખત કહેવામાં આવે છે, કોડ 2 કે જે VBScript.RegExp નો ઉપયોગ કરે છે તે ઝડપથી કાર્ય કરશે.
તમારી વર્કબુકમાં કોડ દાખલ કરવા માટેના વિગતવાર પગલાં અહીં મળી શકે છે: VBA કેવી રીતે દાખલ કરવું એક્સેલમાં કોડ.
તમે જે પણ અભિગમ પસંદ કરો છો, અંતિમ-વપરાશકર્તાના પરિપ્રેક્ષ્યમાં, ટેક્સ્ટને કાઢી નાખવા અને નંબરો છોડવાનું કાર્ય આના જેટલું સરળ છે:
RemoveText(string)દાખલા તરીકે, સેલ A2 માંથી બિન-સંખ્યાત્મક અક્ષરો દૂર કરો, B2 માં સૂત્ર છે:
=RemoveText(A2)
તેને કૉલમ નીચે કૉપિ કરો, અને તમને આ પરિણામ મળશે:
નોંધ. મૂળ સૂત્રો અને કસ્ટમ ફંક્શન બંને સંખ્યાત્મક સ્ટ્રિંગ આઉટપુટ કરે છે. તેને સંખ્યામાં ફેરવવા માટે, પરિણામને 1 વડે ગુણાકાર કરો, અથવા શૂન્ય ઉમેરો, અથવા સૂત્રને VALUE કાર્યમાં લપેટો. ઉદાહરણ તરીકે:
=RemoveText(A2) + 0
=VALUE(RemoveText(A2))
એક્સેલમાં ટેક્સ્ટ સ્ટ્રિંગમાંથી નંબરો કેવી રીતે દૂર કરવા
સોલ્યુશન 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), ""))એક્સેલ 2019 માં, Ctrl + Shift + Enter કીને એકસાથે દબાવીને તેને એરે ફોર્મ્યુલા બનાવવાનું યાદ રાખો.
Excel 365 અને 2021 માટે:
TEXTJOIN("", TRUE, IF(ISERROR(MID( cell , 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}
{"";"";"";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
આ અંતિમ એરે TEXTJOIN પર પસાર થાય છે, તેથી તે ટેક્સ્ટ અક્ષરોને જોડે છે અને આઉટપુટ કરે છે પરિણામ.
ટેક્સ્ટમાંથી નંબરો દૂર કરવા માટે કસ્ટમ ફંક્શન
સોલ્યુશન બધા એક્સેલ વર્ઝન માટે કામ કરે છે
ધ્યાનમાં રાખીને કે મજબૂત ફોર્મ્યુલા રાખવી જોઈએ સરળ, હું કોઈપણ આંકડાકીય અક્ષરને દૂર કરવા માટે વપરાશકર્તા-વ્યાખ્યાયિત ફંક્શન (UDF) નો કોડ શેર કરીશ.
VBA કોડ 1:
ફંક્શન રીમુવ નંબર્સ(str એઝ સ્ટ્રિંગ) ડિમ સ્ટ્રિંગ તરીકે sRes sRes = "" i = 1 થી Len(str) માટે જો False = IsNumeric(Mid(str, i, 1)) તો sRes = sRes & Mid(str, i, 1) End If Next i RemoveNumbers = sRes End ફંક્શનVBA કોડ 2:
ફંક્શન RemoveNumbers(strિંગ તરીકે ) CreateObject ( "VBScript.RegExp" સાથે સ્ટ્રિંગ તરીકે ) .ગ્લોબલ = સાચું .પેટર્ન = "[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) String Dim sNum, sText, sChar એ સ્ટ્રિંગ તરીકે sCurChar = sNum = sText = "" માટે i = 1 થી Len(str) sCurChar = Mid(str, i, 1) જો True = IsNumeric(sCurChar) તો sNum = sNum & sCurChar બાકી sText = sText & sCurChar End જો આગળ i જો True = is_remove_text પછી SplitTextNumbers = sNum અન્યથા SplitTextNumbers = sText End જો End ફંક્શનVBA કોડ 2:
ફંક્શન SplitTextNumbers(str તરીકે સ્ટ્રિંગ , As_remove_text) છે. CreateObject ( "VBScript.RegExp" ) સાથે .ગ્લોબલ = ટ્રુ જો ટ્રુ = છે_કાઢી નાખો_ ટેક્સ્ટ પછી .પેટર્ન = "[^0-9]" બાકી.Pattern = "[0-9]" End If 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))
નંબર અથવા ટેક્સ્ટ દૂર કરવા માટેનું ખાસ સાધન
જેઓ બિનજરૂરી રીતે વસ્તુઓને જટિલ બનાવવાનું પસંદ નથી, હું એક્સેલમાં ટેક્સ્ટ અથવા નંબરો દૂર કરવાની અમારી પોતાની રીત બતાવીશ.
અમારું અલ્ટીમેટ સ્યુટ તમારા એક્સેલ રિબનમાં ઉમેરવામાં આવ્યું છે એમ માનીને, તમે આ કરો છો:
- Ablebits Data ટેબ પર, Text જૂથમાં, દૂર કરો > અક્ષરો દૂર કરો પર ક્લિક કરો.
ટીપ. જો પરિણામોમાં કેટલીક અગ્રણી જગ્યાઓ હોય, તો ટ્રિમ સ્પેસસાધન તેમને કોઈ જ સમયમાં દૂર કરશે.
એક્સેલમાં સ્ટ્રિંગમાંથી ટેક્સ્ટ અથવા સંખ્યાત્મક અક્ષરોને કેવી રીતે દૂર કરવા તે છે. વાંચવા બદલ હું તમારો આભાર માનું છું અને આવતા અઠવાડિયે તમને અમારા બ્લોગ પર મળવાની રાહ જોઉં છું!
ઉપલબ્ધ ડાઉનલોડ્સ
એક્સેલમાં ટેક્સ્ટ અથવા નંબરો દૂર કરો - ઉદાહરણો (.xlsm ફાઇલ)
અલ્ટીમેટ સ્યુટ - ટ્રાયલ વર્ઝન (.exe ફાઇલ)