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

ជាធម្មតាបើសិនជា ឈ្មោះដែលគេបញ្ចូលមក មានលំនាំតាមលំដាប់លំដោយ នាមត្រកូល ឈ្មោះ និងតួនាទីរហូតប្រហែលជាយើងមិនចាំបាច់ប្រដល់ 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, |
|
? |
កំណត់លក្ខខណ្ឌដែលភ្ជាប់ជាមួយឲ្យមិនចាំបាច់ ឬ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., |
ស្វែងយល់បន្ថែមអំពី រូបមន្ត Regular Expression:
https://support.google.com/docs/answer/62754#regular_expression&zippy=%2Ccommon-regular-expressions
















Comments