د شرایطو له مخې متن تړل

ما لا دمخه په دې اړه لیکلي چې تاسو څنګه کولی شئ په چټکۍ سره د څو حجرو څخه متن په یوه کې وخورئ او په برعکس، د اوږد متن تار په برخو کې تجزیه کړئ. اوس راځئ چې یو نږدې، مګر یو څه ډیر پیچلي دنده وګورو - څنګه د څو حجرو څخه متن چپک کړئ کله چې یو ټاکلی شرط پوره شي. 

راځئ چې ووایو چې موږ د پیرودونکو ډیټابیس لرو ، چیرې چې د یو شرکت نوم کولی شي د خپلو کارمندانو ډیری مختلف بریښنالیکونو سره مطابقت ولري. زموږ دنده دا ده چې ټول ادرسونه د شرکت نومونو سره راټول کړو او دوی سره یوځای کړو (د کوما یا سیمیکولونونو په واسطه جلا شوي) ترڅو جوړ کړو، د بیلګې په توګه، د پیرودونکو لپاره د بریښنالیک لیست، د بیلګې په توګه یو څه ترلاسه کړئ لکه:

د شرایطو له مخې متن تړل

په بل عبارت، موږ یوې وسیلې ته اړتیا لرو چې د شرایطو سره سم متن چپه کړي (لینک) - د فنکشن انالوګ SUMMESLI (SUMIF)مګر د متن لپاره.

میتود 0. فورمول

ډیر ښکلی ندی، مګر ترټولو اسانه لاره. تاسو کولی شئ یو ساده فورمول ولیکئ چې دا به وګوري چې ایا په راتلونکي قطار کې شرکت د تیر څخه توپیر لري. که دا توپیر ونلري، نو راتلونکی پته د کوما په واسطه جلا کړئ. که دا توپیر ولري، نو موږ راټول شوي "بیا بیا تنظیم" کوو، بیا پیل کوو:

د شرایطو له مخې متن تړل

د دې تګلارې نیمګړتیاوې څرګندې دي: د ترلاسه شوي اضافي کالم ټولو حجرو څخه، موږ د هر شرکت لپاره یوازې وروستي (زیړ) ته اړتیا لرو. که لیست لوی وي ، نو د دوی د ګړندي غوره کولو لپاره ، تاسو باید د فنکشن په کارولو سره بل کالم اضافه کړئ د ‏‎DLSTR‎‏ پاڼې اړوند نور معلومات په فسبوک کې اوګورئ (لین)د جمع شوي تارونو اوږدوالی معاینه کول:

د شرایطو له مخې متن تړل

اوس تاسو کولی شئ هغه فلټر کړئ او د نورو کارولو لپاره اړین پته ګلینګ کاپي کړئ.

طريقه 1. د يو حالت له مخې د gluing macrofunction

که اصلي لیست د شرکت لخوا ترتیب شوی نه وي، نو پورته ساده فورمول کار نه کوي، مګر تاسو کولی شئ په VBA کې د کوچني دودیز فعالیت سره په اسانۍ سره ترلاسه کړئ. د کیبورډ شارټ کټ په فشارولو سره د بصری اساسی مدیر خلاص کړئ Alt + F11 یا د تڼۍ په کارولو سره شارپ ټوپ د پراختیا (پراختیا). په هغه کړکۍ کې چې خلاصیږي، د مینو له لارې یو نوی خالي ماډل داخل کړئ داخل کړئ - ماډل او هلته زموږ د فعالیت متن کاپي کړئ:

Function MergeIf(د متن رینج د رینج په توګه، د رینج په توګه د لټون رینج، د تار په توګه حالت) د سټینګ په توګه ډیلیمیټر، i د اوږد ډیلیمیټر په توګه = "، " gluings یو له بل سره مساوي ندي - موږ د یوې تېروتنې سره وځو که SearchRange.Count <> TextRange.Count بیا MergeIf = CVErr(xlErrRef) Exit Function End If 'د ټولو حجرو له لارې لاړ شئ، حالت وګورئ او متن په متغیر OutText For i = 1 کې د لټون رینج ته راټول کړئ. Cells.count که SearchRange.Cells(i) د حالت په څیر وي نو OutText = OutText او TextRange.Cells(i) او Delimeter Next i 'پایلې ښکاره کړئ پرته له وروستي حده MergeIf = Left(OutText, Len(OutText) - Len(Delimeter)) پای فعالیت  

