0

ថ្ងៃនេះខ្ញុំសូមលើកយកពីវិធីញែកឈ្មោះ ក្នុង Google Sheet ដែលបញ្ជូលមកក្នុង Column តែមួយ តែក្រោយមក អ្នកត្រូវការទិន្នន័យឈ្មោះនេះ ញែកដាច់ជា៣ Column ផ្សេងគ្នាគឺ នាមត្រកូល ឈ្មោះ និងតួនាទី ដោយប្រើរូបមន្ត Regular Expressions ឬ RegEx។ តើហេតុអ្វីត្រូវការ ញែកឈ្មោះធ្វើអ្វី? នេះគ្រាន់តែជាឧទាហរណ៍ នៃសេណារីយ៉ូ ដែលយើងបង្កើតឡើង ឲ្យអ្នកមើលឃើញពីលទ្ធភាព ប្រើប្រាស់ Regular Expression នេះ ប៉ុណ្ណោះ។ អ្នកទាំងអស់គ្នាអាចច្នៃប្រើរូបមន្តនេះតាមតម្រូវការរៀងខ្លួនបាន។ សូមបញ្ចេញសារខាងក្រោម បើសិនអ្នកមានចម្ងល់ផ្សេងៗ។

សេណារីយ៉ូ៖ សាកស្រមៃទៅមើលថាអ្នក បានរៀបចំ Invitation Form មួយអញ្ជើញ មិត្តភក្តិឬ សាធារណជនមកចូលរួមកម្មវិធីរបស់អ្នកនៅតាមអនឡាញ។ ហើយរាល់ពេលដែលនរណាម្នាក់ចុះឈ្មោះ អ្នកចង់ផ្ញើរសារតាមរយះអ៊ីមែល ទៅអ្នកចូលរួម នៅពត៌មានលំអិត អំពីកម្មវិធី។

example register form - post - regex expression divide First Name, Last Name, Title

example register form – post – regex expression divide First Name, Last Name, Title

អ្នកនឹងទទួលពត៌មានអ្នកចូលរួមដូចឧទាហរណ៍ខាងក្រោម។ ពត៌មានដែលអ្នកទទួលបានគឺឈ្មោះពេញ បូករួមទាំងតួនាទី ផងដែរ។

example registration - post - regex expression divide First Name, Last Name, Title

example registration – post – regex expression divide First Name, Last Name, Title

បន្ទាប់មកអ្នកចង់ផ្ញើរសារ​តាមរយះអ៊ីមែលទៅស្វាគមន៍អ្នកចូលរួមកម្មវីធីរបស់អ្នក ក៏ដូចជាផ្ញើរពត៌មានអំពីរបៀបវារះ និងពត៌មានផ្សេងៗទៅកាន់អ្នកចូលរួមដូចឧទាហរណ៍ខាងក្រោម។ តែអ្នកចង់តែ ហៅឈ្មោះ អ្នកចូលរួមតែឈ្មោះប៉ុណ្ណោះ អ្នកមិនត្រូវការត្រកូល អ្នកចូលរួមក្នុងសេចក្តីផ្តើមអ៊ីមែលរបស់អ្នកទេ។

ជាធម្មតាបើសិន​ជា ឈ្មោះដែលគេបញ្ចូលមក មានលំនាំតាមលំដាប់លំដោយ នាមត្រកូល ឈ្មោះ និងតួនាទីរហូតប្រហែលជាយើងមិនចាំបាច់ប្រដល់ RegEx នោះទេ យើងអាចប្រើត្រឹមរូបមន្ត If តម្រៀបគ្នាគ្រប់លក្ខខណ្ឌទៅបានហើយ។

តែជួនកាលអ្នកចូលរួម គាត់បញ្ចូល ឈ្មោះ មានភ្ជាប់នូវសញ្ញាផ្សេងៗ ឬមិនតាមលំដាប់ឈ្មោះ ដោយដាក់ តួនាទីនៅខាងក្រោយ ក្នុងរង្វង់ក្រចក ជាឧទារហណ៍ជាក់ស្តែង។ ករណីនេះយើងនឹងមិនងាយចងរូបមន្ត If បានគ្រប់លក្ខខណ្ឌសម្រាប់គ្រប់ករណីនោះទេ។ នោះបានន័យថារូបមន្តរបស់អ្នកនៅមានចម្លោះប្រហោង អាចឲ្យលក្ខខណ្ឌមួយចំនួនជ្រៀតផុត នឹងផ្តល់លទ្ធផលមិនសុក្រឹតដល់អ្នក។

