តារាងមាតិកា
ការបង្រៀននេះនឹងបង្រៀនអ្នកពីរបៀបបំបែកអត្ថបទពីលេខនៅក្នុង Excel ដោយប្រើរូបមន្តដើម និងមុខងារផ្ទាល់ខ្លួន។ អ្នកក៏នឹងរៀនពីរបៀបបំបែកអត្ថបទ និងលេខទៅជាជួរឈរពីរដាច់ដោយឡែកពីគ្នាផងដែរ។
ស្រមៃមើលវា៖ អ្នកទទួលបានទិន្នន័យឆៅសម្រាប់ការវិភាគ ហើយដឹងថាលេខត្រូវបានលាយជាមួយអត្ថបទក្នុងជួរឈរមួយ។ នៅក្នុងស្ថានភាពភាគច្រើន វាពិតជាមានភាពងាយស្រួលក្នុងការដាក់ពួកវានៅក្នុងជួរឈរដាច់ដោយឡែកសម្រាប់ការពិនិត្យកាន់តែជិត។
ក្នុងករណីដែលអ្នកកំពុងធ្វើការជាមួយទិន្នន័យដូចគ្នា អ្នកប្រហែលជាអាចប្រើមុខងារ LEFT, RIGHT, និង MID ដើម្បីទាញយក ចំនួនតួអក្សរដូចគ្នាពីទីតាំងដូចគ្នា។ ប៉ុន្តែនោះគឺជាសេណារីយ៉ូដ៏ល្អសម្រាប់ការធ្វើតេស្តមន្ទីរពិសោធន៍។ នៅក្នុងជីវិតពិត អ្នកទំនងជាដោះស្រាយជាមួយទិន្នន័យមិនដូចគ្នា ដែលលេខមកមុនអត្ថបទ ក្រោយអត្ថបទ ឬរវាងអត្ថបទ។ ឧទាហរណ៍ខាងក្រោមផ្តល់នូវដំណោះស្រាយយ៉ាងពិតប្រាកដសម្រាប់ករណីនេះ។
របៀបលុបអត្ថបទ និងរក្សាលេខនៅក្នុងកោសិកា Excel
ដំណោះស្រាយដំណើរការនៅក្នុង Excel 365, Excel 2021 ហើយ Excel 2019
Microsoft Excel 2019 បានណែនាំមុខងារថ្មីមួយចំនួនដែលមិនមាននៅក្នុងកំណែមុន ហើយយើងនឹងប្រើមុខងារមួយក្នុងចំនោមមុខងារបែបនេះគឺ TEXTJOIN ដើម្បីដកតួអក្សរអត្ថបទចេញពីក្រឡាមួយ។ មានលេខ។
រូបមន្តទូទៅគឺ៖
TEXTJOIN("", TRUE, IFERROR(MID( cell, ROW(INDIRECT("1:")"&LEN( cell))), 1) *1, ""))នៅក្នុង Excel 365 និង 2021 មួយនេះនឹងដំណើរការផងដែរ៖
TEXTJOIN("", TRUE,IFERROR(MID( cell, SEQUENCE(LEN( cell)), 1) *1, ""))នៅពេលមើលឃើញដំបូង រូបមន្តអាចមើលទៅគួរឱ្យភ័យខ្លាចបន្តិច។ ប៉ុន្តែពួកវាដំណើរការបាន :)
ឧទាហរណ៍ ដើម្បីលុបអត្ថបទចេញពីលេខក្នុង A2 សូមបញ្ចូលរូបមន្តខាងក្រោមមួយក្នុង B2 ហើយបន្ទាប់មកចម្លងវាទៅក្រឡាជាច្រើនតាមតម្រូវការ។
នៅក្នុង Excel 365 - 2019:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2))), 1) *1, ""))
ក្នុង Excel 2019 វាត្រូវតែបញ្ចូលជារូបមន្តអារេដោយប្រើ Ctrl + Shift + Enter ។ នៅក្នុង dynamic array Excel វាដំណើរការជារូបមន្តធម្មតាដែលបានបញ្ចប់ដោយប្រើគ្រាប់ចុចបញ្ចូល។
នៅក្នុង Excel 365 និង 2021:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1, ""))
ជាលទ្ធផល តួអក្សរអត្ថបទទាំងអស់គឺ យកចេញពីក្រឡា ហើយលេខត្រូវបានរក្សាទុក៖
របៀបដែលរូបមន្តនេះដំណើរការ៖
ដើម្បីយល់កាន់តែច្បាស់អំពីតក្កវិជ្ជា តោះចាប់ផ្តើមស៊ើបអង្កេត រូបមន្តពីខាងក្នុង៖
អ្នកអាចប្រើទាំង ROW(INDIRECT("1:"&LEN(string)) ឬ SEQUENCE(LEN(string)) ដើម្បីបង្កើតលំដាប់លេខមួយដែលត្រូវនឹងចំនួនសរុប នៃតួអក្សរនៅក្នុងខ្សែអក្សរប្រភព ហើយបន្ទាប់មកបញ្ចូលលេខបន្តបន្ទាប់ទាំងនោះទៅមុខងារ MID ជាលេខចាប់ផ្តើម។ នៅក្នុង B2 ផ្នែកនៃរូបមន្តនេះមើលទៅដូចតទៅ៖
MID(A2, {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}, 1)
អនុគមន៍ MID ស្រង់តួអក្សរនីមួយៗចេញពី A2 ដោយចាប់ផ្តើមពីលេខទីមួយ ហើយត្រឡប់ពួកវាជាអារេមួយ៖
{"2";"1";"0";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
អារេនេះត្រូវគុណនឹង 1។ តម្លៃជាលេខអាចរស់បានដោយគ្មានការផ្លាស់ប្តូរ ខណៈពេលដែលគុណនឹងតួអក្សរដែលមិនមែនជាលេខលទ្ធផលនៅក្នុង #VALUE! កំហុស៖
{2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
មុខងារ IFERROR ដោះស្រាយកំហុសទាំងនេះ ហើយជំនួសវាដោយខ្សែអក្សរទទេ៖
{2;1;0;"";"";"";"";"";"";"";"";"";"";"";""}
អារេចុងក្រោយនេះត្រូវបានបម្រើដល់មុខងារ TEXTJOIN ដែលភ្ជាប់តម្លៃមិនទទេនៅក្នុងអារេ ( មិនអើពើ_ទទេ អាគុយម៉ង់កំណត់ទៅជា TRUE) ដោយប្រើខ្សែអក្សរទទេ ("") សម្រាប់ការកំណត់ព្រំដែន៖
TEXTJOIN("", TRUE, {2;1;0;"";"";"";"";"";"";"";"";"";"";"";""})
គន្លឹះ។ សម្រាប់ Excel 2016 - 2007 ដំណោះស្រាយក៏មានដែរ ប៉ុន្តែរូបមន្តគឺស្មុគស្មាញជាង។ អ្នកអាចរកឃើញវានៅក្នុងមេរៀននេះ៖ របៀបស្រង់លេខក្នុង Excel ។
មុខងារផ្ទាល់ខ្លួនដើម្បីលុបអត្ថបទចេញពីលេខ
ដំណោះស្រាយដំណើរការសម្រាប់កំណែ Excel ទាំងអស់
ប្រសិនបើអ្នកកំពុងប្រើកំណែចាស់របស់ Excel ឬស្វែងរករូបមន្តខាងលើផងដែរ។ ពិបាកចងចាំ គ្មានអ្វីរារាំងអ្នកពីការបង្កើតមុខងារផ្ទាល់ខ្លួនរបស់អ្នកជាមួយនឹងវាក្យសម្ព័ន្ធសាមញ្ញជាង និងឈ្មោះដែលងាយស្រួលប្រើដូចជា RemoveText ។ មុខងារកំណត់ដោយអ្នកប្រើប្រាស់ (UDF) អាចត្រូវបានសរសេរតាមពីរវិធី៖
កូដ VBA 1:
នៅទីនេះ យើងមើលតួអក្សរនីមួយៗនៅក្នុងខ្សែអក្សរប្រភពមួយដោយ មួយ ហើយពិនិត្យមើលថាតើវាជាលេខឬអត់។ ប្រសិនបើលេខ តួអក្សរត្រូវបានបន្ថែមទៅខ្សែអក្សរលទ្ធផល។
Function RemoveText(str As String) Dim sRes As String sRes = "" For i = 1 To Len(str) If True = IsNumeric(Mid(str, i , 1)) បន្ទាប់មក sRes = sRes & Mid(str, i, 1) End If Next i RemoveText = sRes End Functionកូដ VBA 2:
កូដបង្កើតវត្ថុមួយដើម្បីដំណើរការកន្សោមធម្មតា។ ដោយប្រើ RegExp យើងលុបតួអក្សរទាំងអស់ក្រៅពីខ្ទង់ 0-9 ចេញពីខ្សែអក្សរប្រភព។
អនុគមន៍ RemoveText(str As String ) ជា String With CreateObject ( "VBScript.RegExp" ) .Global = True .Pattern = "[^0-9]" RemoveText = .Replace(str, "") បញ្ចប់ដោយអនុគមន៍បញ្ចប់នៅលើសន្លឹកកិច្ចការតូច លេខកូដទាំងពីរនឹងដំណើរការបានល្អដូចគ្នា។ នៅលើសន្លឹកកិច្ចការធំដែលមុខងារត្រូវបានគេហៅថារាប់រយ ឬរាប់ពាន់ដង លេខកូដ 2 ដែលប្រើ VBScript.RegExp នឹងដំណើរការលឿនជាងមុន។
ជំហានលម្អិតក្នុងការបញ្ចូលកូដនៅក្នុងសៀវភៅការងាររបស់អ្នកអាចរកបាននៅទីនេះ៖ របៀបបញ្ចូល VBA កូដក្នុង Excel។
វិធីណាមួយដែលអ្នកជ្រើសរើស តាមទស្សនៈរបស់អ្នកប្រើចុងក្រោយ មុខងារលុបអត្ថបទ និងទុកលេខគឺសាមញ្ញដូចនេះ៖
RemoveText(string)ឧទាហរណ៍ ដើម្បី យកតួអក្សរដែលមិនមែនជាលេខចេញពីក្រឡា A2 រូបមន្តក្នុង B2 គឺ៖
=RemoveText(A2)
គ្រាន់តែចម្លងវាចុះក្នុងជួរឈរ នោះអ្នកនឹងទទួលបានលទ្ធផលនេះ៖
ចំណាំ។ ទាំងរូបមន្តដើម និងមុខងារផ្ទាល់ខ្លួនបញ្ចេញ ខ្សែអក្សរលេខ ។ ដើម្បីប្រែក្លាយវាទៅជាលេខ គុណលទ្ធផលដោយ 1 ឬបន្ថែមសូន្យ ឬរុំរូបមន្តក្នុងអនុគមន៍ VALUE។ ឧទាហរណ៍៖
=RemoveText(A2) + 0
=VALUE(RemoveText(A2))
របៀបយកលេខចេញពីខ្សែអក្សរក្នុង Excel
ដំណោះស្រាយដំណើរការក្នុង Excel 365, Excel 2021 និង Excel 2019
រូបមន្តដើម្បីយកលេខចេញពីលេខអក្សរលេខគឺស្រដៀងគ្នានឹងលេខដែលបានពិភាក្សាក្នុងឧទាហរណ៍មុន។
សម្រាប់ Excel 365 - 2019:
TEXTJOIN(" ", ពិត, IF(ISERR(MID( cell , ROW(INDIRECT("1:"&LEN( ក្រឡា ) )), 1) *1), MID( ក្រឡា , ROW(INDIRECT("1:"&LEN( ) cell ))), 1), ""))ក្នុង Excel 2019 សូមចាំថាធ្វើឱ្យវាជា រូបមន្តអារេ ដោយចុចគ្រាប់ចុច Ctrl + Shift + Enter ជាមួយគ្នា។
សម្រាប់ Excel 365 និង 2021:
TEXTJOIN("", TRUE, IF(ISERROR(MID( cell , SEQUENCE( cell 1)) *1), MID ( cell , SEQUENCE(LEN( cell )), 1), ""))ឧទាហរណ៍ ដើម្បីដកលេខចេញពីខ្សែអក្សរក្នុង A2 រូបមន្តគឺ៖
=TEXTJOIN("", TRUE, IF(ISERR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2) )), 1) *1), MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1), ""))
ឬ
=TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), ""))
ជាលទ្ធផល លេខទាំងអស់ត្រូវបានដកចេញពីក្រឡា ហើយតួអក្សរអត្ថបទត្រូវបានរក្សាទុក៖
ដូចដែលបានបង្ហាញក្នុងរូបថតអេក្រង់ខាងលើ រូបមន្តដកតួអក្សរលេខចេញពីទីតាំងណាមួយក្នុងខ្សែអក្សរ៖ នៅដើម ចុងបញ្ចប់ និងកណ្តាល។ ទោះយ៉ាងណាក៏ដោយ មានការព្រមានមួយ៖ ប្រសិនបើខ្សែអក្សរ ចាប់ផ្តើមដោយលេខដែលតាមពីក្រោយដោយដកឃ្លា ចន្លោះនោះត្រូវបានរក្សាទុក ដែលបង្កើតបញ្ហានៃការដកឃ្លានាំមុខ (ដូចក្នុង B2)។
ដើម្បីកម្ចាត់បន្ថែម ដកឃ្លាមុនអត្ថបទ រុំរូបមន្តក្នុងអនុគមន៍ TRIM ដូចនេះ៖
=TRIM(TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), "")))
ឥឡូវនេះ លទ្ធផលរបស់អ្នកពិតជាល្អឥតខ្ចោះ!
របៀបដែលរូបមន្តនេះដំណើរការ៖
នៅក្នុងខ្លឹមសារ រូបមន្តដំណើរការដូចគ្នាទៅនឹងការពន្យល់ក្នុងឧទាហរណ៍មុន។ ភាពខុសគ្នានោះគឺថា ចាប់ពីអារេចុងក្រោយដែលបម្រើដល់មុខងារ TEXTJOIN អ្នកត្រូវដកលេខចេញ មិនមែនអត្ថបទទេ។ ដើម្បីធ្វើវាបាន យើងប្រើការរួមបញ្ចូលគ្នានៃមុខងារ IF និង ISERROR។
ដូចដែលអ្នកចងចាំMID(…)+0 បង្កើតអារេនៃលេខ និង #VALUE! កំហុសដែលតំណាងឱ្យតួអក្សរអត្ថបទនៅក្នុងទីតាំងដូចគ្នា៖
{2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
មុខងារ ISERROR ចាប់កំហុស ហើយបញ្ជូនអារេលទ្ធផលនៃតម្លៃប៊ូលីនទៅ IF:
{FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}
នៅពេលដែលមុខងារ IF ឃើញ TRUE (កំហុស) វាបញ្ចូលតួអក្សរអត្ថបទដែលត្រូវគ្នាទៅក្នុងអារេដែលបានដំណើរការ ដោយមានជំនួយពីមុខងារ MID ផ្សេងទៀត។ នៅពេលដែលអនុគមន៍ IF ឃើញ FALSE (លេខមួយ) វាជំនួសវាដោយខ្សែទទេមួយ៖
{"";"";"";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
អារេចុងក្រោយនេះត្រូវបានបញ្ជូនទៅ TEXTJOIN ដូច្នេះវាភ្ជាប់តួអក្សរអត្ថបទ និងបញ្ចេញ លទ្ធផល។
មុខងារផ្ទាល់ខ្លួនដើម្បីលុបលេខចេញពីអត្ថបទ
ដំណោះស្រាយដំណើរការសម្រាប់កំណែ Excel ទាំងអស់
ដោយចងចាំថារូបមន្តដ៏រឹងមាំគួរតែត្រូវបានរក្សាទុក សាមញ្ញ ខ្ញុំនឹងចែករំលែកកូដនៃមុខងារកំណត់ដោយអ្នកប្រើប្រាស់ (UDF) ដើម្បីលុបតួអក្សរជាលេខណាមួយ។
លេខកូដ VBA 1:
មុខងារ RemoveNumbers(str As String) Dim sRes As String sRes = "" សម្រាប់ i = 1 To Len(str) ប្រសិនបើ False = IsNumeric(Mid(str, i, 1)) បន្ទាប់មក sRes = sRes & Mid(str, i, 1) End If Next i RemoveNumbers = sRes End FunctionVBA code 2:
Function RemoveNumbers(str As String) ជា String with CreateObject ( "VBScript.RegExp" ) .Global = True .Pattern = "[0-9]" RemoveNumbers2 = .Replace(str, "" ) End With End Functionដូចករណីជាមួយមុខងារ RemoveText លេខកូដទីពីរគឺល្អជាងដែលត្រូវប្រើក្នុង ធំសន្លឹកកិច្ចការដើម្បីបង្កើនប្រសិទ្ធភាពប្រតិបត្តិការ។
នៅពេលដែលលេខកូដត្រូវបានបន្ថែមទៅសៀវភៅការងាររបស់អ្នក អ្នកអាចលុបតួអក្សរជាលេខទាំងអស់ចេញពីក្រឡាដោយប្រើមុខងារផ្ទាល់ខ្លួននេះ៖
RemoveNumbers(string)ក្នុងករណីរបស់យើង រូបមន្តក្នុង B2 គឺ៖
=RemoveNumbers(A2)
ដើម្បីកាត់បន្ថយចន្លោះនាំមុខប្រសិនបើមាន សូមដាក់មុខងារផ្ទាល់ខ្លួននៅខាងក្នុង TRIM ដូចអ្នកចង់បានរូបមន្តដើម៖
=TRIM(RemoveNumbers(A2))
បំបែកលេខ និងអត្ថបទទៅជាជួរឈរដាច់ដោយឡែក
នៅក្នុងស្ថានភាពនៅពេលដែលអ្នកចង់បំបែកអត្ថបទ និងលេខទៅជាជួរឈរពីរ វាជាការប្រសើរណាស់ក្នុងការធ្វើការងារដោយប្រើរូបមន្តតែមួយ យល់ព្រម? សម្រាប់ការនេះ យើងគ្រាន់តែបញ្ចូលលេខកូដនៃមុខងារ RemoveText និង RemoveNumbers ចូលទៅក្នុងមុខងារមួយដែលមានឈ្មោះថា SplitTextNumbers ឬសាមញ្ញថា Split ឬ អ្វីក៏ដោយដែលអ្នកចូលចិត្ត :)
លេខកូដ VBA 1:
Function SplitTextNumbers(str As String , is_remove_text As Boolean ) As String Dim sNum, sText, sChar As String sCurChar = sNum = sText = "" សម្រាប់ i = 1 To Len(str) sCurChar = Mid(str, i, 1) ប្រសិនបើ True = IsNumeric(sCurChar) បន្ទាប់មក sNum = sNum & sCurChar Else sText = sText & sCurChar End ប្រសិនបើ Next i If True = is_remove_text បន្ទាប់មក SplitTextNumbers = sNum Else SplitTextNumbers = sText End ប្រសិនបើអនុគមន៍បញ្ចប់លេខកូដ VBA 2:
Function SplitTextNumbers(str As String , is_removean) ជាមួយ CreateObject ( "VBScript.RegExp" ) .Global = True If True = is_remove_text Then .Pattern = "[^0-9]" Else.Pattern = "[0-9]" End If SplitTextNumbers = .Replace(str, "") បញ្ចប់ដោយអនុគមន៍បញ្ចប់មុខងារផ្ទាល់ខ្លួនថ្មីរបស់យើងទាមទារអាគុយម៉ង់ពីរ៖
SplitTextNumbers(string, is_remove_text)កន្លែងណា is_remove_text គឺជាតម្លៃ Boolean ដែលបង្ហាញថាតួអក្សរមួយណាដែលត្រូវឆ្នូត៖
- TRUE ឬ 1 - លុបអត្ថបទ និងរក្សាលេខ
- FALSE ឬ 0 - លុបលេខ និងរក្សាអត្ថបទ
សម្រាប់សំណុំទិន្នន័យគំរូរបស់យើង រូបមន្តយកទម្រង់នេះ៖
ដើម្បីលុបតួអក្សរដែលមិនមែនជាលេខ៖
=SplitTextNumbers(A2, TRUE)
ដើម្បីលុបតួអក្សរជាលេខ :
=SplitTextNumbers(A2, FALSE)
គន្លឹះ។ ដើម្បីជៀសវាងបញ្ហាដែលអាចកើតមាននៃចន្លោះនាំមុខ ខ្ញុំសូមណែនាំឱ្យរុំរូបមន្តដែលដកលេខចេញក្នុងមុខងារ TRIM៖
=TRIM(SplitTextNumbers(A2, FALSE))
ឧបករណ៍ពិសេសដើម្បីលុបលេខ ឬអត្ថបទ
សម្រាប់អ្នកដែលធ្វើ មិនដូចជាការស្មុគស្មាញដោយមិនចាំបាច់ទេ ខ្ញុំនឹងបង្ហាញវិធីរបស់យើងផ្ទាល់ក្នុងការលុបអត្ថបទ ឬលេខចេញក្នុង Excel។
សន្មតថា Ultimate Suite របស់យើងត្រូវបានបញ្ចូលទៅក្នុង Excel ribbon របស់អ្នក នេះជាអ្វីដែលអ្នកធ្វើ៖
- នៅលើផ្ទាំង Ablebits Data ក្នុងក្រុម Text ចុច Remove > Remove Characters ។
គន្លឹះ។ ប្រសិនបើលទ្ធផលមានចន្លោះនាំមុខមួយចំនួន Trim Spacesឧបករណ៍នឹងកម្ចាត់ពួកវាក្នុងពេលឆាប់ៗនេះ
នោះជារបៀបយកអក្សរ ឬតួលេខចេញពីខ្សែអក្សរក្នុង Excel។ ខ្ញុំសូមអរគុណចំពោះការអាន ហើយទន្ទឹងរង់ចាំជួបអ្នកនៅលើប្លក់របស់យើងនៅសប្តាហ៍ក្រោយ!
ការទាញយកដែលមាន
លុបអត្ថបទ ឬលេខនៅក្នុង Excel - ឧទាហរណ៍ (ឯកសារ .xlsm)
Ultimate Suite - កំណែសាកល្បង (ឯកសារ .exe)