ഉള്ളടക്കം
നിങ്ങൾക്ക് എങ്ങനെ നിരവധി സെല്ലുകളിൽ നിന്ന് ടെക്സ്റ്റ് ഒന്നിലേക്ക് വേഗത്തിൽ ഒട്ടിക്കാം എന്നതിനെക്കുറിച്ച് ഞാൻ ഇതിനകം എഴുതിയിട്ടുണ്ട്, നേരെമറിച്ച്, ഒരു നീണ്ട ടെക്സ്റ്റ് സ്ട്രിംഗ് ഘടകങ്ങളായി പാഴ്സ് ചെയ്യുക. ഇപ്പോൾ നമുക്ക് അടുത്തതും എന്നാൽ അൽപ്പം സങ്കീർണ്ണവുമായ ഒരു ടാസ്ക് നോക്കാം - ഒരു നിശ്ചിത വ്യവസ്ഥ പാലിക്കുമ്പോൾ നിരവധി സെല്ലുകളിൽ നിന്ന് വാചകം എങ്ങനെ ഒട്ടിക്കാം.
ഞങ്ങൾക്ക് ഉപഭോക്താക്കളുടെ ഒരു ഡാറ്റാബേസ് ഉണ്ടെന്ന് പറയാം, അവിടെ ഒരു കമ്പനിയുടെ പേര് അതിന്റെ ജീവനക്കാരുടെ വ്യത്യസ്ത ഇമെയിലുകളുമായി പൊരുത്തപ്പെടുന്നു. ഉപഭോക്താക്കൾക്കായി ഒരു മെയിലിംഗ് ലിസ്റ്റ് സൃഷ്ടിക്കുന്നതിന് കമ്പനിയുടെ പേരുകൾ പ്രകാരം എല്ലാ വിലാസങ്ങളും ശേഖരിക്കുകയും അവയെ (കോമകളോ അർദ്ധവിരാമങ്ങളോ ഉപയോഗിച്ച് വേർതിരിക്കുക) സംയോജിപ്പിക്കുകയും ചെയ്യുക എന്നതാണ് ഞങ്ങളുടെ ചുമതല.
മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, വ്യവസ്ഥയ്ക്ക് അനുസൃതമായി വാചകം ഒട്ടിക്കുന്ന (ലിങ്ക്) ചെയ്യുന്ന ഒരു ഉപകരണം ഞങ്ങൾക്ക് ആവശ്യമാണ് - ഫംഗ്ഷന്റെ അനലോഗ് സുമ്മെസ്ലി (SUMIF), എന്നാൽ വാചകത്തിന്.
രീതി 0. ഫോർമുല
വളരെ ഗംഭീരമല്ല, എന്നാൽ ഏറ്റവും എളുപ്പമുള്ള വഴി. അടുത്ത വരിയിലെ കമ്പനി മുമ്പത്തേതിൽ നിന്ന് വ്യത്യസ്തമാണോ എന്ന് പരിശോധിക്കുന്ന ഒരു ലളിതമായ ഫോർമുല നിങ്ങൾക്ക് എഴുതാം. ഇത് വ്യത്യസ്തമല്ലെങ്കിൽ, കോമയാൽ വേർതിരിച്ച അടുത്ത വിലാസം ഒട്ടിക്കുക. ഇത് വ്യത്യസ്തമാണെങ്കിൽ, ഞങ്ങൾ ശേഖരിച്ചത് "പുനഃസജ്ജമാക്കുന്നു", വീണ്ടും ആരംഭിക്കുന്നു:
ഈ സമീപനത്തിന്റെ പോരായ്മകൾ വ്യക്തമാണ്: ലഭിച്ച അധിക നിരയുടെ എല്ലാ സെല്ലുകളിൽ നിന്നും, ഓരോ കമ്പനിക്കും (മഞ്ഞ) അവസാനത്തേത് മാത്രമേ ആവശ്യമുള്ളൂ. ലിസ്റ്റ് വലുതാണെങ്കിൽ, അവ വേഗത്തിൽ തിരഞ്ഞെടുക്കുന്നതിന്, ഫംഗ്ഷൻ ഉപയോഗിച്ച് നിങ്ങൾ മറ്റൊരു കോളം ചേർക്കേണ്ടിവരും DLSTR (LEN), സഞ്ചിത സ്ട്രിംഗുകളുടെ നീളം പരിശോധിക്കുന്നു:
ഇപ്പോൾ നിങ്ങൾക്ക് അവ ഫിൽട്ടർ ചെയ്യാനും കൂടുതൽ ഉപയോഗത്തിനായി ആവശ്യമായ അഡ്രസ് ഗ്ലൂയിംഗ് പകർത്താനും കഴിയും.
രീതി 1. ഒരു വ്യവസ്ഥ പ്രകാരം ഗ്ലൂയിങ്ങിന്റെ മാക്രോഫംഗ്ഷൻ
ഒറിജിനൽ ലിസ്റ്റ് കമ്പനി ക്രമീകരിച്ചിട്ടില്ലെങ്കിൽ, മുകളിലുള്ള ലളിതമായ ഫോർമുല പ്രവർത്തിക്കില്ല, എന്നാൽ VBA-യിൽ ഒരു ചെറിയ ഇഷ്ടാനുസൃത ഫംഗ്ഷൻ ഉപയോഗിച്ച് നിങ്ങൾക്ക് എളുപ്പത്തിൽ ചുറ്റിക്കറങ്ങാം. ഒരു കീബോർഡ് കുറുക്കുവഴി അമർത്തി വിഷ്വൽ ബേസിക് എഡിറ്റർ തുറക്കുക Alt + F11 അല്ലെങ്കിൽ ബട്ടൺ ഉപയോഗിച്ച് വിഷ്വൽ ബേസിക് ടാബ് ഡെവലപ്പർ (ഡെവലപ്പർ). തുറക്കുന്ന വിൻഡോയിൽ, മെനുവിലൂടെ ഒരു പുതിയ ശൂന്യമായ മൊഡ്യൂൾ ചേർക്കുക തിരുകുക - മൊഡ്യൂൾ ഞങ്ങളുടെ ഫംഗ്ഷന്റെ വാചകം അവിടെ പകർത്തുക:
ഫംഗ്ഷൻ MergeIf(ടെക്സ്റ്റ് റേഞ്ച് ശ്രേണിയായി, തിരയൽ റേഞ്ച്, സ്ട്രിംഗായി കണ്ടിഷൻ) ഡിം ഡിലിമീറ്റർ സ്ട്രിംഗായി, i As Long Delimeter = ", " gluings പരസ്പരം തുല്യമല്ല - ഞങ്ങൾ ഒരു പിശകോടെ പുറത്തുകടക്കുന്നു എങ്കിൽ SearchRange.Count <> TextRange.Count. തുടർന്ന് MergeIf = CVErr(xlErrRef) Exit Function End 'എല്ലാ സെല്ലുകളിലൂടെയും പോകുകയാണെങ്കിൽ, അവസ്ഥ പരിശോധിച്ച്, വേരിയബിളിൽ വാചകം ശേഖരിക്കുക OutText For i = 1 To SearchRange. സെല്ലുകൾ. SearchRange.Cells(i) കണ്ടീഷൻ ഇഷ്ടമാണെങ്കിൽ ഔട്ട്ടെക്സ്റ്റ് = ഔട്ട്ടെക്സ്റ്റ് & ടെക്സ്റ്റ് റേഞ്ച്. സെല്ലുകൾ(i) & ഡീലിമീറ്റർ അടുത്തത് i 'അവസാന ഡിലിമിറ്റർ ഇല്ലാതെ ഫലങ്ങൾ പ്രദർശിപ്പിക്കുക MergeIf = ഇടത്(ഔട്ട്ടെക്സ്റ്റ്, ലെൻ(ഔട്ട്ടെക്സ്റ്റ്) - ലെൻ(ഡിലിമീറ്റർ)) പ്രവർത്തനം
നിങ്ങൾ ഇപ്പോൾ Microsoft Excel-ലേക്ക് മടങ്ങുകയാണെങ്കിൽ, ഫംഗ്ഷനുകളുടെ പട്ടികയിൽ (ബട്ടൺ fx ഫോർമുല ബാറിലോ ടാബിലോ സൂത്രവാക്യങ്ങൾ - ഉൾപ്പെടുത്തൽ പ്രവർത്തനം) ഞങ്ങളുടെ പ്രവർത്തനം കണ്ടെത്താൻ സാധിക്കും MergeIf വിഭാഗത്തിൽ ഉപയോക്താവ് നിർവചിച്ചു (ഉപയോക്താവ് നിർവചിച്ചത്). ഫംഗ്ഷന്റെ വാദങ്ങൾ ഇപ്രകാരമാണ്:
രീതി 2. കൃത്യമല്ലാത്ത അവസ്ഥയിൽ വാചകം കൂട്ടിച്ചേർക്കുക
നമ്മുടെ മാക്രോയുടെ 13-ാം വരിയിലെ ആദ്യ പ്രതീകം മാറ്റിസ്ഥാപിക്കുകയാണെങ്കിൽ = ഏകദേശ മാച്ച് ഓപ്പറേറ്ററിലേക്ക് പോലെ, തുടർന്ന് തിരഞ്ഞെടുക്കൽ മാനദണ്ഡവുമായി പ്രാരംഭ ഡാറ്റയുടെ കൃത്യമായ പൊരുത്തത്തിലൂടെ ഒട്ടിക്കൽ നടത്താൻ കഴിയും. ഉദാഹരണത്തിന്, കമ്പനിയുടെ പേര് വ്യത്യസ്ത വേരിയന്റുകളിൽ എഴുതാൻ കഴിയുമെങ്കിൽ, നമുക്ക് അവയെല്ലാം ഒരു ഫംഗ്ഷൻ ഉപയോഗിച്ച് പരിശോധിക്കുകയും ശേഖരിക്കുകയും ചെയ്യാം:
സ്റ്റാൻഡേർഡ് വൈൽഡ്കാർഡുകൾ പിന്തുണയ്ക്കുന്നു:
- നക്ഷത്രചിഹ്നം (*) - ഏതെങ്കിലും പ്രതീകങ്ങളുടെ എണ്ണം (അവയുടെ അഭാവം ഉൾപ്പെടെ) സൂചിപ്പിക്കുന്നു
- ചോദ്യചിഹ്നം (?) - ഏതെങ്കിലും ഒരു പ്രതീകത്തെ സൂചിപ്പിക്കുന്നു
- പൗണ്ട് ചിഹ്നം (#) - ഏതെങ്കിലും ഒരു അക്കത്തെ (0-9) സൂചിപ്പിക്കുന്നു
ഡിഫോൾട്ടായി, ലൈക്ക് ഓപ്പറേറ്റർ കേസ് സെൻസിറ്റീവ് ആണ്, അതായത്, "ഓറിയോൺ", "ഓറിയോൺ" എന്നിവ വ്യത്യസ്ത കമ്പനികളായി മനസ്സിലാക്കുന്നു. കേസ് അവഗണിക്കുന്നതിന്, വിഷ്വൽ ബേസിക് എഡിറ്ററിൽ മൊഡ്യൂളിന്റെ തുടക്കത്തിൽ തന്നെ നിങ്ങൾക്ക് ലൈൻ ചേർക്കാവുന്നതാണ് വാചകം താരതമ്യം ചെയ്യാനുള്ള ഓപ്ഷൻ, ഇത് ലൈക്ക് കേസ് സെൻസിറ്റീവ് ആയി മാറും.
ഈ രീതിയിൽ, വ്യവസ്ഥകൾ പരിശോധിക്കുന്നതിനായി നിങ്ങൾക്ക് വളരെ സങ്കീർണ്ണമായ മാസ്കുകൾ രചിക്കാൻ കഴിയും, ഉദാഹരണത്തിന്:
- ?1##??777RUS – 777 മേഖലയിലെ എല്ലാ ലൈസൻസ് പ്ലേറ്റുകളുടെയും തിരഞ്ഞെടുപ്പ്, 1 ൽ ആരംഭിക്കുന്നു
- LLC* - LLC എന്ന് തുടങ്ങുന്ന എല്ലാ കമ്പനികളും
- ##7## - അഞ്ചക്ക ഡിജിറ്റൽ കോഡുള്ള എല്ലാ ഉൽപ്പന്നങ്ങളും, ഇവിടെ മൂന്നാമത്തെ അക്കം 7 ആണ്
- ????? - അഞ്ച് അക്ഷരങ്ങളുടെ എല്ലാ പേരുകളും മുതലായവ.
രീതി 3. രണ്ട് വ്യവസ്ഥകൾക്ക് കീഴിൽ വാചകം ഒട്ടിക്കുന്നതിനുള്ള മാക്രോ പ്രവർത്തനം
ഒന്നിലധികം വ്യവസ്ഥകൾ ടെക്സ്റ്റ് ലിങ്ക് ചെയ്യേണ്ടിവരുമ്പോൾ ജോലിയിൽ ഒരു പ്രശ്നമുണ്ടാകാം. ഉദാഹരണത്തിന്, ഞങ്ങളുടെ മുമ്പത്തെ പട്ടികയിൽ, നഗരത്തിനൊപ്പം ഒരു കോളം കൂടി ചേർത്തിട്ടുണ്ടെന്ന് നമുക്ക് സങ്കൽപ്പിക്കാം, തന്നിരിക്കുന്ന കമ്പനിക്ക് മാത്രമല്ല, ഒരു നിശ്ചിത നഗരത്തിനും ഗ്ലൂയിംഗ് നടത്തണം. ഈ സാഹചര്യത്തിൽ, ഞങ്ങളുടെ ഫംഗ്ഷൻ ഇതിലേക്ക് മറ്റൊരു റേഞ്ച് ചെക്ക് ചേർത്തുകൊണ്ട് ചെറുതായി നവീകരിക്കേണ്ടതുണ്ട്:
ഫംഗ്ഷൻ MergeIfs(ടെക്സ്റ്റ്റേഞ്ച് ശ്രേണിയായി, സെർച്ച്റേഞ്ച്1 റേഞ്ചായി, കണ്ടിഷൻ1 സ്ട്രിംഗായി, സെർച്ച്റേഞ്ച്2 റേഞ്ചായി, കണ്ടിഷൻ2 സ്ട്രിംഗായി) ഡിം ഡിലിമീറ്റർ സ്ട്രിംഗായി, ഐ ആസ് ലോംഗ് ഡിലിമീറ്റർ = ", " 'ഡിലിമിറ്റർ പ്രതീകങ്ങൾ (സ്പേസ് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കാം അല്ലെങ്കിൽ ; മുതലായവ) ഇ.) 'വാലിഡേഷനും ഗ്ലൂയിംഗ് ശ്രേണികളും പരസ്പരം തുല്യമല്ലെങ്കിൽ, SearchRange1.Count <> TextRange.Count അല്ലെങ്കിൽ SearchRange2.Count <> TextRange.Count എങ്കിൽ MergeIfs = CVErr(xlErrRef) എക്സിറ്റ് ഫംഗ്ഷൻ അവസാനിക്കുകയാണെങ്കിൽ 'എല്ലാ സെല്ലുകളിലൂടെയും പോയി, എല്ലാ വ്യവസ്ഥകളും പരിശോധിച്ച്, വേരിയബിളിലേക്ക് വാചകം ശേഖരിക്കുക OutText for i = 1 to SearchRange1.Cells. SearchRange1.Cells(i) = Condition1, SearchRange2.Cells(i) = Condition2 എങ്കിൽ ഔട്ട്ടെക്സ്റ്റ് = OutText & TextRange.Cells(i) & Delimeter End അടുത്തത് ഐ 'അവസാന ഡിലിമിറ്റർ ഇല്ലാതെ ഫലങ്ങൾ പ്രദർശിപ്പിക്കുക MergeIfs = ഇടത്(ഔട്ട്ടെക്സ്റ്റ്, ലെൻ(ഔട്ട്ടെക്സ്റ്റ്) - ലെൻ(ഡിലിമീറ്റർ)) എൻഡ് ഫംഗ്ഷൻ
ഇത് അതേ രീതിയിൽ തന്നെ പ്രയോഗിക്കും - ഇപ്പോൾ ആർഗ്യുമെന്റുകൾ മാത്രം കൂടുതൽ വ്യക്തമാക്കേണ്ടതുണ്ട്:
രീതി 4. പവർ ക്വറിയിൽ ഗ്രൂപ്പിംഗും ഗ്ലൂയിംഗും
നിങ്ങൾ സൗജന്യ പവർ ക്വറി ആഡ്-ഇൻ ഉപയോഗിക്കുകയാണെങ്കിൽ, VBA-യിൽ പ്രോഗ്രാമിംഗ് കൂടാതെ നിങ്ങൾക്ക് പ്രശ്നം പരിഹരിക്കാനാകും. Excel 2010-2013-ന് ഇത് ഇവിടെ ഡൗൺലോഡ് ചെയ്യാവുന്നതാണ്, Excel 2016-ൽ ഇത് ഇതിനകം സ്ഥിരസ്ഥിതിയായി നിർമ്മിച്ചിരിക്കുന്നു. പ്രവർത്തനങ്ങളുടെ ക്രമം ഇപ്രകാരമായിരിക്കും:
സാധാരണ ടേബിളുകൾ ഉപയോഗിച്ച് എങ്ങനെ പ്രവർത്തിക്കണമെന്ന് പവർ ക്വറിക്ക് അറിയില്ല, അതിനാൽ ഞങ്ങളുടെ ടേബിൾ ഒരു "സ്മാർട്ട്" ആക്കി മാറ്റുക എന്നതാണ് ആദ്യപടി. ഇത് ചെയ്യുന്നതിന്, അത് തിരഞ്ഞെടുത്ത് കോമ്പിനേഷൻ അമർത്തുക Ctrl+T അല്ലെങ്കിൽ ടാബിൽ നിന്ന് തിരഞ്ഞെടുക്കുക വീട് - ഒരു പട്ടികയായി ഫോർമാറ്റ് ചെയ്യുക (ഹോം - പട്ടികയായി ഫോർമാറ്റ് ചെയ്യുക). അപ്പോൾ ദൃശ്യമാകുന്ന ടാബിൽ കൺസ്ട്രക്ടർ (ഡിസൈൻ) നിങ്ങൾക്ക് പട്ടികയുടെ പേര് സജ്ജമാക്കാൻ കഴിയും (ഞാൻ സ്റ്റാൻഡേർഡ് വിട്ടു പട്ടിക 1):
ഇനി നമുക്ക് നമ്മുടെ ടേബിൾ പവർ ക്വറി ആഡ്-ഇന്നിലേക്ക് ലോഡ് ചെയ്യാം. ഇത് ചെയ്യുന്നതിന്, ടാബിൽ ഡാറ്റ (നിങ്ങൾക്ക് Excel 2016 ഉണ്ടെങ്കിൽ) അല്ലെങ്കിൽ പവർ ക്വറി ടാബിൽ (നിങ്ങൾക്ക് Excel 2010-2013 ഉണ്ടെങ്കിൽ) ക്ലിക്ക് ചെയ്യുക മേശയിൽ നിന്ന് (ഡാറ്റ - പട്ടികയിൽ നിന്ന്):
തുറക്കുന്ന അന്വേഷണ എഡിറ്റർ വിൻഡോയിൽ, തലക്കെട്ടിൽ ക്ലിക്കുചെയ്ത് കോളം തിരഞ്ഞെടുക്കുക സംഘം മുകളിൽ ബട്ടൺ അമർത്തുക ഗ്രൂപ്പ് (ഗ്രൂപ്പ് പ്രകാരം). ഗ്രൂപ്പിംഗിലെ പുതിയ നിരയുടെ പേരും പ്രവർത്തന തരവും നൽകുക - എല്ലാ വരികളും (എല്ലാ വരികളും):
ശരി ക്ലിക്കുചെയ്യുക, ഓരോ കമ്പനിക്കും ഗ്രൂപ്പുചെയ്ത മൂല്യങ്ങളുടെ ഒരു മിനി-ടേബിൾ ഞങ്ങൾക്ക് ലഭിക്കും. തത്ഫലമായുണ്ടാകുന്ന കോളത്തിലെ സെല്ലുകളുടെ വെളുത്ത പശ്ചാത്തലത്തിൽ (ടെക്സ്റ്റിൽ അല്ല!) ഇടത്-ക്ലിക്കുചെയ്യുകയാണെങ്കിൽ പട്ടികകളിലെ ഉള്ളടക്കങ്ങൾ വ്യക്തമായി കാണാം:
ഇപ്പോൾ നമുക്ക് ഒരു കോളം കൂടി ചേർക്കാം, അവിടെ, ഫംഗ്ഷൻ ഉപയോഗിച്ച്, ഓരോ മിനി-ടേബിളുകളിലെയും വിലാസ നിരകളുടെ ഉള്ളടക്കങ്ങൾ കോമകളാൽ വേർതിരിച്ചിരിക്കുന്നു. ഇത് ചെയ്യുന്നതിന്, ടാബിൽ നിര ചേർക്കുക ഞങ്ങൾ അമർത്തുന്നു ഇഷ്ടാനുസൃത കോളം (നിര ചേർക്കുക - ഇഷ്ടാനുസൃത കോളം) ദൃശ്യമാകുന്ന വിൻഡോയിൽ, പവർ ക്വറിയിൽ നിർമ്മിച്ച എം ഭാഷയിൽ പുതിയ കോളത്തിന്റെ പേരും കപ്ലിംഗ് ഫോർമുലയും നൽകുക:
എല്ലാ എം-ഫംഗ്ഷനുകളും കേസ് സെൻസിറ്റീവ് ആണെന്നത് ശ്രദ്ധിക്കുക (എക്സൽ പോലെയല്ല). ക്ലിക്ക് ചെയ്ത ശേഷം OK ഒട്ടിച്ച വിലാസങ്ങളുള്ള ഒരു പുതിയ കോളം ഞങ്ങൾക്ക് ലഭിക്കും:
ഇതിനകം അനാവശ്യമായ കോളം നീക്കംചെയ്യാൻ ഇത് ശേഷിക്കുന്നു പട്ടിക വിലാസങ്ങൾ (ശീർഷകത്തിൽ വലത് ക്ലിക്ക് ചെയ്യുക) കോളം ഇല്ലാതാക്കുക) ടാബിൽ ക്ലിക്ക് ചെയ്ത് ഷീറ്റിലേക്ക് ഫലങ്ങൾ അപ്ലോഡ് ചെയ്യുക വീട് - അടച്ച് ഡൗൺലോഡ് ചെയ്യുക (വീട് - അടച്ച് ലോഡ് ചെയ്യുക):
പ്രധാനപ്പെട്ട ന്യൂനൻസ്: മുമ്പത്തെ രീതികളിൽ നിന്ന് വ്യത്യസ്തമായി (പ്രവർത്തനങ്ങൾ), പവർ ക്വറിയിൽ നിന്നുള്ള പട്ടികകൾ സ്വയമേവ അപ്ഡേറ്റ് ചെയ്യപ്പെടുന്നില്ല. ഭാവിയിൽ ഉറവിട ഡാറ്റയിൽ എന്തെങ്കിലും മാറ്റങ്ങളുണ്ടെങ്കിൽ, നിങ്ങൾ ഫല പട്ടികയിൽ എവിടെയെങ്കിലും വലത്-ക്ലിക്കുചെയ്ത് കമാൻഡ് തിരഞ്ഞെടുക്കേണ്ടതുണ്ട്. അപ്ഡേറ്റ് & സംരക്ഷിക്കുക (പുതുക്കുക).
- ഒരു നീണ്ട ടെക്സ്റ്റ് സ്ട്രിംഗ് ഭാഗങ്ങളായി എങ്ങനെ വിഭജിക്കാം
- വ്യത്യസ്ത സെല്ലുകളിൽ നിന്നുള്ള ടെക്സ്റ്റ് ഒന്നായി ഒട്ടിക്കാൻ നിരവധി വഴികൾ
- ഒരു മാസ്കിനെതിരെ ടെക്സ്റ്റ് പരിശോധിക്കാൻ ലൈക്ക് ഓപ്പറേറ്റർ ഉപയോഗിക്കുന്നു