ដូចនេះហើយទើបយើងត្រូវការប្រើ Regular Expression ។ បញ្ចាក់ Regular Expression នេះប្រើបានតែនៅលើ Google Sheet ប៉ុណ្ណោះ។ បើអ្នកសាកល្បងប្រើរូបមន្តនេះនៅលើ Excel សម្រាប់ពេលបច្ចុប្បន្ននេះ វានឹងមិនតំណើរការឡើយ។

បច្ចុប្បន្ននេះ Regular Expression នៅលើ Google Sheet មានតែ៣ រូបមន្តប៉ុណ្ណោះ គឺ REGEXMATCH, REGEXREPLACE, REGEXEXTRACT។

ការប្រើប្រាស់

REGEXMATCH
=REGEXMATCH(B2, "Dr|Prof|He|Ms|Mrs|Mss")

ចម្លើយទទួលបាន បើក្នុង គម្រូទិន្នន័យមានពាក្យណាមួយដូចជា Dr ឬ Prof  វានឹងបង្ហាញចម្លើយ True ត្រលប់មកវិញ។

ឧទាហរណ៍

REGEXREPLACE
=REGEXREPLACE(B4, "Prof","Dr")

ចម្លើយទទួលបាន បើក្នុង គម្រូទិន្នន័យមានពាក្យ Prof  ហើយរូបមន្តបានផ្លាស់ប្តូរ វាទៅជា Dr ដូចនេះលទ្ធផលគឺDr. Robert Trump

ឧទាហរណ៍

REGEXEXTRACT
=REGEXEXTRACT(B5,"[0-9]+")

ចម្លើយទទួលបាន គម្រូទិន្នន័យមានពាក្យ ទាំងអក្សរនិងលេខ ហើយរូបមន្តបានចាប់ទាញរកទិន្នន័យប្រភេទជាលេខ ចន្លោះពី ០ ដល់ ៩ ហើយសញ្ញា + មានន័យថាចាប់លេខបន្តរមកទោះលេខប៉ុន្មានខ្ទង់ក៏ដោយ។

ឧទាហរណ៍

នេះជាឧទាហរណ៍ខ្លីៗ សម្រាប់ឲ្យអ្នកងាយយល់ ពីការប្រើប្រាស់់ និងអត្ថន័យនៃធាតុផ្សំ REGEX ប៉ុណ្ណោះ។ វាអាស្រ័យតាមទិន្នន័យជាក់ស្តែង ថាតើគម្រូទិន្នន័យមានភាពស្មុគស្មាញកម្រិតណា។ សម្រាប់ខ្ញុំជាអ្នកវិភាគទិន្នន័យធំៗរបស់ក្រុមហ៊ុនអន្តរជាតិ តាមបទពិសោធន៍ពេលខ្លះ អ្នកបញ្ចូល គឺបញ្ចូលលើសពីអ្វីដែលយើងគិតស្មានដល់ទៅទៀត។ ដូចនេះរូបមន្ត ដែលយើងចងនេះត្រូវគិតពីគ្រប់លក្ខខណ្ឌដែលអាចកើតឡើងនៅក្នុងទិន្នន័យរបស់យើង ឧប្បមាថា តួនាទី ឬនាម ត្រកូលពេលខ្លះមិននៅចំតែពេលចាប់ផ្តើមទេ វាអាចនៅកណ្តាល ឬចុងក្រោយ ឈ្មោះអាចមានសញ្ញាផ្សេងគ្នា ឬដកឃ្លាចំហ (WhiteSpace) តួអក្សរក្រុមតូច (a-z) ក្រុមអក្សរធំ(A-Z) ពាក្យពេញពាក្យកាត់ជាដើម។ ដូចនេះយើងត្រូវបង្គុំរូបមន្តបញ្ចូលគ្នា (nest formular)លើពីមួយដើម្បីដោះស្រាយសមីកាមួយនេះ។ រូបមន្តខាងក្រោមនេះអាចចាប់ញែកឈ្មោះ គ្រប់លក្ខខណ្ឌរៀបរាប់ខាងលើនេះបាន៩៩%។

