ការភ្ជាប់អត្ថបទតាមលក្ខខណ្ឌ

ខ្ញុំបានសរសេររួចហើយអំពីរបៀបដែលអ្នកអាចបិទភ្ជាប់អត្ថបទពីក្រឡាជាច្រើនទៅជាតែមួយ ហើយញែកខ្សែអក្សរវែងទៅជាសមាសធាតុ។ ឥឡូវនេះ សូមក្រឡេកមើលការបិទ ប៉ុន្តែកិច្ចការស្មុគ្រស្មាញជាងនេះបន្តិច - របៀបបិទភ្ជាប់អត្ថបទពីក្រឡាជាច្រើន នៅពេលដែលលក្ខខណ្ឌជាក់លាក់ណាមួយត្រូវបានបំពេញ។ 

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

ការភ្ជាប់អត្ថបទតាមលក្ខខណ្ឌ

ម៉្យាងទៀតយើងត្រូវការឧបករណ៍ដែលនឹងភ្ជាប់ (ភ្ជាប់) អត្ថបទយោងទៅតាមលក្ខខណ្ឌ - analogue នៃមុខងារ SUMMESLI (SUMIF)ប៉ុន្តែសម្រាប់អត្ថបទ។

វិធីសាស្រ្ត 0. រូបមន្ត

មិនឆើតឆាយណាស់ប៉ុន្តែវិធីងាយស្រួលបំផុត។ អ្នកអាចសរសេររូបមន្តសាមញ្ញដែលនឹងពិនិត្យមើលថាតើក្រុមហ៊ុននៅជួរបន្ទាប់ខុសពីលេខមុនឬអត់។ ប្រសិនបើវាមិនខុសគ្នាទេ សូមបិទអាសយដ្ឋានបន្ទាប់ដែលបំបែកដោយសញ្ញាក្បៀស។ ប្រសិនបើវាខុសគ្នា នោះយើង "កំណត់ឡើងវិញ" ការប្រមូលផ្តុំដោយចាប់ផ្តើមម្តងទៀត៖

ការភ្ជាប់អត្ថបទតាមលក្ខខណ្ឌ

គុណវិបត្តិនៃវិធីសាស្រ្តនេះគឺជាក់ស្តែង: ពីកោសិកាទាំងអស់នៃជួរឈរបន្ថែមដែលទទួលបានយើងត្រូវការតែចុងក្រោយសម្រាប់ក្រុមហ៊ុននីមួយៗ (ពណ៌លឿង) ។ ប្រសិនបើបញ្ជីមានទំហំធំ នោះដើម្បីជ្រើសរើសពួកវាយ៉ាងរហ័ស អ្នកនឹងត្រូវបន្ថែមជួរឈរមួយទៀតដោយប្រើមុខងារ DLSTR (អិន)ពិនិត្យប្រវែងខ្សែដែលប្រមូលបាន៖

ការភ្ជាប់អត្ថបទតាមលក្ខខណ្ឌ

ឥឡូវ​នេះ អ្នក​អាច​ត្រង​ចេញ ហើយ​ចម្លង​អាសយដ្ឋាន​ចាំបាច់​សម្រាប់​ប្រើប្រាស់​បន្ថែម​ទៀត។

វិធីសាស្រ្ត 1. Macrofunction នៃ gluing ដោយលក្ខខណ្ឌមួយ។

ប្រសិនបើបញ្ជីដើមមិនត្រូវបានតម្រៀបតាមក្រុមហ៊ុនទេ នោះរូបមន្តសាមញ្ញខាងលើមិនដំណើរការទេ ប៉ុន្តែអ្នកអាចទទួលបានយ៉ាងងាយស្រួលជាមួយនឹងមុខងារផ្ទាល់ខ្លួនតូចមួយនៅក្នុង VBA ។ បើកកម្មវិធីនិពន្ធ Visual Basic ដោយចុចផ្លូវកាត់ក្តារចុច ជំនួស (Alt) + F11 ឬដោយប្រើប៊ូតុង Visual Basic ផ្ទាំង អ្នកអភិវឌ្ឍ (អ្នកអភិវឌ្ឍន៍). នៅក្នុងបង្អួចដែលបើក សូមបញ្ចូលម៉ូឌុលទទេថ្មីតាមរយៈម៉ឺនុយ បញ្ចូល - ម៉ូឌុល ហើយចម្លងអត្ថបទនៃមុខងាររបស់យើងនៅទីនោះ៖

