Regex භාවිතයෙන් Excel හි ඇති whitespaces සහ හිස් රේඛා ඉවත් කරන්න

  • මේක Share කරන්න
Michael Brown

වඩාත්ම ඵලදායි ආකාරයෙන් whitespaces හැසිරවීමට කැමතිද? කොටුවක ඇති සියලුම හිස්තැන් ඉවත් කිරීමට සාමාන්‍ය ප්‍රකාශන භාවිතා කරන්න, බහු හිස්තැන් තනි අක්ෂරයකින් ප්‍රතිස්ථාපනය කරන්න, ඉලක්කම් අතර හිස්තැන් පමණක් සීමා කරන්න, සහ තවත් බොහෝ දේ.

ඔබ භාවිතා කරන කුමන ආදාන දත්ත වුවත්, ඔබට හමු නොවනු ඇත. අවකාශ නොමැති දත්ත කට්ටලය. බොහෝ අවස්ථාවන්හීදී, whitespace හොඳයි - ඔබ එය වටහා ගැනීම පහසු කිරීම සඳහා විවිධ තොරතුරු කොටස් දෘශ්‍යමය වශයෙන් වෙන් කිරීමට එය භාවිතා කරයි. කෙසේ වෙතත්, සමහර අවස්ථා වලදී, එය නරක විය හැක - අමතර හිස්තැන් ඔබේ සූත්‍ර අවුල් කර ඔබගේ වැඩ පත්‍රිකා පාහේ කළමනා කළ නොහැකි තත්වයට පත් කළ හැක.

    Excel හි සුදු අවකාශ කප්පාදු කිරීමට සාමාන්‍ය ප්‍රකාශනය භාවිතා කරන්නේ ඇයි?

    අපි Excel වැඩපත්‍රවල සුදු අවකාශ ඉවත් කිරීමට සාමාන්‍ය ප්‍රකාශන භාවිතා කිරීමේ අශික්ෂිත බව වෙත කිමිදීමට පෙර, මුලින්ම සිතට නැගෙන ප්‍රශ්නය විසඳීමට මම කැමතියි - Excel සතුව දැනටමත් TRIM ඇති විට අපට regexes අවශ්‍ය වන්නේ ඇයි? ශ්‍රිතය?

    වෙනස තේරුම් ගැනීමට, එක් එක් අවස්ථාවෙහි සුදු අවකාශය ලෙස සලකන දේ බලමු:

    • බිල්ට් TRIM ශ්‍රිතයට අවකාශ අක්ෂරය පමණක් ඉවත් කළ හැක. එයට 7-bit ASCII පද්ධතියේ 32 අගයක් ඇත.
    • සාමාන්‍ය ප්‍රකාශන මඟින් හිස් අවකාශයේ විවිධ ආකාර කිහිපයක් හඳුනා ගත හැක ( ), ටැබ් (\t), carriage return (\r) සහ නව රේඛාව (\n). මීට අමතරව, මෙම සියලු වර්ගවලට ගැලපෙන whitespace අක්ෂරය (\s) ඇත සහ අමු ආදානය පිරිසිදු කිරීම සඳහා අතිශයින් උපකාරී වේ.දත්ත.

    තිරය පිටුපස සිදුවන්නේ කුමක්ද යන්න නිවැරදිව දැන සිටීම, විසඳුමක් සැකසීමට වඩා පහසුයි නේද?

    Excel හි සාමාන්‍ය ප්‍රකාශන සබල කරන්නේ කෙසේද

    කොටුවෙන් පිටත Excel සාමාන්‍ය ප්‍රකාශන සඳහා සහය නොදක්වන බව කවුරුත් දන්නා කරුණකි. ඒවා සක්‍රීය කිරීමට, ඔබ අභිරුචි VBA ශ්‍රිතයක් නිර්මාණය කළ යුතුය. වාසනාවකට මෙන්, අපට දැනටමත් RegExpReplace නමින් එකක් ඇත. ඉන්න, අපි ඉවත් කිරීම ගැන කතා කරන අතරතුර "ප්‍රතිස්ථාපනය" කරන්නේ ඇයි? Excel භාෂාවෙන්, "ඉවත් කරන්න" යනු "හිස් තන්තුවකින් ප්‍රතිස්ථාපනය කරන්න" සඳහා තවත් වචනයක් පමණි :)

    ඔබගේ Excel වෙත ශ්‍රිතය එක් කිරීමට, එහි කේතය මෙම පිටුවෙන් පිටපත් කර, එය VBA සංස්කාරකයේ අලවන්න. , සහ ඔබගේ ගොනුව සාර්ව සක්‍රීය වැඩපොතක් ලෙස සුරකින්න (.xlsm).

    ඔබගේ යොමුව සඳහා ශ්‍රිතයේ වාක්‍ය ඛණ්ඩය මෙන්න:

    RegExpReplace(text, pattern, replacement, [instance_num] , [match_case])

    පළමු තර්ක තුන අවශ්‍යයි, අවසාන දෙක විකල්පයි.

    මෙතැන:

    • පෙළ - මුල් තන්තුව සොයන්න ඉවත් කිරීමට whitespaces , ඔබ මෙම තර්කය සකසනු ඇත:
      • හිස් තන්තුව ("") සම්පූර්ණයෙන්ම සියලු හිස්තැන් කැපීමට
      • අවකාශය අක්ෂර (" ") බහු අවකාශ අනුලකුණකින් ප්‍රතිස්ථාපනය කිරීමට
    • Instance_num (විකල්ප) - නිදර්ශන අංකය. බොහෝ අවස්ථාවන්හිදී, ඔබ සියලු අවස්ථා ප්‍රතිස්ථාපනය කිරීමට එය මග හරිනු ඇත(පෙරනිමිය).
    • Match_case (විකල්ප) - (සත්‍ය) හෝ නොසලකා හැරීම (අසත්‍ය) පෙළ අවස්ථාවද යන්න දැක්වෙන බූලියන් අගයකි. whitespace සඳහා, එය අනදාල වන අතර එබැවින් ඉවත් කර ඇත.

    වැඩිදුර තොරතුරු සඳහා කරුණාකර RegExpReplace ශ්‍රිතය බලන්න.

    regex සමඟ සුදු අවකාශය ඉවත් කරන්නේ කෙසේද - උදාහරණ

    සමඟ RegExpReplace ශ්‍රිතය ඔබගේ වැඩපොතට එක් කර ඇත, අපි එකින් එක විවිධ අවස්ථා වලට මුහුණ දෙමු.

    regex භාවිතයෙන් සියලුම whitespaces ඉවත් කරන්න

    තන්තුවක ඇති සියලුම හිස්තැන් ඉවත් කිරීමට, ඔබ සරලවම ඇතුළුව, ඕනෑම whitespace අක්ෂරයක් සොයන්න. ඉඩක්, ටැබ් එකක්, කැරිජ් රිටර්න් එකක් සහ රේඛා සංග්‍රහයක්, ඒවා හිස් තන්තුවකින් ("") ප්‍රතිස්ථාපනය කරන්න.

    රටාව : \s+

    1>ප්‍රතිස්ථාපනය : ""

    ප්‍රභව තන්තුව A5 හි ඇතැයි උපකල්පනය කළහොත්, B5 හි සූත්‍රය වන්නේ:

    =RegExpReplace(A5, "\s+", "")

    ඔබේ රටා කළමනාකරණය කිරීම පහසු කිරීම සඳහා , ඔබට $A$2 වැනි නිරපේක්ෂ සඳහනක් භාවිතයෙන් පූර්ව නිශ්චිත කොටුවකට regex ඇතුළත් කර එය සූත්‍රයට සැපයිය හැක, එබැවින් සූත්‍රය තීරුවේ පහළට පිටපත් කිරීමේදී සෛල ලිපිනය නොවෙනස්ව පවතිනු ඇත.

    =RegExpReplace(A5, $A$2, "")

    සුදු ඉඩ එකකට වඩා ඉවත් කරන්න

    අමතර හිස් ඉඩ ඉවත් කිරීමට (එනම් tha වැඩි n එක දිගට හිස්), එකම regex \s+ භාවිතා කරන්න, නමුත් සොයාගත් ගැලපීම් තනි අවකාශ අක්ෂරයකින් ප්‍රතිස්ථාපනය කරන්න.

    රටාව : \s+

    ප්‍රතිස්ථාපනය : " "

    =RegExpReplace(A5, "\s+", " ")

    මෙම සූත්‍රය එක් අවකාශ අක්ෂරයක් අතර පමණක් නොව එක් අවකාශ අක්ෂරයක් තබා ගන්නා බව කරුණාවෙන් සලකන්නදත්ත කට්ටලයට පහළින්, ඔබට පේළි කිහිපයක් නොවෙනස්ව තබා ගනිමින්, සියලු ප්‍රමුඛ/පෙරමුණු අවකාශයන් සහ එක් අවකාශයක් හැර අනෙක් සියල්ල කපා දැමීමට අවශ්‍ය යැයි සිතමු. කාර්යය ඉටු කිරීමට, ඔබට වෙනස් RegExpReplace ශ්‍රිත දෙකක් අවශ්‍ය වනු ඇත.

    පළමු ශ්‍රිතය බහු අවකාශ අනුලකුණකින් ප්‍රතිස්ථාපනය කරයි. පේළියක ආරම්භයේ සහ අවසානයේ සිට:

    =RegExpReplace(A5, "^ +| +$", "")

    ශ්‍රිත දෙක එකකට එකකට කැදවන්න:

    =RegExpReplace(RegExpReplace(A5, " +", " "), "^ +| +$", "")

    ඔබට ලැබෙනු ඇත පරිපූර්ණ ප්‍රතිඵලය:

    එක් අක්ෂරයකින් බහුවිධ අවකාශයන් ප්‍රතිස්ථාපනය කිරීමට Regex

    ඔබට අවශ්‍ය නම් තන්තුවකින් සියලුම හිස්තැන් ඉවත් කර එක් එක් අනුක්‍රමික හිස් කණ්ඩායම් ප්‍රතිස්ථාපනය කරන්න නිශ්චිත අනුලකුණක් සමඟින්, ඔබ කළ යුත්තේ මෙයයි:

    පළමුව, ප්‍රමුඛ සහ පසුපසින් යන සුදු අවකාශ කපා හැරීමට මෙම regex භාවිතා කරන්න:

    =RegExpReplace(A8, "^[\s]+|[\s]+$", "")

    ඉන්පසු, ඉහත කාර්යය ඉටු කරන්න වෙනත් RegExpReplace එකක text තර්කය වෙත ඔබ සඳහන් කරන අක්ෂරය සමඟ අඛණ්ඩව සුදු අවකාශ එකක් හෝ කිහිපයක් ප්‍රතිස්ථාපනය කරයි, උදා. hyphen:

    රටාව : \s+

    ප්‍රතිස්ථාපනය : -

    ප්‍රභව තන්තුව A8 හි ඇතැයි උපකල්පනය කරමින්, සූත්‍රය මෙම හැඩය ගනී:

    =RegExpReplace(RegExpReplace(A8, "^[\s]+|[\s]+$", ""), "\s+", "-")

    නැතහොත් ඔබට තිර රුවෙහි පෙන්වා ඇති පරිදි වෙනම සෛල තුළ රටා සහ ප්‍රතිස්ථාපන ඇතුළත් කළ හැක:

    Regex හිස් රේඛා ඉවත් කිරීමට

    එක සෛලයක රේඛා කිහිපයක් ඇති පරිශීලකයන් නිතර අසන ප්‍රශ්නයක් මෙන්න: "මගේ සෛල තුළ හිස් රේඛා ගොඩක් තිබේ. ලබා ගැනීමට ක්‍රමයක් තිබේද?එක් එක් කොටුව හරහා ගොස් එක් එක් පේළිය අතින් මකා දැමීම හැර වෙනත් ඒවා ඉවත් කරන්න?" පිළිතුර: එය පහසුයි!

    වත්මන් රේඛාවේ ආරම්භයේ සිට ^ දක්වා තනි අක්ෂරයක් නොමැති හිස් රේඛා ගැලපීමට ඊළඟ පේළිය \n, regex යනු:

    රටාව : ^\n

    ඔබේ දෘශ්‍යමය වශයෙන් හිස් පේළිවල හිස්තැන් හෝ ටැබ් තිබේ නම්, මෙම සාමාන්‍ය ප්‍රකාශනය භාවිතා කරන්න:

    රටාව : ^[\t ]*\n

    මෙම සූත්‍රය භාවිතයෙන් regex එක හිස් තන්තුවකින් ප්‍රතිස්ථාපනය කරන්න, එවිට සියලුම හිස් රේඛා එකවර නැති වී යනු ඇත!

    =RegExpReplace(A5, $A$2, "")

    RegEx Tools සමඟ whitespaces ඉවත් කිරීම

    ඉහත උදාහරණ මගින් පෙන්නුම් කර ඇත්තේ regexes විසින් සපයනු ලබන අපූරු හැකියාවන්ගෙන් කුඩා කොටසක් පමණි. අවාසනාවකට මෙන්, සියල්ලම නොවේ සම්භාව්‍ය නිත්‍ය ප්‍රකාශනවල විශේෂාංග VBA හි ඇත.

    වාසනාවකට මෙන්, අපගේ Ultimate Suite සමඟ ඇතුළත් කර ඇති RegEx මෙවලම් Microsoft හි .NET RegEx එන්ජිම මඟින් සකසන බැවින් මෙම සීමාවන්ගෙන් නිදහස් වේ. මෙය ඔබට වඩාත් සංකීර්ණ රටා තැනීමට ඉඩ සලසයි. VBA RegExp. Belo විසින් සහාය නොදක්වයි w ඔබ එවැනි නිත්‍ය ප්‍රකාශනයක උදාහරණයක් සොයා ගනු ඇත.

    සංඛ්‍යා අතර ඉඩ ඉවත් කිරීමට Regex

    අක්ෂර සංඛ්‍යා තන්තුවක, ඔබ සංඛ්‍යා අතර සුදු අවකාශ ඉවත් කිරීමට කැමති යැයි සිතන්න, එසේ නම් වැනි තන්තුවක් "A 1 2 B" "A 12 B" බවට පත් වේ.

    ඕනෑම ඉලක්කම් දෙකක් අතර සුදු ඉඩක් ගැලපීමට, ඔබට පහත පෙනුම භාවිතා කළ හැක:

    රටාව : (?<=\d)\s+(?=\d)

    පාදක සූත්‍රයක් සෑදීමටඉහත regexes මත, ක්‍රියාත්මක කිරීමට පහසු පියවර දෙකක් මෙන්න:

    1. Ablebits Data ටැබය මත, Text group හි Regex ක්ලික් කරන්න මෙවලම් .

    2. Regex Tools කවුළුවෙහි, මූලාශ්‍ර දත්ත තෝරන්න, ඔබේ regex ඇතුළු කරන්න, ඉවත් කරන්න තෝරන්න. විකල්පය, සහ ඉවත් කරන්න ඔබන්න.

      අගයන් නොව සූත්‍ර ලෙස ප්‍රතිඵල ලබා ගැනීමට, සූත්‍රයක් ලෙස ඇතුළු කරන්න සලකුණු කොටුවේ ටික් එකක් දැමීමට මතක තබා ගන්න.

    මොහොතකින්, මුල් දත්තයේ දකුණට නව තීරුවක ඇතුළත් කර ඇති AblebitsRegexRemove ශ්‍රිතය ඔබට පෙනෙනු ඇත.

    විකල්පයක් ලෙස, ඔබට යම් කොටුවක regex ඇතුළත් කළ හැක. . මෙම ශ්‍රිතය තන්තු ඉවත් කිරීම සඳහා විෙශේෂෙයන් නිර්මාණය කර ඇති බැවින්, එයට අවශ්‍ය වන්නේ තර්ක දෙකක් පමණි - ආදාන තන්තුව සහ regex:

    =AblebitsRegexRemove(A5, $A$2)

    එය හි හිස්තැන් ඉවත් කරන ආකාරයයි. සාමාන්‍ය ප්‍රකාශන භාවිතා කරමින් Excel. කියවීමට මම ඔබට ස්තූතිවන්ත වන අතර ලබන සතියේ අපගේ බ්ලොගයේ ඔබව දැකීමට බලාපොරොත්තු වෙමි!

    ලබාගත හැකි බාගැනීම්

    regex සමඟ සුදු අවකාශය ඉවත් කරන්න - උදාහරණ (.xlsm ගොනුව)

    Ultimate Suite - අත්හදා බැලීමේ අනුවාදය (.exe ගොනුව)

    වචන පමණක් නොව, තන්තුවක ආරම්භයේ සහ අවසානයේ, එය හොඳ නැත. ප්‍රමුඛ සහ පසුපසින් පවතින සුදු අවකාශයෙන් මිදීමට, ඉහත සූත්‍රය ආරම්භයේ සහ අග සිට හිස් අවකාශයන් ඉවත් කරන වෙනත් RegExpReplace ශ්‍රිතයකට කැදවා ගන්න:

    =RegExpReplace(RegExpReplace(A5, "\s+", " "), "^[\s]+|[\s]+$", "")

    Regex to ප්‍රමුඛ සහ පසුපසින් ඇති සුදු අවකාශය ඉවත් කරන්න

    පේළියක ආරම්භයේ හෝ අවසානයේ සුදු අවකාශය සෙවීමට, ආරම්භය ^ සහ අවසානය $ නැංගුරම් භාවිතා කරන්න.

    ප්‍රමුඛ සුදු අවකාශය:

    රටාව : ^[\s]+

    පෙර සුදු අවකාශය:

    රටාව : [\s ]+$

    ප්‍රමුඛ සහ පෙර සුදු අවකාශය:

    රටාව : ^[\s]+

    මයිකල් බ්‍රවුන් යනු මෘදුකාංග මෙවලම් භාවිතයෙන් සංකීර්ණ ක්‍රියාවලීන් සරල කිරීමට දැඩි ආශාවක් ඇති කැපවූ තාක්‍ෂණ ලෝලියෙකි. තාක්‍ෂණ ක්‍ෂේත්‍රයේ දශකයකට වැඩි පළපුරුද්දක් ඇති ඔහු Microsoft Excel සහ Outlook මෙන්ම Google Sheets සහ Docs හි ඔහුගේ කුසලතා ඔප් නංවා ඇත. මයිකල්ගේ බ්ලොගය ඔහුගේ දැනුම සහ ප්‍රවීණත්වය අන් අය සමඟ බෙදා ගැනීමට කැපවී ඇත, ඵලදායිතාව සහ කාර්යක්ෂමතාව වැඩි දියුණු කිරීම සඳහා පහසුවෙන් අනුගමනය කළ හැකි ඉඟි සහ නිබන්ධන සපයයි. ඔබ පළපුරුදු වෘත්තිකයෙකු හෝ ආධුනිකයෙකු වුවද, මයිකල්ගේ බ්ලොගය මෙම අත්‍යවශ්‍ය මෘදුකාංග මෙවලම්වලින් උපරිම ප්‍රයෝජන ලබා ගැනීම සඳහා වටිනා අවබෝධයක් සහ ප්‍රායෝගික උපදෙස් ලබා දෙයි.