លុបចន្លោះទទេ និងបន្ទាត់ទទេនៅក្នុង Excel ដោយប្រើ Regex

  • ចែករំលែកនេះ។
Michael Brown

ចង់​ដោះស្រាយ​ចន្លោះ​ប្រហោង​ក្នុង​វិធី​ដែល​មាន​ប្រសិទ្ធភាព​បំផុត? ប្រើកន្សោមធម្មតាដើម្បីលុបដកឃ្លាទាំងអស់ក្នុងក្រឡាមួយ ជំនួសចន្លោះច្រើនដោយតួអក្សរតែមួយ កាត់ចន្លោះរវាងលេខតែប៉ុណ្ណោះ និងច្រើនទៀត។

ការបញ្ចូលទិន្នន័យណាមួយដែលអ្នកកំពុងប្រើ អ្នកស្ទើរតែមិនជួបប្រទះនឹង សំណុំទិន្នន័យដោយគ្មានចន្លោះ។ ក្នុងករណីភាគច្រើន ចន្លោះប្រហោងគឺល្អ - អ្នកប្រើវាដើម្បីបំបែកបំណែកនៃព័ត៌មានដោយមើលឃើញ ដើម្បីធ្វើឱ្យវាកាន់តែងាយស្រួលក្នុងការយល់ឃើញ។ ទោះយ៉ាងណាក៏ដោយ ក្នុងស្ថានភាពខ្លះ វាអាចនឹងក្លាយទៅជាអាក្រក់ - ចន្លោះបន្ថែមអាចធ្វើឲ្យរូបមន្តរបស់អ្នករញ៉េរញ៉ៃ និងធ្វើឱ្យសន្លឹកកិច្ចការរបស់អ្នកស្ទើរតែមិនអាចគ្រប់គ្រងបាន។

    ហេតុអ្វីត្រូវប្រើកន្សោមធម្មតាដើម្បីកាត់ដកឃ្លាក្នុង Excel?

    មុននឹងយើងចូលទៅក្នុងភាពមិនច្បាស់លាស់នៃការប្រើប្រាស់កន្សោមធម្មតាដើម្បីលុបដកឃ្លាក្នុងសន្លឹកកិច្ចការ Excel ខ្ញុំចង់ដោះស្រាយសំណួរដែលគិតដល់ដំបូង - ហេតុអ្វីបានជាយើងត្រូវការ regexes នៅពេលដែល Excel មាន TRIM រួចហើយ មុខងារ?

    ដើម្បីស្វែងយល់ពីភាពខុសប្លែកគ្នា សូមមើលអ្វីដែលត្រូវបានចាត់ទុកថាជាកន្លែងដកឃ្លានៅក្នុងករណីនីមួយៗ៖

    • មុខងារ TRIM ដែលភ្ជាប់មកជាមួយអាចដកចេញបានតែ តួអក្សរដកឃ្លា ដែលមានតម្លៃ 32 នៅក្នុងប្រព័ន្ធ ASCII 7 ប៊ីត។
    • កន្សោមធម្មតាអាចកំណត់អត្តសញ្ញាណទម្រង់ផ្សេងគ្នាមួយចំនួននៃកន្លែងទំនេរដូចជា ចន្លោះ ( ), ផ្ទាំង (\ t), carriage return (\ r) និង ថ្មី បន្ទាត់ (\n) លើសពីនេះ វាមាន តួអក្សរដកឃ្លា (\s) ដែលត្រូវគ្នានឹងប្រភេទទាំងអស់នេះ ហើយមានប្រយោជន៍ខ្លាំងណាស់សម្រាប់ការសម្អាតធាតុចូលឆៅ។ទិន្នន័យ។

    ដោយដឹងច្បាស់ថាមានអ្វីកើតឡើងនៅពីក្រោយឆាក វាជាការងាយស្រួលក្នុងការដោះស្រាយដំណោះស្រាយមែនទេ?

    របៀបបើកកន្សោមធម្មតានៅក្នុង Excel

    វា​គឺ​ជា​ការ​ពិត​ដែល​គេ​ស្គាល់​ថា Excel ក្រៅ​ប្រអប់​មិន​គាំទ្រ​កន្សោម​ធម្មតា​ទេ។ ដើម្បីបើកពួកវា អ្នកត្រូវបង្កើតមុខងារ VBA ផ្ទាល់ខ្លួន។ ជាសំណាងល្អ យើងមានមួយរួចហើយ ដែលមានឈ្មោះថា RegExpReplace ។ រង់ចាំ ហេតុអ្វីបានជា "ជំនួស" ខណៈពេលដែលយើងកំពុងនិយាយអំពីការដកចេញ? នៅក្នុងភាសា Excel "remove" គឺគ្រាន់តែជាពាក្យមួយផ្សេងទៀតសម្រាប់ "replace with an empty string" :)

    ដើម្បីបន្ថែមមុខងារទៅ Excel របស់អ្នក គ្រាន់តែចម្លងកូដរបស់វាចេញពីទំព័រនេះ បិទភ្ជាប់វានៅក្នុងកម្មវិធីនិពន្ធ VBA ហើយរក្សាទុកឯកសាររបស់អ្នកជា សៀវភៅការងារដែលអាចប្រើម៉ាក្រូ (.xlsm)។

    នេះគឺជាវាក្យសម្ព័ន្ធនៃមុខងារសម្រាប់ឯកសារយោងរបស់អ្នក៖

    RegExpReplace(អត្ថបទ លំនាំ ការជំនួស [instance_num]] , [match_case])

    អាគុយម៉ង់បីដំបូងត្រូវបានទាមទារ ពីរចុងក្រោយគឺស្រេចចិត្ត។

    កន្លែងណា៖

    • អត្ថបទ - ខ្សែអក្សរដើមទៅ ស្វែងរកក្នុង។
    • លំនាំ - regex ដែលត្រូវស្វែងរក។
    • ការជំនួស - អត្ថបទដែលត្រូវជំនួស។ ដើម្បី លុប ដកឃ្លា អ្នកនឹងកំណត់អាគុយម៉ង់នេះទៅជា៖
      • ខ្សែអក្សរទទេ ("") ដើម្បីកាត់ដកឃ្លាទាំងអស់យ៉ាងពិតប្រាកដ<11
      • ដកឃ្លា តួអក្សរ (" ") ដើម្បីជំនួសចន្លោះច្រើនដោយតួអក្សរដកឃ្លាតែមួយ
  • Instance_num (ស្រេចចិត្ត) - លេខឧទាហរណ៍។ ក្នុងករណីភាគច្រើន អ្នកនឹងលុបវាចោល ដើម្បីជំនួសករណីទាំងអស់។។ សម្រាប់កន្លែងដកឃ្លា វាមិនពាក់ព័ន្ធទេ ដូច្នេះហើយត្រូវបានលុបចោល។
  • សម្រាប់ព័ត៌មានបន្ថែម សូមមើលមុខងារ RegExpReplace។

    របៀបលុបដកឃ្លាដោយប្រើ regex - ឧទាហរណ៍

    ជាមួយ មុខងារ RegExpReplace ត្រូវបានបន្ថែមទៅសៀវភៅការងាររបស់អ្នក សូមដោះស្រាយសេណារីយ៉ូផ្សេងៗម្តងមួយៗ។

    លុបដកឃ្លាទាំងអស់ដោយប្រើ regex

    ដើម្បីលុបដកឃ្លាទាំងអស់ក្នុងខ្សែអក្សរ អ្នកគ្រាន់តែស្វែងរកតួអក្សរដកឃ្លាណាមួយ រួមទាំង ដកឃ្លា ផ្ទាំងមួយ ការបញ្ជូនត្រលប់មកវិញ និងផ្ទាំងព័ត៌មាន ហើយជំនួសពួកវាដោយខ្សែអក្សរទទេ ("")។

    លំនាំ : \s+

    ការជំនួស : ""

    សន្មត់ថាខ្សែប្រភពគឺនៅក្នុង A5 រូបមន្តនៅក្នុង B5 គឺ:

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

    ដើម្បីធ្វើឱ្យវាកាន់តែងាយស្រួលក្នុងការគ្រប់គ្រងលំនាំរបស់អ្នក អ្នកអាចបញ្ចូល regex ក្នុងក្រឡាដែលបានកំណត់ជាមុន ហើយផ្គត់ផ្គង់វាទៅរូបមន្តដោយប្រើឯកសារយោងដាច់ខាតដូចជា $A$2 ដូច្នេះអាសយដ្ឋានក្រឡានឹងនៅតែមិនផ្លាស់ប្តូរនៅពេលចម្លងរូបមន្តចុះក្រោមជួរឈរ។

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

    ដកដកឃ្លាច្រើនជាងមួយ

    ដើម្បីលុប ដកឃ្លាបន្ថែម (ឧ. n ចន្លោះជាប់គ្នាមួយ) ប្រើ regex ដូចគ្នា \s+ ប៉ុន្តែជំនួសការផ្គូផ្គងដែលបានរកឃើញដោយតួអក្សរដកឃ្លាតែមួយ។

    លំនាំ : \s+

    ការជំនួស : "

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

    សូមយកចិត្តទុកដាក់ថារូបមន្តនេះរក្សាតួអក្សរដកឃ្លាមួយមិនត្រឹមតែរវាងខាងក្រោមសំណុំទិន្នន័យ ឧបមាថាអ្នកចង់កាត់បន្ថយចន្លោះនាំមុខ/បន្ទាប់ទាំងអស់ និងទាំងអស់លើកលែងតែចន្លោះមួយនៅចន្លោះមួយ ដោយរក្សាបន្ទាត់ជាច្រើននៅដដែល។ ដើម្បីបំពេញភារកិច្ច អ្នកនឹងត្រូវការមុខងារ RegExpReplace ពីរផ្សេងគ្នា។

    មុខងារទីមួយជំនួសចន្លោះច្រើនដោយតួអក្សរដកឃ្លាតែមួយ។

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

    មួយទៀតដកឃ្លា ពីដើម និងចុងបញ្ចប់នៃបន្ទាត់មួយ៖

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

    គ្រាន់តែដាក់មុខងារទាំងពីរទៅមួយទៀត៖

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

    ហើយអ្នកនឹងទទួលបាន លទ្ធផលល្អឥតខ្ចោះ៖

    Regex ដើម្បីជំនួសចន្លោះច្រើនដោយតួអក្សរមួយ

    ក្នុងករណីដែលអ្នកចង់ដកដកឃ្លាទាំងអស់ចេញពីខ្សែអក្សរ ហើយជំនួសក្រុមនីមួយៗនៃចន្លោះជាប់គ្នា ជាមួយនឹងតួអក្សរជាក់លាក់មួយ នេះជាអ្វីដែលអ្នកត្រូវធ្វើ៖

    ដំបូង ប្រើ regex នេះដើម្បីកាត់បន្ថយចន្លោះដែលនាំមុខ និងបន្តបន្ទាប់៖

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

    បន្ទាប់មក បម្រើមុខងារខាងលើ ទៅអាគុយម៉ង់ text នៃ RegExpReplace ផ្សេងទៀតដែលជំនួសកន្លែងទំនេរជាប់គ្នាមួយ ឬច្រើនជាមួយនឹងតួអក្សរដែលអ្នកបញ្ជាក់ ឧ. a សហសញ្ញា៖

    លំនាំ : \s+

    ការជំនួស : -

    សន្មត់ថាខ្សែអក្សរប្រភពស្ថិតនៅក្នុង A8 រូបមន្ត យករូបរាងនេះ៖

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

    ឬអ្នកអាចបញ្ចូលលំនាំ និងការជំនួសនៅក្នុងក្រឡាដាច់ដោយឡែក ដូចបានបង្ហាញក្នុងរូបថតអេក្រង់៖

    Regex ដើម្បីលុបបន្ទាត់ទទេ

    នេះគឺជាសំណួរដែលអ្នកប្រើប្រាស់ដែលមានបន្ទាត់ច្រើនក្នុងក្រឡាមួយសួរញឹកញាប់៖ "មានបន្ទាត់ទទេជាច្រើននៅក្នុងក្រឡារបស់ខ្ញុំ។ តើមានវិធីណាដើម្បីទទួលបានកម្ចាត់ពួកវាក្រៅពីឆ្លងកាត់ក្រឡានីមួយៗ ហើយលុបបន្ទាត់នីមួយៗដោយដៃ?” ចម្លើយ៖ នោះជាការងាយស្រួល!

    ដើម្បីផ្គូផ្គងបន្ទាត់ទទេដែលមិនមានតួអក្សរតែមួយចាប់ពីដើម ^ នៃបន្ទាត់បច្ចុប្បន្នរហូតដល់ បន្ទាត់បន្ទាប់ \n, regex គឺ៖

    លំនាំ : ^\n

    ប្រសិនបើបន្ទាត់ទទេដែលមើលឃើញរបស់អ្នកមានដកឃ្លា ឬផ្ទាំង សូមប្រើកន្សោមធម្មតានេះ៖

    លំនាំ : ^[\t]*\n

    គ្រាន់តែជំនួស regex ដោយខ្សែអក្សរទទេ ដោយប្រើរូបមន្តនេះ ហើយបន្ទាត់ទទេទាំងអស់នឹងរលាយបាត់ក្នុងពេលតែមួយ!

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

    ការដកដកឃ្លាចេញដោយប្រើឧបករណ៍ RegEx

    ឧទាហរណ៍ខាងលើបានបង្ហាញឱ្យឃើញតែផ្នែកតូចមួយនៃលទ្ធភាពដ៏អស្ចារ្យដែលផ្តល់ដោយ regexes ។ ជាអកុសលមិនមែនទាំងអស់ទេ លក្ខណៈពិសេសនៃកន្សោមធម្មតាបុរាណមាននៅក្នុង VBA ។

    ជាសំណាងល្អ ឧបករណ៍ RegEx រួមបញ្ចូលជាមួយឈុត Ultimate របស់យើងគឺមិនមានដែនកំណត់ទាំងនេះទេ ដោយសារពួកវាត្រូវបានដំណើរការដោយម៉ាស៊ីន .NET RegEx របស់ Microsoft ។ វាអនុញ្ញាតឱ្យអ្នកបង្កើតគំរូស្មុគ្រស្មាញបន្ថែមទៀតដែល មិនត្រូវបានគាំទ្រដោយ VBA RegExp. Belo w អ្នកនឹងឃើញឧទាហរណ៍នៃកន្សោមធម្មតាបែបនេះ។

    Regex ដើម្បីដកចន្លោះរវាងលេខ

    នៅក្នុងខ្សែអក្សរអក្សរក្រម ឧបមាថាអ្នកចង់ដកដកឃ្លារវាងលេខតែប៉ុណ្ណោះ ដូច្នេះខ្សែអក្សរដូចជា "A 1 2 B" ក្លាយជា "A 12 B" : (?<=\d)\s+(?=\d)

    ដើម្បីបង្កើតរូបមន្តផ្អែកលើនៅលើ regexes ខាងលើ នេះជាជំហានងាយៗចំនួនពីរដើម្បីអនុវត្ត៖

    1. នៅលើផ្ទាំង Ablebits Data ក្នុងក្រុម Text ចុច Regex Tools .

    2. នៅលើបន្ទះ Regex Tools ជ្រើសរើសប្រភពទិន្នន័យ បញ្ចូល regex របស់អ្នក ជ្រើសរើស Remove ជម្រើស ហើយចុច Remove

      ដើម្បីទទួលបានលទ្ធផលជារូបមន្ត មិនមែនតម្លៃ កុំភ្លេចដាក់សញ្ញាធីកក្នុងប្រអប់ Insert as a formula

    បន្តិចទៀតនេះ អ្នកនឹងឃើញមុខងារ AblebitsRegexRemove ដែលបានបញ្ចូលក្នុងជួរឈរថ្មីនៅខាងស្តាំនៃទិន្នន័យដើម។

    ជាជម្រើស អ្នកអាចបញ្ចូល regex នៅក្នុងក្រឡាមួយចំនួន និយាយថា A5 ហើយបញ្ចូលរូបមន្តដោយផ្ទាល់ក្នុងក្រឡាមួយដោយប្រើប្រអប់ បញ្ចូលមុខងារ ដែល AblebitsRegexRemove ត្រូវបានចាត់ថ្នាក់ក្រោម AblebitsUDFs

    ដោយសារមុខងារនេះត្រូវបានរចនាឡើងយ៉ាងពិសេសសម្រាប់ការដកខ្សែចេញ វាទាមទារតែអាគុយម៉ង់ពីរប៉ុណ្ណោះ - ខ្សែអក្សរបញ្ចូល និង regex៖

    =AblebitsRegexRemove(A5, $A$2)

    នោះហើយជាវិធីដកដកឃ្លានៅក្នុង Excel ដោយប្រើកន្សោមធម្មតា។ ខ្ញុំសូមអរគុណចំពោះការអាន ហើយទន្ទឹងរង់ចាំជួបអ្នកនៅលើប្លក់របស់យើងនៅសប្តាហ៍ក្រោយ!

    ការទាញយកដែលមាន

    លុបដកឃ្លាដោយប្រើ regex - ឧទាហរណ៍ (ឯកសារ .xlsm)

    ឈុតចុងក្រោយ - កំណែសាកល្បង (ឯកសារ .exe)

    ពាក្យ​ក៏​ប៉ុន្តែ​នៅ​ដើម​និង​ចុង​នៃ​ខ្សែ​អក្សរ​មួយ​ដែល​មិន​ល្អ​។ ដើម្បីកម្ចាត់ដកឃ្លាដែលនាំមុខ និងតាមពីក្រោយ សូមដាក់រូបមន្តខាងលើទៅក្នុងមុខងារ RegExpReplace មួយផ្សេងទៀតដែលដកចន្លោះពីដើម និងចុង៖

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

    Regex ទៅ ដកដកឃ្លានាំមុខ និងតាមក្រោយ

    ដើម្បីស្វែងរកចន្លោះទទេនៅដើម ឬចុងបន្ទាត់ សូមប្រើការចាប់ផ្តើម ^ និងបញ្ចប់ $យុថ្កា។

    នាំមុខ ដកឃ្លា៖

    លំនាំ : ^[\s]+

    បន្ទាប់ ដកឃ្លា៖

    លំនាំ : [\s ]+$

    នាំមុខ និង បន្ទាប់ ដកឃ្លា៖

    លំនាំ : ^[\s]+

    ម៉ៃឃើល ប្រោន ជា​អ្នក​ចូល​ចិត្ត​ផ្នែក​បច្ចេកវិទ្យា​ដែល​មាន​ចំណង់​ចំណូល​ចិត្ត​ក្នុង​ការ​សម្រួល​ដំណើរការ​ស្មុគស្មាញ​ដោយ​ប្រើ​ឧបករណ៍​កម្មវិធី។ ជាមួយនឹងបទពិសោធន៍ជាងមួយទស្សវត្សនៅក្នុងឧស្សាហកម្មបច្ចេកវិទ្យា គាត់បានពង្រឹងជំនាញរបស់គាត់នៅក្នុង Microsoft Excel និង Outlook ក៏ដូចជា Google Sheets និង Docs ។ ប្លក់របស់ម៉ៃឃើលគឺឧទ្ទិសដល់ការចែករំលែកចំណេះដឹង និងជំនាញរបស់គាត់ជាមួយអ្នកដទៃ ដោយផ្តល់នូវគន្លឹះ និងមេរៀនដែលងាយស្រួលធ្វើតាមសម្រាប់ការកែលម្អផលិតភាព និងប្រសិទ្ធភាព។ មិនថាអ្នកជាអ្នកជំនាញ ឬអ្នកចាប់ផ្តើមដំបូងទេ ប្លក់របស់ Michael ផ្តល់នូវការយល់ដឹងដ៏មានតម្លៃ និងដំបូន្មានជាក់ស្តែងសម្រាប់ការទទួលបានអត្ថប្រយោជន៍ច្រើនបំផុតពីឧបករណ៍កម្មវិធីសំខាន់ៗទាំងនេះ។