អនុគមន៍ MergeIf(TextRange As Range, SearchRange As Range, Condition As String) Dim Delimeter As String, i As Long Delimeter = ", " gluings មិនស្មើគ្នា - យើងចេញដោយមានកំហុសប្រសិនបើ SearchRange.Count <> TextRange.Count បន្ទាប់មក MergeIf = CVErr(xlErrRef) Exit Function End ប្រសិនបើ 'ឆ្លងកាត់ក្រឡាទាំងអស់ ពិនិត្យលក្ខខណ្ឌ ហើយប្រមូលអត្ថបទក្នុងអថេរ OutText For i = 1 ទៅ SearchRange ។ Cells.Count ប្រសិនបើ SearchRange.Cells(i) Like Condition Then OutText = OutText & TextRange.Cells(i) & Delimeter Next i 'បង្ហាញលទ្ធផលដោយគ្មានកំណត់ព្រំដែនចុងក្រោយ MergeIf = Left(OutText, Len(OutText) - Len(Delimeter)) End មុខងារ  

ប្រសិនបើអ្នកឥឡូវនេះត្រលប់ទៅ Microsoft Excel វិញបន្ទាប់មកនៅក្នុងបញ្ជីមុខងារ (ប៊ូតុង fx នៅក្នុងរបាររូបមន្ត ឬផ្ទាំង រូបមន្ត - បញ្ចូលមុខងារ) វានឹងអាចរកឃើញមុខងាររបស់យើង។ បញ្ចូលគ្នាប្រសិនបើ នៅក្នុងប្រភេទ អ្នកប្រើប្រាស់កំណត់ (អ្នកប្រើប្រាស់កំណត់). អាគុយម៉ង់សម្រាប់មុខងារមានដូចខាងក្រោម:

ការភ្ជាប់អត្ថបទតាមលក្ខខណ្ឌ

វិធីសាស្រ្ត 2. ភ្ជាប់អត្ថបទដោយលក្ខខណ្ឌមិនច្បាស់លាស់

ប្រសិនបើយើងជំនួសតួអក្សរទីមួយនៅក្នុងជួរទី 13 នៃម៉ាក្រូរបស់យើង។ = ទៅប្រតិបត្តិករការប្រកួតប្រហាក់ប្រហែល ដូចបន្ទាប់មកវានឹងអាចអនុវត្តការស្អិតជាប់ដោយការផ្គូផ្គងទិន្នន័យដំបូងដែលមិនច្បាស់លាស់ជាមួយនឹងលក្ខណៈវិនិច្ឆ័យនៃការជ្រើសរើស។ ឧទាហរណ៍ ប្រសិនបើឈ្មោះក្រុមហ៊ុនអាចត្រូវបានសរសេរជាវ៉ារ្យ៉ង់ផ្សេងគ្នា នោះយើងអាចពិនិត្យ និងប្រមូលពួកវាទាំងអស់ដោយប្រើមុខងារមួយ៖

ការភ្ជាប់អត្ថបទតាមលក្ខខណ្ឌ

