តារាងមាតិកា
ការបង្រៀនបង្ហាញពីរបៀបស្រង់លេខចេញពីខ្សែអក្សរផ្សេងៗក្នុង Excel ដោយប្រើរូបមន្ត និងឧបករណ៍ស្រង់ចេញ។
នៅពេលនិយាយអំពីការស្រង់ចេញផ្នែកនៃខ្សែអក្សរនៃប្រវែងដែលបានផ្តល់ឱ្យ។ , Excel ផ្តល់មុខងារ Substring ចំនួនបី (ឆ្វេង ស្តាំ និងកណ្តាល) ដើម្បីដោះស្រាយកិច្ចការបានយ៉ាងឆាប់រហ័ស។ នៅពេលនិយាយអំពីការស្រង់លេខចេញពីអក្សរអក្សរក្រម Microsoft Excel ផ្តល់... គ្មានអ្វីទេ។
ដើម្បីទទួលបានលេខពីខ្សែអក្សរក្នុង Excel វាត្រូវការភាពប៉ិនប្រសប់បន្តិច អត់ធ្មត់បន្តិច និងមុខងារផ្សេងៗជាច្រើន ជាប់គ្នា។ ឬអ្នកអាចដំណើរការឧបករណ៍ស្រង់ចេញ ហើយបំពេញការងារដោយចុចកណ្ដុរ។ ខាងក្រោមអ្នកនឹងឃើញព័ត៌មានលម្អិតទាំងស្រុងលើវិធីសាស្រ្តទាំងពីរ។
របៀបស្រង់លេខចេញពីចុងបញ្ចប់នៃខ្សែអក្សរ
នៅពេលដែលអ្នកមានជួរឈរនៃអក្សរអក្សរក្រមលេខដែលលេខមកក្រោយ អត្ថបទ អ្នកអាចប្រើរូបមន្តខាងក្រោមដើម្បីទទួលបានវា។
RIGHT( cell, LEN( cell) - MAX(IF(ISNUMBER(MID( cell)>, ROW(INDIRECT("1:"&LEN( cell))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN( cell))), 0)))យើងនឹងរស់នៅលើតក្កវិជ្ជារបស់រូបមន្តបន្តិចក្រោយមក។ សម្រាប់ពេលនេះ គ្រាន់តែជំនួស ក្រឡា ដោយយោងទៅក្រឡាដែលមានខ្សែអក្សរដើម (A2 ក្នុងករណីរបស់យើង) ហើយបញ្ចូលរូបមន្តក្នុងក្រឡាទទេណាមួយក្នុងជួរដូចគ្នា ដោយនិយាយក្នុង B2:
=RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))
រូបមន្តនេះទទួលបានតែលេខពីចុងបញ្ចប់ប៉ុណ្ណោះ។ ប្រសិនបើខ្សែអក្សរមួយក៏មានលេខនៅដើម ឬកណ្តាល នោះពួកវាគឺមិនអើពើ៖
ការស្រង់ចេញត្រូវបានអនុវត្តជាមួយមុខងារ RIGHT ដែលជាកម្មសិទ្ធិរបស់ប្រភេទមុខងារអត្ថបទ។ លទ្ធផលនៃអនុគមន៍នេះគឺតែងតែ text ។ ក្នុងករណីរបស់យើង លទ្ធផលគឺ លេខរង ដែលនៅក្នុងពាក្យ Excel ក៏ជាអក្សរ មិនមែនជាលេខ។
ប្រសិនបើអ្នកត្រូវការលទ្ធផលជា number (ដែលអ្នកអាចប្រើក្នុងការគណនាបន្ថែមទៀត) បន្ទាប់មករុំរូបមន្តទៅក្នុងអនុគមន៍ VALUE ឬធ្វើប្រតិបត្តិការនព្វន្ធដែលមិនផ្លាស់ប្តូរលទ្ធផល និយាយថា គុណនឹង 1 ឬបន្ថែម 0។ ដើម្បីចាប់កំហុសក្នុងខ្សែអក្សរដែលមិនមាន លេខតែមួយ ប្រើមុខងារ IFERROR ។ ឧទាហរណ៍៖
=IFERROR(VALUE(RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1)*1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))), "")
ឬ
=IFERROR(RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0))) +0, "")
ចំណាំ។ នៅក្នុង Dynamic Array Excel (Office 365 និង 2021) អ្នកបញ្ចូលរូបមន្តតាមរបៀបធម្មតាដោយប្រើគ្រាប់ចុចបញ្ចូល។ នៅក្នុង Excel 2019 និងមុននេះ វាដំណើរការតែជារូបមន្តអារេ ដូច្នេះកុំភ្លេចចុច Ctrl + Shift + Enter ដើម្បីបញ្ចប់វា។
របៀបដែលរូបមន្តនេះដំណើរការ៖
ដើម្បីស្រង់លេខចេញពីខ្សែអក្សរអក្សរក្រមលេខ រឿងដំបូងដែលអ្នកត្រូវដឹងគឺកន្លែងដែលត្រូវចាប់ផ្តើមការស្រង់ចេញ។ ទីតាំងនៃតួអក្សរដែលមិនមែនជាលេខចុងក្រោយនៅក្នុងខ្សែអក្សរមួយត្រូវបានកំណត់ដោយជំនួយនៃរូបមន្តដ៏លំបាកនេះ៖
MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:")"&LEN( A2))), 1)*1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0))
ដើម្បីស្វែងយល់ពីតក្កវិជ្ជា ចូរយើងស៊ើបអង្កេតវាពីខាងក្នុង :
The ROW(INDIRECT("1:"&LEN(A2))) ការរួមបញ្ចូលគ្នាបង្កើតលំដាប់នៃលេខដែលត្រូវគ្នាទៅនឹងចំនួនសរុបនៃតួអក្សរនៅក្នុងខ្សែប្រភព (A2) ហើយយើងបម្រើលេខបន្តបន្ទាប់ទាំងនេះទៅ MID ជាលេខចាប់ផ្តើម៖
MID(A2, {1;2;3;4 ;5;6;7;8}, 1)
អនុគមន៍ MID ទាញតួអក្សរនីមួយៗពី A2 ហើយត្រឡប់ពួកវាជាអារេមួយ៖
{"0";"5";" -";"E";"C";"-";"0";"1"}
ដោយសារ MID គឺជាមុខងារអត្ថបទ លទ្ធផលរបស់វាតែងតែជាអត្ថបទ (ដូចដែលអ្នកអាចកត់សម្គាល់បាន តួអក្សរទាំងអស់ ត្រូវបានរុំព័ទ្ធក្នុងសញ្ញាសម្រង់) ។ ដើម្បីបង្វែរលេខទៅជាលេខ យើងគុណអារេដោយ 1 (ការបដិសេធពីរដង --MID() នឹងមានឥទ្ធិពលដូចគ្នា)។ លទ្ធផលនៃប្រតិបត្តិការនេះគឺអារេនៃលេខ និង #VALUE! កំហុសតំណាងឱ្យតួអក្សរដែលមិនមែនជាលេខ៖
ISNUMBER({0;5;#VALUE!;#VALUE!;#VALUE!;#VALUE!;0;1})
អនុគមន៍ ISNUMBER វាយតំលៃធាតុនីមួយៗនៃអារេ និងផ្តល់សាលក្រមរបស់វាក្នុងទម្រង់នៃតម្លៃប៊ូលីន - ពិតសម្រាប់លេខ មិនពិតសម្រាប់អ្វីផ្សេងទៀត៖
{TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE}
អារេនេះទៅការសាកល្បងឡូជីខលនៃអនុគមន៍ IF ដែលធាតុនីមួយៗនៃអារេត្រូវបានប្រៀបធៀបជាមួយ FALSE:
IF({TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE ;TRUE}=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)
សម្រាប់ FALSE (តម្លៃមិនមែនជាលេខ) មុខងារ ROW (INDIRECT()) ផ្សេងទៀតនឹងត្រឡប់ ទីតាំងទាក់ទងរបស់វានៅក្នុងខ្សែអក្សរ។ សម្រាប់ TRUE នីមួយៗ (តម្លៃជាលេខ) សូន្យត្រូវបានត្រឡប់។ អារេលទ្ធផលមើលទៅដូចខាងក្រោម៖
{0;0;3;4;5;6;0;0}
នៅសល់គឺងាយស្រួល។ អនុគមន៍ MAX ស្វែងរកលេខខ្ពស់បំផុតនៅក្នុងអារេខាងលើ ដែលជាទីតាំងនៃតម្លៃដែលមិនមែនជាលេខចុងក្រោយនៅក្នុងខ្សែអក្សរ (6 ក្នុងករណីរបស់យើង)។ ដោយសាមញ្ញ ដកទីតាំងនោះចេញពីប្រវែងសរុបនៃខ្សែអក្សរដែលត្រឡប់ដោយ LEN ហើយបញ្ជូនលទ្ធផលទៅស្តាំ ដើម្បីឲ្យវាដឹងថាមានតួអក្សរប៉ុន្មានដែលត្រូវស្រង់ចេញពីផ្នែកខាងស្តាំនៃខ្សែអក្សរ៖
RIGHT(A2, LEN (A2) - 6)
រួចរាល់!
របៀបស្រង់លេខពីដើមខ្សែអក្សរ
ប្រសិនបើអ្នកកំពុងធ្វើការជាមួយកំណត់ត្រាដែលអត្ថបទលេចឡើងបន្ទាប់ពីលេខ អ្នកអាច ស្រង់លេខចេញពីការចាប់ផ្តើមនៃខ្សែអក្សរដោយប្រើរូបមន្តទូទៅនេះ៖
LEFT( cell, MATCH(FALSE, ISNUMBER(MID( cell) ROW(INDIRECT("1)៖ "&LEN( ក្រឡា)+1)), 1) *1), 0) -1)ជាមួយខ្សែអក្សរដើមនៅក្នុង A2 សូមប្រើរូបមន្តខាងក្រោមដើម្បីទទួលបានលេខ៖
=LEFT(A2, MATCH(FALSE, ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2)+1)), 1) *1), 0) -1)
មិនថាប៉ុន្មានខ្ទង់នៅកណ្តាល ឬចុង មានតែលេខចាប់ផ្តើមប៉ុណ្ណោះដែលត្រូវបានស្រង់ចេញ៖
ចំណាំ។ នៅក្នុង Excel 365 និង Excel 2021 ដោយសារការគាំទ្រសម្រាប់អារេថាមវន្ត រូបមន្តធម្មតាដំណើរការល្អ។ នៅក្នុង Excel 2019 និងមុននេះ អ្នកគួរតែចុច Ctrl + Shift + Enter ដើម្បីធ្វើឱ្យវាជា រូបមន្តអារេ ។
របៀបដែលរូបមន្តនេះដំណើរការ៖
នៅទីនេះ យើងប្រើការបញ្ចូលគ្នានៃអនុគមន៍ ROW, INDIRECT និង LEN ម្តងទៀត ដើម្បីបង្កើតលំដាប់លេខស្មើនឹងចំនួនសរុបនៃតួអក្សរនៅក្នុងខ្សែប្រភពបូក 1 (តួនាទីរបស់នោះតួអក្សរបន្ថែមនឹងច្បាស់បន្តិចនៅពេលក្រោយ)។
ROW(INDIRECT("1:"&LEN(A2)+1))
MID និង ISNUMBER ធ្វើការងារដូចគ្នានឹងនៅក្នុង ឧទាហរណ៍ពីមុន - MID ទាញតួអក្សរនីមួយៗ ហើយ ISNUMBER បំប្លែងពួកវាទៅជាតម្លៃឡូជីខល។ អារេលទ្ធផលនៃ TRUE's និង FALSE ទៅអនុគមន៍ MATCH ជាអារេរកមើល៖
MATCH(FALSE, {TRUE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; FALSE}, 0)
MATCH គណនាទីតាំងដែលទាក់ទងនៃ FALSE ដំបូងដែលផ្តល់ឱ្យយើងនូវទីតាំងនៃតួអក្សរដែលមិនមែនជាលេខដំបូងនៅក្នុងខ្សែអក្សរ (3 ក្នុង A2) ។ ដើម្បីស្រង់លេខមុន យើងដកលេខ 1 ចេញពីទីតាំងតួអក្សរអត្ថបទដំបូង ហើយបម្រើភាពខុសគ្នាទៅនឹង num_chars អាគុយម៉ង់នៃអនុគមន៍ខាងឆ្វេង៖
LEFT(A2, 3-1)
ឥឡូវនេះ ត្រលប់ទៅតួអក្សរ "បន្ថែម" នៅក្នុងលំដាប់ដែលបង្កើតដោយ ROW(INDIRECT()+1))។ ដូចដែលអ្នកបានដឹងរួចមកហើយ លំដាប់នេះផ្តល់នូវចំណុចចាប់ផ្តើមសម្រាប់មុខងារ MID ។ បើគ្មាន +1 ទេ MID នឹងស្រង់ចេញតួអក្សរច្រើនដូចដែលមាននៅក្នុងខ្សែអក្សរដើម។ ប្រសិនបើខ្សែអក្សរមានតែលេខ ISNUMBER នឹងត្រឡប់តែ TRUE ប៉ុណ្ណោះ ខណៈដែល MATCH ត្រូវការ FALSE យ៉ាងតិចមួយ។ ដើម្បីប្រាកដថា យើងបន្ថែមតួអក្សរមួយទៀតទៅប្រវែងសរុបនៃខ្សែអក្សរ ដែលមុខងារ MID នឹងបំប្លែងទៅជាខ្សែអក្សរទទេ។ ឧទាហរណ៍ ក្នុង B7 MID ត្រឡប់អារេនេះ៖
{"1";"2";"3";"4";""
ចំណាំ។ ដូចករណីជាមួយអនុគមន៍ស្តាំដែរ LEFT ក៏ត្រឡប់ លេខផងដែរ។substring ដែលជាអត្ថបទបច្ចេកទេស មិនមែនលេខទេ។ ដើម្បីទទួលបានលទ្ធផលជាលេខជាជាងខ្សែអក្សរលេខ សូមដាក់រូបមន្តក្នុងអនុគមន៍ VALUE ឬគុណលទ្ធផលដោយ 1 ដូចបង្ហាញក្នុងឧទាហរណ៍ទីមួយ។
របៀបយកលេខពីទីតាំងណាមួយក្នុងខ្សែអក្សរ
ប្រសិនបើកិច្ចការរបស់អ្នកបង្កប់ន័យការស្រង់លេខពីកន្លែងណាមួយក្នុងខ្សែអក្សរ អ្នកអាចប្រើរូបមន្តគួរឱ្យចាប់អារម្មណ៍ខាងក្រោមដែលបានចេញផ្សាយនៅលើវេទិកា MrExcel៖
=SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1)) * ROW(INDIRECT("1:"&LEN(A2))), 0), ROW(INDIRECT("1:"&LEN(A2))))+1, 1) * 10^ROW(INDIRECT("1:"&LEN(A2)))/10)
កន្លែងដែល A2 គឺជាកន្លែង ខ្សែអក្សរអត្ថបទដើម។
ការបំបែករូបមន្តនេះនឹងតម្រូវឱ្យមានអត្ថបទដាច់ដោយឡែក ដូច្នេះអ្នកអាចចម្លងវាទៅសន្លឹកកិច្ចការរបស់អ្នក ដើម្បីប្រាកដថាវាពិតជាដំណើរការ :)
ទោះជាយ៉ាងណាក៏ដោយ នៅពេលពិនិត្យមើលលទ្ធផល អ្នកអាចសម្គាល់ឃើញគុណវិបត្តិមួយដែលមិនសំខាន់ - ប្រសិនបើខ្សែអក្សរប្រភពមិនមានលេខ នោះរូបមន្តនឹងត្រឡប់លេខសូន្យ ដូចនៅជួរទី 6 ក្នុងរូបថតអេក្រង់ខាងលើ។ ដើម្បីជួសជុលវា អ្នកអាចរុំរូបមន្តនៅក្នុងសេចក្តីថ្លែងការណ៍ IF ដែលជាការធ្វើតេស្តឡូជីខលដែលពិនិត្យមើលថាតើខ្សែប្រភពមានលេខណាមួយឬអត់។ ប្រសិនបើវាកើតឡើង រូបមន្តដកលេខចេញ បើមិនដូច្នេះទេ ត្រឡប់ខ្សែទទេ៖
=IF(SUM(LEN(A2)-LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2,ROW(INDIRECT("$1:$"&LEN(A2))),1))* ROW(INDIRECT("$1:$"&LEN(A2))),0), ROW(INDIRECT("$1:$"&LEN(A2))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(A2)))/10),"")
ដូចដែលបានបង្ហាញក្នុងរូបថតអេក្រង់ខាងក្រោម រូបមន្តដែលបានកែលម្អដំណើរការយ៉ាងស្រស់ស្អាត (សូមសរសើរលោក Alex ដែលជាគ្រូ Excel របស់យើង សម្រាប់ការកែលម្អនេះ):
មិនដូចនៅក្នុងឧទាហរណ៍មុនទាំងអស់ លទ្ធផលនៃរូបមន្តនេះគឺ ចំនួន ។ ដើម្បីប្រាកដថាវាគ្រាន់តែសម្គាល់តម្លៃដែលបានតម្រឹមស្តាំក្នុងជួរឈរ B ហើយកាត់លេខសូន្យនាំមុខ។
គន្លឹះ។ នៅក្នុង Excel 365 -Excel 2019 មានដំណោះស្រាយដ៏សាមញ្ញជាងមុន ដោយមានជំនួយពីមុខងារ TEXTJOIN ។ សូមមើល របៀបលុបអត្ថបទ និងរក្សាលេខ។
ដកលេខចេញពីខ្សែអក្សរជាមួយ Ultimate Suite
ដូចដែលអ្នកទើបតែបានឃើញ វាមិនមានរូបមន្ត Excel តិចតួចដើម្បីទាញលេខចេញពីខ្សែអក្សរទេ។ ប្រសិនបើអ្នកមានការលំបាកក្នុងការយល់ដឹងអំពីរូបមន្ត ឬកែប្រែវាសម្រាប់សំណុំទិន្នន័យរបស់អ្នក អ្នកអាចចូលចិត្តវិធីសាមញ្ញនេះដើម្បីទទួលបានលេខពីខ្សែអក្សរក្នុង Excel។
ជាមួយនឹង Ultimate Suite របស់យើងបានបន្ថែមទៅខ្សែបូ Excel របស់អ្នក នេះជារបៀបដែលអ្នក អាចទាញយកលេខបានយ៉ាងលឿនពីខ្សែអក្សរអក្សរក្រមណាមួយ៖
- ចូលទៅកាន់ផ្ទាំង Ablebits Data > Text group ហើយចុច Extract :
- ជ្រើសរើសក្រឡាទាំងអស់ដែលមានខ្សែប្រភព។
- នៅលើបន្ទះរបស់ឧបករណ៍ស្រង់ចេញ សូមជ្រើសរើសប៊ូតុងមូល លេខស្រង់ចេញ ។
- អាស្រ័យលើថាតើអ្នកចង់ឱ្យលទ្ធផលជារូបមន្ត ឬតម្លៃ សូមជ្រើសរើសប្រអប់ បញ្ចូលជារូបមន្ត ឬទុកវាចោល (លំនាំដើម)។
ដំបូន្មានរបស់ខ្ញុំគឺជ្រើសរើសប្រអប់នេះប្រសិនបើអ្នកចង់ឱ្យលេខដែលបានស្រង់ចេញដើម្បីធ្វើបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិភ្លាមៗនៅពេលដែលការផ្លាស់ប្តូរណាមួយត្រូវបានធ្វើឡើងចំពោះខ្សែប្រភព។ ប្រសិនបើអ្នកចង់ឱ្យលទ្ធផលមានភាពឯករាជ្យនៅលើខ្សែអក្សរដើម (ឧ. ក្នុងករណីដែលអ្នកមានគម្រោងលុបទិន្នន័យប្រភពនៅពេលក្រោយ) បន្ទាប់មកកុំជ្រើសរើសប្រអប់នេះ។
- ចុចប៊ូតុង បញ្ចូលលទ្ធផល ។ រួចរាល់!
ដូចក្នុងឧទាហរណ៍មុន លទ្ធផលនៃការស្រង់ចេញគឺ ចំនួន មានន័យថាអ្នកមានសេរីភាពក្នុងការរាប់ ផលបូក មធ្យម ឬធ្វើការគណនាផ្សេងទៀតជាមួយពួកគេ។
ក្នុងឧទាហរណ៍នេះ យើងបានជ្រើសរើសបញ្ចូលលទ្ធផលជា values ហើយ add-in បានធ្វើដូចអ្វីដែលបានសួរសម្រាប់៖
ប្រសិនបើប្រអប់ធីក Insert as formula ត្រូវបានជ្រើសរើស នោះអ្នក' d សង្កេត រូបមន្ត ក្នុងរបាររូបមន្ត។ ចង់ដឹងថាមួយណា? គ្រាន់តែទាញយកការសាកល្បងរបស់ Ultimate Suite ហើយមើលដោយខ្លួនឯង :)
ការទាញយកដែលមាន
Excel Extract Number - សៀវភៅការងារគំរូ (.xlsx file)
Ultimate Suite - កំណែសាកល្បង (.exe ឯកសារ)