که تاسو اوس د مایکروسافټ ایکسل ته بیرته راشئ ، نو د دندو لیست کې (تڼۍ fx په فورمول بار یا ټب کې فورمولونه - فعالیت داخل کړئ) دا به ممکنه وي چې زموږ فعالیت ومومئ ضم کول په کټګورۍ کې کارن ټاکل شوی (د کارونکي تعریف شوی). د فعالیت دلیلونه په لاندې ډول دي:

د شرایطو له مخې متن تړل

طريقه 2. متن د نا سم حالت سره نښلول

که موږ د خپل میکرو په 13 کرښه کې لومړی کرکټر بدل کړو = د نږدې میچ آپریټر ته په شان، بیا به دا ممکنه وي چې د انتخاب معیار سره د لومړني ډیټا غیر درست میچ له لارې ګلینګ ترسره کړئ. د مثال په توګه، که چیرې د شرکت نوم په مختلف ډولونو کې ولیکل شي، نو موږ کولی شو دا ټول د یو فنکشن سره وګورو او راټول کړو:

د شرایطو له مخې متن تړل

معیاري وائلډ کارډونه ملاتړ کیږي:

  • ستوری (*) - د هر ډول حروفونو شمیر څرګندوي (د دوی د نشتوالي په شمول)
  • د پوښتنې نښه (؟) - د هر یو کرکټر لپاره ولاړ دی
  • د پونډ نښه (#) - د هرې یوې عدد لپاره ولاړ دی (0-9)

په ډیفالټ ډول، لایک آپریټر د قضیې حساس دی، د بیلګې په توګه، "اورین" او "اورین" د مختلف شرکتونو په توګه پوهیږي. د قضیې له پامه غورځولو لپاره، تاسو کولی شئ د ویژول اساسی مدیر کې د ماډل په پیل کې لاین اضافه کړئ اختیار د متن پرتله کول، کوم چې به د قضیې غیر حساس کیدو په څیر بدل شي.

په دې توګه، تاسو کولی شئ د شرایطو چک کولو لپاره خورا پیچلي ماسکونه جوړ کړئ، د بیلګې په توګه:

  • 1##?? 777RUS - د 777 سیمې د ټولو جواز پلیټونو انتخاب، د 1 سره پیل کیږي
  • LLC* - ټول شرکتونه چې نوم یې د LLC سره پیل کیږي
  • ##7## – ټول محصولات د پنځه عددي ډیجیټل کوډ سره، چیرته چې دریم عدد 7 دی
  • ؟؟؟؟؟؟ - د پنځو حروفو ټول نومونه، او نور.

طریقه 3. د دوو شرایطو لاندې د متن د ګل کولو لپاره د میکرو فعالیت

په کار کې ممکن ستونزه وي کله چې تاسو اړتیا لرئ متن له یو څخه ډیرو شرایطو سره وصل کړئ. د مثال په توګه، راځئ چې تصور وکړو چې زموږ په تیر جدول کې، د ښار سره یو بل کالم اضافه شوی، او ګلینګ باید نه یوازې د ورکړل شوي شرکت لپاره، بلکې د ورکړل شوي ښار لپاره هم ترسره شي. په دې حالت کې، زموږ فعالیت باید د یو بل رینج چک په اضافه کولو سره یو څه عصري شي:

فنکشن MergeIfs(د متن رینج د رینج په توګه، د لټون رینج 1 د رینج په توګه، حالت 1 د سټینګ په توګه، د لټون رینج 2 د رینج په توګه، حالت 2 د سټینګ په توګه) ډیم ډیلیمیټر د سټینګ په توګه، i د اوږد ډیلیمیټر په توګه = "،" د ډیلیمیټر حروف (د ځای یا ؛ او داسې نورو سره بدلیدلی شي) e.) 'که د تایید او ګلو کولو سلسله یو له بل سره مساوي نه وي، د یوې تېروتنې سره وځئ که SearchRange1.Count <> TextRange.Count یا SearchRange2.Count <> TextRange.Count بیا MergeIfs = CVErr(xlErrRef) د وتلو فنکشن پای ته ورسوئ. د ټولو حجرو له لارې لاړ شئ، ټول شرایط وګورئ او متن په متغیر OutText کې راټول کړئ i = 1 ته د SearchRange1.Cells.Count که SearchRange1.Cells(i) = Condition1 او SearchRange2.Cells(i) = Condition2 بیا OutText = OutText & TextRange.Cells(i) او Delimeter End که راتلونکی i 'پایلې ښکاره کوي پرته له وروستي ډیلیمیټر MergeIfs = کیڼ(OutText, Len(OutText) - Len(Delimeter)) پای فنکشن  