អក្សរជំនួសស្តង់ដារត្រូវបានគាំទ្រ៖

  • សញ្ញាផ្កាយ (*) - បង្ហាញពីចំនួនតួអក្សរណាមួយ (រួមទាំងអវត្តមានរបស់ពួកគេ)
  • សញ្ញាសួរ (?) - តំណាងឱ្យតួអក្សរតែមួយ
  • សញ្ញាផោន (#) - តំណាងឱ្យខ្ទង់ណាមួយ (0-9)

តាមលំនាំដើម ប្រតិបត្តិករ Like គឺប្រកាន់អក្សរតូចធំ ពោលគឺយល់ឧទាហរណ៍ "Orion" និង "orion" ជាក្រុមហ៊ុនផ្សេងគ្នា។ ដើម្បីមិនអើពើករណី អ្នកអាចបន្ថែមបន្ទាត់នៅដើមដំបូងនៃម៉ូឌុលនៅក្នុងកម្មវិធីនិពន្ធ Visual Basic ជម្រើសប្រៀបធៀបអត្ថបទដែលនឹងប្តូរ Like ទៅជា case insensitive។

នៅក្នុងវិធីនេះ អ្នកអាចបង្កើតរបាំងស្មុគស្មាញសម្រាប់ពិនិត្យលក្ខខណ្ឌ ឧទាហរណ៍៖

  • ?1##??777RUS - ការជ្រើសរើសស្លាកលេខទាំងអស់នៃតំបន់ 777 ដោយចាប់ផ្តើមពីលេខ 1
  • LLC * - ក្រុមហ៊ុនទាំងអស់ដែលមានឈ្មោះចាប់ផ្តើមដោយ LLC
  • ##7## - ផលិតផលទាំងអស់ដែលមានលេខកូដឌីជីថលប្រាំខ្ទង់ ដែលខ្ទង់ទីបីគឺ 7
  • ???? - ឈ្មោះទាំងអស់នៃអក្សរប្រាំ។ល។

វិធីសាស្រ្ត 3. មុខងារម៉ាក្រូសម្រាប់បិទភ្ជាប់អត្ថបទក្រោមលក្ខខណ្ឌពីរ

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

អនុគមន៍ MergeIfs(TextRange As Range, SearchRange1 As Range, Condition1 As String, SearchRange2 As Range, Condition2 As String) Dim Delimeter As String, i As Long Delimeter = ", " 'តួអក្សរកំណត់ព្រំដែន (អាចជំនួសដោយដកឃ្លា ឬ ល។) e.) 'ប្រសិនបើ validation and gluing ranges are not equal to each other, exit with an error If SearchRange1.Count <> TextRange.Count ឬ SearchRange2.Count <> TextRange.Count បន្ទាប់មក MergeIfs = CVERr(xlErrRef) ចេញអនុគមន៍ បញ្ចប់ ប្រសិនបើ 'ឆ្លងកាត់ក្រឡាទាំងអស់ ពិនិត្យលក្ខខណ្ឌទាំងអស់ ហើយប្រមូលអត្ថបទទៅក្នុងអថេរ OutText For i = 1 To SearchRange1.Cells.Count ប្រសិនបើ SearchRange1.Cells(i) = Condition1 And SearchRange2.Cells(i) = Condition2 Then OutText = OutText & TextRange.Cells(i) & Delimeter End ប្រសិនបើ Next i 'បង្ហាញលទ្ធផលដោយគ្មានកំណត់ព្រំដែនចុងក្រោយ MergeIfs = Left(OutText, Len(OutText) - Len(Delimeter)) End Function  

វា​នឹង​ត្រូវ​បាន​អនុវត្ត​ក្នុង​វិធី​ដូចគ្នា​នេះ - មានតែ​អំណះអំណាង​ប៉ុណ្ណោះ​ដែល​ត្រូវ​បញ្ជាក់​បន្ថែម​ទៀត៖

ការភ្ជាប់អត្ថបទតាមលក្ខខណ្ឌ

វិធីសាស្រ្ត 4. ការដាក់ជាក្រុម និងស្អិតជាប់ក្នុង Power Query

អ្នកអាចដោះស្រាយបញ្ហាដោយមិនចាំបាច់សរសេរកម្មវិធីនៅក្នុង VBA ប្រសិនបើអ្នកប្រើកម្មវិធីបន្ថែម Power Query ដោយឥតគិតថ្លៃ។ សម្រាប់ Excel 2010-2013 វាអាចត្រូវបានទាញយកនៅទីនេះ ហើយនៅក្នុង Excel 2016 វាត្រូវបានសាងសង់រួចហើយតាមលំនាំដើម។ លំដាប់នៃសកម្មភាពនឹងមានដូចខាងក្រោម៖

Power Query មិនដឹងពីរបៀបធ្វើការជាមួយតុធម្មតាទេ ដូច្នេះជំហានដំបូងគឺត្រូវបង្វែរតារាងរបស់យើងទៅជា "ឆ្លាត"។ ដើម្បីធ្វើដូចនេះជ្រើសវាហើយចុចបន្សំ បញ្ជា (Ctrl)+T ឬជ្រើសរើសពីផ្ទាំង ទំព័រដើម - ធ្វើទ្រង់ទ្រាយជាតារាង (ទំព័រដើម — ធ្វើទ្រង់ទ្រាយជាតារាង). នៅលើផ្ទាំងដែលបន្ទាប់មកលេចឡើង អ្នកសាងសង់។ (រចនា) អ្នកអាចកំណត់ឈ្មោះតារាង (ខ្ញុំបានចាកចេញពីស្តង់ដារ តារាង 1):

ការភ្ជាប់អត្ថបទតាមលក្ខខណ្ឌ

ឥឡូវនេះ ចូរយើងផ្ទុកតារាងរបស់យើងទៅក្នុងកម្មវិធីបន្ថែម Power Query ។ ដើម្បីធ្វើដូចនេះនៅលើផ្ទាំង ទិន្នន័យ (ប្រសិនបើអ្នកមាន Excel 2016) ឬនៅលើផ្ទាំង Power Query (ប្រសិនបើអ្នកមាន Excel 2010-2013) ចុច ពីតុ (ទិន្នន័យ - ពីតារាង):

ការភ្ជាប់អត្ថបទតាមលក្ខខណ្ឌ

នៅក្នុងបង្អួចកម្មវិធីនិពន្ធសំណួរដែលបើក សូមជ្រើសរើសជួរឈរដោយចុចលើបឋមកថា ក្រុមហ៊ុន ហើយចុចប៊ូតុងខាងលើ ជាក្រុម (ក្រុមដោយ). បញ្ចូល​ឈ្មោះ​ជួរ​ឈរ​ថ្មី និង​ប្រភេទ​ប្រតិបត្តិការ​ក្នុង​ការ​ដាក់​ជា​ក្រុម – បន្ទាត់ទាំងអស់។ (ជួរទាំងអស់):

ការភ្ជាប់អត្ថបទតាមលក្ខខណ្ឌ

ចុចយល់ព្រមហើយយើងទទួលបានតារាងតូចមួយនៃតម្លៃដាក់ជាក្រុមសម្រាប់ក្រុមហ៊ុននីមួយៗ។ មាតិកានៃតារាងអាចមើលឃើញយ៉ាងច្បាស់ប្រសិនបើអ្នកចុចខាងឆ្វេងលើផ្ទៃខាងក្រោយពណ៌សនៃក្រឡា (មិនមែននៅលើអត្ថបទទេ!) នៅក្នុងជួរឈរលទ្ធផល៖

ការភ្ជាប់អត្ថបទតាមលក្ខខណ្ឌ

ឥឡូវ​សូម​បន្ថែម​ជួរ​ឈរ​មួយ​ទៀត ដែល​ដោយ​ប្រើ​មុខងារ យើង​បិទ​មាតិកា​នៃ​ជួរ​ឈរ​អាសយដ្ឋាន​ក្នុង​តារាង​តូច​នីមួយៗ ដោយ​បំបែក​ដោយ​សញ្ញាក្បៀស។ ដើម្បីធ្វើដូចនេះនៅលើផ្ទាំង បន្ថែមជួរឈរ យើងចុច ជួរឈរផ្ទាល់ខ្លួន (បន្ថែមជួរឈរ - ជួរឈរផ្ទាល់ខ្លួន) ហើយនៅក្នុងបង្អួចដែលបង្ហាញ សូមបញ្ចូលឈ្មោះនៃជួរឈរថ្មី និងរូបមន្តភ្ជាប់ជាភាសា M ដែលបានបង្កើតឡើងនៅក្នុង Power Query៖

ការភ្ជាប់អត្ថបទតាមលក្ខខណ្ឌ

ចំណាំថាមុខងារ M ទាំងអស់គឺប្រកាន់អក្សរតូចធំ (មិនដូច Excel) ។ បន្ទាប់ពីចុចលើ OK យើងទទួលបានជួរឈរថ្មីដែលមានអាសយដ្ឋានស្អិតជាប់៖

ការភ្ជាប់អត្ថបទតាមលក្ខខណ្ឌ

វានៅសល់ដើម្បីដកជួរឈរដែលមិនចាំបាច់រួចហើយ អាសយដ្ឋានតារាង (ចុចខាងស្តាំលើចំណងជើង) លុបជួរឈរ) ហើយបញ្ចូលលទ្ធផលទៅក្នុងសន្លឹកដោយចុចលើផ្ទាំង ទំព័រដើម - បិទ និងទាញយក (ទំព័រដើម - បិទ និងផ្ទុក):