ដំបូង យើងត្រូវចាប់ ទាញរក តួនាទី ពីក្នុងឈ្មោះពេញជាមុនសិន។ ដូចបានរៀបរាប់ខាងលើ តួនាទីអាចមានទីតាំងនៅគ្រប់កន្លែង។ យើងត្រូវប្រើ REGEXREPLACE ដើម្បីស្វែងតួសញ្ញាផ្សេងដែល មិនមែនជាអក្សរនៃឈ្មោះ (ឧ. “, [, _, :, (, ), ], ” ) ហើយលុបចោល។ បន្ទាប់មក គឺយើងប្រើ  REGEXEXTRACT ដើម្បីកំណត់វត្តមាន និងចាប់ចេញមកក្រៅ ពាក្យណាជាតួនាទី ។

=IF(B2="","",query(iferror(regexextract(REGEXREPLACE(B2,"[_:,()]",""),"(?i)(H\.?E|Mr|Mrs|Ms|Mss|Dr|Attn|Prof)\.?"))))

បន្ទាប់មក យើងចាប់ផ្តើមផ្ទៀងផ្ទាត់ធាតុ របស់តួនាទី ខាងលើ និងដកចេញ ឲ្យនៅតែឈ្មោះ ដោយប្រើREGEXREPLACE ។ ហើយពេលនៅសល់តែឈ្មោះ និងត្រកូល យើងញែក ឈ្មោះ និងត្រកូលចេញគ្នាពីដោយប្រើ Split ដោយដកឃ្លា។

=IFERROR(IF(B2="","",SPLIT(REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(B2,H2,""),"[_:,()&]"," "),"[-_)/.,&()?]"," ")," ")))

ឧទាហរណ៍

សូមមើលវិដេអូ ណែនាំដើម្បីស្តាប់ការពន្យល់លំអិត!

និយមន័យ និងការប្រើប្រាស់ ធាតុផ្សំមួយចំនួននៃ Regular Expression

ធាតុផ្សំ

ការប្រើប្រាស់

គម្រូទិន្នន័យ

ចំលក្ខខណ្ឌ

មិនចំលក្ខខណ្ឌ

*

សញ្ញាផ្កាយចាប់យកគ្រប់ពាក្យដែលដូចគម្រូទិន្នន័យ តួអក្សរខាងមុខ និង ខាងក្រោយសញ្ញាផ្កាយនេះ

D*r,

Dr,

Doctor

D.r,
Doct.

?

កំណត់លក្ខខណ្ឌដែលភ្ជាប់ជាមួយឲ្យមិនចាំបាច់ ឬOptional

មើលឧទាហរណ៍ខាងក្រោម

\.?

ចាប់យកទោះបីមាន ឬមិនមានសញ្ញា “.

Dr. Smith,

Dr Smith,

D.r. Smith

“Dr”,

“Dr.”

Smith, D.r. Smith

(?i)

កំណត់ឲ្យផ្ទៀងផ្ទាត់ទិន្នន័យដែលមានតួរអក្សរដូចទោះក្រុមតួអក្សរតូច ឬក្រុមតួអក្សរធំ

Dr. ,

DR ,

dr.

Dr. ,

DR ,

dr.

\b

កំណត់ព្រំដែនបញ្ចប់ការចាប់យកត្រឹមពាក្យដែលរកឃើញ មិនឲ្យបន្តរទៅពាក្យផ្សេង

DR. Smith,

Dr Smith DR,

DR.,

Dr

Smith,

Smith DR

\s

D\sr

D r,

D[tab]r

Dr.,
Doctor

ស្វែងយល់បន្ថែមអំពី រូបមន្ត Regular Expression:

https://support.google.com/docs/answer/62754#regular_expression&zippy=%2Ccommon-regular-expressions

Comments

Comments are closed.

You may also like