دا به په ورته ډول پلي شي - یوازې دلیلونه اوس باید نور مشخص شي:

د شرایطو له مخې متن تړل

طريقه 4. د پاور پوښتنې کې ګروپ کول او ګلو کول

تاسو کولی شئ ستونزه په VBA کې د پروګرام کولو پرته حل کړئ، که تاسو د وړیا بریښنا پوښتنې اضافه کاروئ. د Excel 2010-2013 لپاره دا دلته ډاونلوډ کیدی شي، او په Excel 2016 کې دا دمخه په ډیفالټ کې جوړ شوی. د کړنو ترتیب به په لاندې ډول وي:

د بریښنا پوښتنه نه پوهیږي چې څنګه د منظم میزونو سره کار وکړي، نو لومړی ګام دا دی چې زموږ میز په "سمارټ" بدل کړئ. د دې کولو لپاره، دا غوره کړئ او ترکیب فشار ورکړئ Ctrl+T یا د ټب څخه غوره کړئ کور - د میز په توګه بڼه (کور – د جدول په بڼه). په هغه ټب کې چې بیا څرګندیږي جوړونکی (ډیزاین) تاسو کولی شئ د میز نوم تنظیم کړئ (ما معیار پریښود جدول 1):

د شرایطو له مخې متن تړل

اوس راځئ چې خپل جدول د پاور پوښتنې اضافې ته پورته کړو. د دې کولو لپاره، په ټب کې د معلوماتو د (که تاسو Excel 2016 لرئ) یا د بریښنا پوښتنې ټب کې (که تاسو Excel 2010-2013 لرئ) کلیک وکړئ د میز څخه (ډاټا - له جدول څخه):

د شرایطو له مخې متن تړل

د پوښتنې مدیر کړکۍ کې چې خلاصیږي، د سرلیک په کلیک کولو سره کالم غوره کړئ شرکت او پورته تڼۍ فشار ورکړئ ګروپ (د ګروپ لخوا). په ګروپینګ کې د نوي کالم نوم او د عملیاتو ډول دننه کړئ - ټولې کرښې (ټول قطارونه):

د شرایطو له مخې متن تړل

په OK کلیک وکړئ او موږ د هر شرکت لپاره د ډله ایزو ارزښتونو یو کوچنی میز ترلاسه کوو. د جدولونو مینځپانګه په څرګنده توګه لیدل کیږي که تاسو د پایلې په کالم کې د حجرو په سپینه شالید (نه په متن کې!) کیڼ کلیک وکړئ:

د شرایطو له مخې متن تړل

اوس راځئ چې یو بل کالم اضافه کړو، چیرې چې د فنکشن په کارولو سره، موږ د پتې د کالمونو مینځپانګې په هر کوچني میز کې د کوما په واسطه جلا کوو. د دې کولو لپاره، په ټب کې کالم اضافه کړئ موږ فشار راوړو دودیز کالم (کالم اضافه کړئ - دودیز کالم) او په هغه کړکۍ کې چې ښکاره کیږي، د نوي کالم نوم او د M ژبه کې د یوځای کولو فورمول دننه کړئ چې د پاور پوښتنې کې جوړ شوی:

د شرایطو له مخې متن تړل

په یاد ولرئ چې ټولې M-فکشنونه د قضیې حساس دي (د ایکسل برعکس). د کلیک کولو وروسته OK موږ یو نوی کالم د چپک شوي پتې سره ترلاسه کوو:

د شرایطو له مخې متن تړل

دا د لا دمخه غیر ضروري کالم لرې کولو لپاره پاتې دي د میز پته (په سرلیک ښي کلیک وکړئ) کالم ړنګ کړئ) او د ټب په کلیک کولو سره پاڼې ته پایلې پورته کړئ کور - وتړئ او ډاونلوډ کړئ (کور - تړل او بار کول):

د شرایطو له مخې متن تړل

مهم ټکی: د پخوانیو میتودونو (دندو) برعکس، د پاور پوښتنې میزونه په اوتومات ډول نه تازه کیږي. که په راتلونکي کې به د سرچینې ډیټا کې کوم بدلون وي ، نو تاسو به اړتیا ولرئ د پایلو په جدول کې هرچیرې ښي کلیک وکړئ او کمانډ غوره کړئ تازه کول او خوندي کول (تازه کول).

  • د اوږد متن تار په برخو ویشلو څرنګوالی
  • د مختلفو حجرو څخه متن په یوه کې د ګونګ کولو څو لارې
  • د ماسک پروړاندې د متن ازموینې لپاره د لایک آپریټر کارول

یو ځواب ورکړئ ووځي