ការភ្ជាប់អត្ថបទតាមលក្ខខណ្ឌ

nuance សំខាន់៖ មិនដូចវិធីសាស្ត្រមុន (មុខងារ) តារាងពី Power Query មិនត្រូវបានអាប់ដេតដោយស្វ័យប្រវត្តិទេ។ ប្រសិនបើនៅពេលអនាគតនឹងមានការផ្លាស់ប្តូរណាមួយនៅក្នុងទិន្នន័យប្រភព នោះអ្នកនឹងត្រូវចុចកណ្ដុរខាងស្ដាំនៅកន្លែងណាមួយក្នុងតារាងលទ្ធផល ហើយជ្រើសរើសពាក្យបញ្ជា ធ្វើបច្ចុប្បន្នភាព និងរក្សាទុក (ធ្វើ​ឱ្យ​ស្រស់).

  • របៀបបំបែកខ្សែអក្សរវែងទៅជាផ្នែក
  • វិធីជាច្រើនដើម្បីបិទភ្ជាប់អត្ថបទពីក្រឡាផ្សេងៗទៅជាមួយ។
  • ការប្រើសញ្ញាបញ្ជា Like ដើម្បីសាកល្បងអត្ថបទប្រឆាំងនឹងរបាំងមួយ។

សូមផ្ដល់យោបល់