අන්තර්ගත වගුව
මෙම නිබන්ධනය දේශීය සූත්ර සහ අභිරුචි ශ්රිත භාවිතයෙන් Excel හි අංක වලින් පෙළ වෙන් කරන්නේ කෙසේදැයි ඔබට කියා දෙනු ඇත. පෙළ සහ ඉලක්කම් වෙන වෙනම තීරු දෙකකට බෙදන්නේ කෙසේදැයි ඔබ ඉගෙන ගනු ඇත.
මෙය සිතන්න: ඔබට විශ්ලේෂණය සඳහා අමු දත්ත ලැබෙන අතර එක් තීරුවක පෙළ සමඟ සංඛ්යා මිශ්ර වී ඇති බව සොයා ගන්න. බොහෝ අවස්ථාවන්හිදී, සමීපව පරීක්ෂා කිරීම සඳහා ඒවා වෙනම තීරුවල තිබීම නිසැකවම වඩාත් පහසු වනු ඇත.
ඔබ සමජාතීය දත්ත සමඟ වැඩ කරන්නේ නම්, ඔබට බොහෝ විට LEFT, RIGHT සහ MID ශ්රිතයන් උපුටා ගැනීම සඳහා භාවිතා කළ හැක. එකම ස්ථානයේ සිට එකම අක්ෂර ගණන. නමුත් එය රසායනාගාර පරීක්ෂණ සඳහා කදිම අවස්ථාවකි. සැබෑ ජීවිතයේ දී, ඔබ පෙළට පෙර, පෙළට පසුව හෝ පෙළ අතර අංක එන අසමාන දත්ත සමඟ කටයුතු කිරීමට බොහෝ දුරට ඉඩ ඇත. පහත උදාහරණ මෙම නඩුව සඳහා හරියටම විසඳුම් සපයයි.
පෙළ ඉවත් කර Excel සෛල තුළ අංක තබා ගන්නේ කෙසේද
විසඳුම Excel 365, Excel 2021 හි ක්රියා කරයි , සහ Excel 2019
Microsoft Excel 2019 විසින් පෙර අනුවාදවල නොමැති නව ශ්රිත කිහිපයක් හඳුන්වා දුන් අතර, අපි එවැනි එක් ශ්රිතයක් වන TEXTJOIN, කොටුවකින් පෙළ අකුරු ඉවත් කිරීමට භාවිතා කරන්නෙමු. සංඛ්යා අඩංගුය.
සාමාන්ය සූත්රය වන්නේ:
TEXTJOIN("", TRUE, IFERROR(MID( cell, ROW(INDIRECT( "1:""&LEN(<1)>cell))), 1) *1, ""))Excel 365 සහ 2021, මෙයද ක්රියා කරයි:
TEXTJOIN("", TRUE,IFERROR(MID( cell, SEQUENCE(LEN( cell)), 1) *1, ""))මුලින්ම බැලූ බැල්මට, සූත්ර තරමක් බිය උපදවන සේ පෙනේ, නමුත් ඒවා ක්රියා කරයි :)
උදාහරණයක් ලෙස, A2 හි ඇති සංඛ්යාවලින් පෙළ ඉවත් කිරීමට, පහත සූත්රවලින් එකක් B2 තුළ ඇතුළත් කරන්න, ඉන්පසු එය අවශ්ය තරම් සෛල ගණනකට පිටපත් කරන්න.
Excel 365 - 2019:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2))), 1) *1, ""))
Excel 2019 හි, එය Ctrl + Shift + Enter සමඟ අරා සූත්රයක් ලෙස ඇතුළත් කළ යුතුය. ගතික array 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 සිට සෑම අක්ෂරයක්ම පළමු එකෙන් ආරම්භ කර ඒවා අරාවක් ලෙස ලබා දෙයි:
0> {"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 පරිසීමකය සඳහා හිස් තන්තුවක් ("") භාවිතයෙන් තර්කය සත්ය ලෙස සකසා ඇත:
TEXTJOIN("", TRUE, {2;1;0;"";"";"";"";"";"";"";"";"";"";"";""})
ඉඟිය. Excel 2016 - 2007 සඳහා, විසඳුමක් ද පවතී, නමුත් සූත්රය වඩාත් සංකීර්ණ වේ. ඔබට මෙම නිබන්ධනය තුළ එය සොයාගත හැකිය: Excel හි අංක උපුටා ගන්නේ කෙසේද.
අංකවලින් පෙළ ඉවත් කිරීමට අභිරුචි කාර්යය
සියලුම Excel අනුවාද සඳහා විසඳුම ක්රියා කරයි
ඔබ Excel හි පැරණි අනුවාදයක් භාවිතා කරන්නේ නම් හෝ ඉහත සූත්රද සොයාගන්න මතක තබා ගැනීමට අපහසුය, සරල වාක්ය ඛණ්ඩයක් සහ RemoveText වැනි පරිශීලක-හිතකාමී නමකින් ඔබේම කාර්යයක් නිර්මාණය කිරීමෙන් කිසිවක් ඔබව වළක්වන්නේ නැත. පරිශීලක-නිර්වචනය කරන ලද ශ්රිතය (UDF) ආකාර දෙකකින් ලිවිය හැක:
VBA කේතය 1:
මෙහි, අපි මූලාශ්ර තන්තුවේ එක් එක් අක්ෂර එකින් එක බලමු. එකක් සහ එය සංඛ්යාත්මකද නැද්ද යන්න පරීක්ෂා කරන්න. අංකයක් නම්, ලැබෙන තන්තුවට අක්ෂරය එකතු වේ.
Function RemoveText(str String ලෙස ) Dim sRes 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 FunctionVBA කේතය 2:
සාමාන්ය ප්රකාශනයක් සැකසීමට කේතය වස්තුවක් නිර්මාණය කරයි. RegExp භාවිතයෙන්, අපි 0-9 ඉලක්කම් හැර අනෙකුත් සියලුම අක්ෂර මූලාශ්ර තන්තුවෙන් ඉවත් කරමු.
ශ්රිතය RemoveText(string ලෙස ) CreateObject සමග String ලෙස ( "VBScript.RegExp" ) .Global = True .Pattern = "[^0-9]" RemoveText = .ප්රතිස්ථාපනය (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( cell , ROW(INDIRECT)"1:"&LEN( සෛලය ) )), 1) *1), MID( සෛල , ROW(INDIRECT("1:"&LEN( ) cell ))), 1), ""))Excel 2019 හි, Ctrl + Shift + Enter යතුරු එකට එබීමෙන් එය අරා සූත්රයක් බවට පත් කිරීමට මතක තබා ගන්න.
0>Excel 365 සහ 2021 සඳහා: TEXTJOIN("", TRUE, IF(ISERROR(MID( cell ), SEQUENCE(LEN( cell 1) *1), MID ( cell , SEQUENCE(LEN( cell )), 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(string As ) අඳුරු sRes String ලෙස sRes = "" සඳහා i = 1 සිට Len(str) False = IsNumeric(Mid(str, i, 1)) එවිට sRes = sRes & Mid(str, i, 1) End ඊලග නම් i RemoveNumbers = sRes End FunctionVBA code 2:
ශ්රිතය RemoveNumbers(string ලෙස ) CreateObject සමග String ලෙස ( "VBScript.RegExp" ) .Global = True .Pattern = "[0-9]" RemoveNumbers2 = .Replace(str, "" ) End With End FunctionRemoveText ශ්රිතයේ මෙන්, දෙවන කේතය භාවිතා කිරීම වඩා හොඳය. මහාකාර්ය සාධනය ප්රශස්ත කිරීම සඳහා වැඩ පත්රිකා.
ඔබගේ වැඩපොතට කේතය එක් කළ පසු, ඔබට මෙම අභිරුචි ශ්රිතය භාවිතයෙන් කොටුවකින් සියලුම සංඛ්යාත්මක අක්ෂර ඉවත් කළ හැක:
RemoveNumbers(string)අපගේ නඩුවේදී, B2 හි සූත්රය වන්නේ:
=RemoveNumbers(A2)
ප්රමුඛ හිස්තැන් තිබේ නම් කැපීමට, ඔබ ස්වදේශීය සූත්රයක් මෙන් TRIM තුළ අභිරුචි ශ්රිතය කැදවා ගන්න:
=TRIM(RemoveNumbers(A2))
සංඛ්යා සහ පෙළ වෙනම තීරුවලට බෙදන්න
ඔබට පෙළ සහ අංක තීරු දෙකකට වෙන් කිරීමට අවශ්ය වූ විට, කාර්යය තනි සූත්රයකින් සිදු කිරීම සතුටක්. , එකඟද? මේ සඳහා, අපි හුදෙක් RemoveText සහ RemoveNumbers ශ්රිතවල කේතය SplitTextNumbers නමින් එක් ශ්රිතයකට ඒකාබද්ධ කරන්නෙමු, හෝ සරලව Split , හෝ ඔබ කැමති ඕනෑම දෙයක් :)
VBA කේතය 1:
Function SplitTextNumbers(str String ලෙස , is_remove_text ලෙස Boolean ) String Dim ලෙස sNum, sText, sChar String ලෙස sCurChar = sNum = sText = "" සඳහා i = 1 සිට Len(str) sCurChar = Mid(str, i, 1) True = IsNumeric(sCurChar) නම් sNum = sNum & sCurChar Else sText = sText & sCurChar End ඊලග නම් i True = is_remove_text එවිට SplitTextNumbers = sNum Else SplitTextNumbers = sText End නම් අවසන් ශ්රිතයVBA කේතය 2:
Function SplitTextNumbers(string_text ලෙස String_text ලෙස) CreateObject සමඟින් ( "VBScript.RegExp" ) .Global = True නම් True = is_remove_text එවිට .රටාව = "[^0-9]" වෙනත්.Pattern = "[0-9]" End If SplitTextNumbers = .ප්රතිස්ථාපනය (str, "" ) අවසන් ශ්රිතයෙන් අවසන් කරන්නඅපගේ නව අභිරුචි ශ්රිතයට තර්ක දෙකක් අවශ්ය වේ:
SplitTextNumbers(string, is_remove_text)කොහේද is_remove_text යනු කුමන අක්ෂර ඉවත් කළ යුතුද යන්න දැක්වෙන බූලියන් අගයකි:
- සත්ය හෝ 1 - පෙළ ඉවත් කර අංක තබා ගන්න
- FALSE හෝ 0 - අංක ඉවත් කර පෙළ තබා ගන්න
අපගේ නියැදි දත්ත කට්ටලය සඳහා, සූත්ර මෙම පෝරමය ගනී:
සංඛ්යාත්මක නොවන අක්ෂර ඉවත් කිරීමට:
=SplitTextNumbers(A2, TRUE)
සංඛ්යාත්මක අක්ෂර මැකීමට :
=SplitTextNumbers(A2, FALSE)
ඉඟිය. ප්රමුඛ අවකාශයේ ඇති විය හැකි ගැටලුවක් මඟහරවා ගැනීම සඳහා, TRIM ශ්රිතය තුළ අංක ඉවත් කරන සූත්රය සෑම විටම එතීමට මම නිර්දේශ කරමි:
=TRIM(SplitTextNumbers(A2, FALSE))
සංඛ්යා හෝ පෙළ ඉවත් කිරීමට විශේෂ මෙවලම
කරන අය සඳහා අනවශ්ය ලෙස දේවල් සංකීර්ණ කිරීමට කැමති නැත, මම Excel හි පෙළ හෝ අංක ඉවත් කරන අපේම ක්රමයක් පෙන්වන්නම්.
අපේ Ultimate Suite එක ඔබේ Excel රිබනයට එකතු කර ඇතැයි උපකල්පනය කර, ඔබ කරන්නේ මෙයයි:
- Ablebits Data ටැබය මත, පෙළ සමූහයේ, ඉවත් කරන්න > අනුලකුණු ඉවත් කරන්න .
ඉඟිය. ප්රතිඵලවල ප්රමුඛ අවකාශයන් කිහිපයක් තිබේ නම්, ටිම් ස්පේස්මෙවලම ඉක්මනින් ඒවා ඉවත් කරනු ඇත.
ඒ තමයි Excel හි තන්තුවකින් පෙළ හෝ සංඛ්යාත්මක අක්ෂර ඉවත් කරන ආකාරය. කියවීම ගැන මම ඔබට ස්තූතිවන්ත වන අතර ලබන සතියේ අපගේ බ්ලොගයේ ඔබව දැකීමට බලාපොරොත්තු වෙමි!
ලබාගත හැකි බාගැනීම්
Excel හි පෙළ හෝ අංක ඉවත් කරන්න - උදාහරණ (.xlsm ගොනුව)
Ultimate Suite - අත්හදා බැලීමේ අනුවාදය (.exe ගොනුව)