မာတိကာ
ဤကျူတိုရီရယ်တွင်၊ Excel အတွင်းရှိ စာကြောင်းများနှင့် ကိုက်ညီရန် regex ကို အသုံးပြုနည်းကို နက်နက်နဲနဲ လေ့လာကြည့်ပါမည်။
အကွာအဝေးတစ်ခုအတွင်းရှိ အချို့သောတန်ဖိုးကို ရှာဖွေရန် လိုအပ်သည့်အခါ၊ ဆဲလ်များ၏၊ သင်သည် MATCH သို့မဟုတ် XMATCH လုပ်ဆောင်ချက်ကို အသုံးပြုမည်ဖြစ်သည်။ ဆဲလ်တစ်ခုရှိ သီးခြားစာကြောင်းတစ်ခုကို ရှာဖွေသောအခါ၊ FIND နှင့် SEARCH လုပ်ဆောင်ချက်များသည် အဆင်ပြေလာပါသည်။ ဆဲလ်တစ်ခုတွင် ပေးထားသည့်ပုံစံနှင့် ကိုက်ညီသော အချက်အလက်များ ပါ၀င်သည်ဆိုသည်ကို သင် မည်သို့သိနိုင်မည်နည်း။ ပုံမှန်အသုံးအနှုန်းများကို အသုံးပြုခြင်းဖြင့် သိသာသည်။ သို့သော် Excel သည် regexes ကိုမထောက်ပံ့ပါ။ စိတ်မပူပါနှင့်၊ ကျွန်ုပ်တို့က ၎င်းကို အတင်းအကျပ်ခိုင်းစေမည် :)
စာကြောင်းများနှင့် ကိုက်ညီရန် Excel VBA Regex လုပ်ဆောင်ချက်
ပုံမှန်အသုံးအနှုန်းများကို အသုံးပြုရန်အတွက် ခေါင်းစဉ်မှ ရှင်းနေသောကြောင့်၊ Excel တွင်၊ သင်သည်သင်၏ကိုယ်ပိုင် function ကိုဖန်တီးရန်လိုအပ်သည်။ ကံကောင်းစွာဖြင့်၊ Excel ၏ VBA တွင် အောက်တွင်ဖော်ပြထားသည့်အတိုင်း သင့်ကုဒ်တွင် သင်အသုံးပြုနိုင်သည့် inbuilt RegExp အရာဝတ္ထုတစ်ခုရှိသည်-
Public Function RegExpMatch(input_range အဖြစ် Range၊ ပုံစံအတိုင်း String၊ Optional match_case As Boolean = True ) As ရလဒ်များကို သိမ်းဆည်းရန် မူကွဲ Dim arRes() မူကွဲ 'အာရေးး' အဖြစ် Dim iInputCurRow, iInputCurCol, cntInputRows, cntInputCols As Long 'ရင်းမြစ်အပိုင်းအခြားရှိ လက်ရှိအတန်း၏ အညွှန်းကိန်း၊ ရင်းမြစ်အပိုင်းအခြားရှိ လက်ရှိကော်လံ၏ အညွှန်းကိန်း၊ အတန်းအရေအတွက်၊ အရေအတွက်၊ ကော်လံများ အမှား GoTo ErrHandl RegExpMatch = arRes သတ်မှတ်မည် regex = CreateObject ( "VBScript.RegExp" ) regex.pattern = ပုံစံ regex.Global = True regex.MultiLine = True If True = match_case ထို့နောက် regex.ignorecase = False Else = regex. အဆုံးအသုံးအနှုန်းများ။ပုံစံ - \b[\w\.\-]+@[A-Za-z0-9]+[A-Za-z0-9\.\- ]*[A-Za-z0-9]+\.[A-Za-z]{2,24}\b
ဤတွင်ဖြစ်ပျက်နေသည့်အရာများကို ပိုမိုကောင်းမွန်စွာနားလည်ရန်၊ အပိုင်းတစ်ခုစီကို အနီးကပ်လေ့လာကြည့်ကြပါစို့။ :
- အသုံးပြုသူအမည် တွင် စာလုံးများ၊ နံပါတ်များ၊ အောက်ခံများ၊ အစက်များနှင့် တုံးတိုများ ပါဝင်နိုင်သည်။ \w မည်သည့်အက္ခရာ၊ ဂဏန်း သို့မဟုတ် အောက်မှတ်များ ကိုက်ညီသည်ကို မှတ်သားထားပါ၊ ကျွန်ုပ်တို့သည် အောက်ပါ regex ကို ရရှိသည်- [\w\.\-]+
- ဒိုမိန်းအမည် တွင် စာလုံးကြီးနှင့် စာလုံးသေးများ ပါဝင်နိုင်သည်၊ ဂဏန်းများ၊ တုံးတိုများ (သို့သော် ပထမ သို့မဟုတ် နောက်ဆုံး အနေအထားတွင် မဟုတ်ပါ) နှင့် အစက်များ (နယ်ပယ်ခွဲများ အတွက်)။ အောက်မှတ်များကို ခွင့်မပြုသောကြောင့် \w အစား ကျွန်ုပ်တို့သည် မတူညီသော စာလုံး 3 လုံးကို အသုံးပြုနေသည်- [A-Za-z0-9]+[A-Za-z0-9\.\-]*[A-Za-z0-9 ]+
- ထိပ်တန်းအဆင့်ဒိုမိန်း တွင် စာလုံးကြီးနှင့် စာလုံးသေးဖြင့် နောက်တွင် အစက်တစ်ခုပါရှိသည်။ ၎င်းတွင် စာလုံး 2 လုံးမှ 24 လုံးအထိ ပါဝင်နိုင်သည် (လက်ရှိတွင် အကြာဆုံး TLD ဖြစ်သည်): \.[A-Za-z]{2,24}
မှတ်ချက်။ ပုံစံသည် ဒိုမိန်းအမည်တွင် အက္ခရာဂဏန်း စာလုံး 2 လုံး သို့မဟုတ် ထို့ထက်ပို၍ ပါဝင်သည်ဟု ယူဆသည်။
A5 ရှိ မူရင်းစာသားနှင့် A5 ရှိ ပုံစံဖြင့်၊ ဖော်မြူလာသည် ဤပုံသဏ္ဍာန်ကို ယူဆောင်သည်-
=RegExpMatch(A5, $A$2)
သို့မဟုတ် သင်ပိုမိုရိုးရှင်းသော ပုံမှန်ပုံစံကို အသုံးပြုနိုင်သည်။ စာလုံးအသေး သို့မဟုတ် စာလုံးအကြီးဖြင့် အီးမေးလ်ဖြင့် အတည်ပြုခြင်းအတွက် စကားရပ်-
Pattern : \b[\w\.\-]+@[a-z0-9]+[a- z0-9\.\-]*[a-z0-9]+\.[a-z]{2,24}\b
သို့သော် သင်၏ ဖော်မြူလာကို အသေးစိပ် အာရုံမခံပါနှင့်-
=RegExpMatch(A5, $A$2, FALSE)
ကိုက်ညီသော regex ပါသော Excel IF ဖော်မြူလာ
ထည့်သွင်းပြီး စိတ်ကြိုက်ပြုလုပ်ထားသောကြောင့်၊လုပ်ဆောင်ချက်များသည် ကောင်းမွန်စွာ လည်ပတ်နေသည်၊ ၎င်းတို့ကို ဖော်မြူလာတစ်ခုတည်းတွင် တွဲသုံးခြင်းမှ သင့်ကို တားဆီးပေးမည့် မည်သည့်အရာမျှ မရှိပါ။
ပုံမှန်အသုံးအနှုန်းတစ်ခုနှင့် ကိုက်ညီပါက တစ်ခုခုကို ပြန်တွက်ရန် သို့မဟုတ် တွက်ချက်ရန်နှင့် ၎င်းနှင့် မကိုက်ညီပါက အခြားအရာတစ်ခုခုကို စိတ်ကြိုက် RegExpMatch ကို ထည့်သွင်းပါ။ IF (RegExpMatch(…), [value_if_true], [value_if_false])
ဥပမာ၊ A5 တွင် စာကြောင်းတစ်ကြောင်းတွင် မှန်ကန်သော အီးမေးလ်လိပ်စာတစ်ခု ပါဝင်နေပါက၊ သင်သည် "Yes" ကို ပြန်ပေးနိုင်ပါသည်။ မဟုတ်ပါက "No""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""")။ COUNTIS သို့မဟုတ် COUNTIFS လုပ်ဆောင်ချက်တွင် regex ကို တိုက်ရိုက်ထည့်ရန် မဖြစ်နိုင်ပါ။ ကံကောင်းစွာဖြင့်၊ သင်သည် ကျွန်ုပ်တို့၏ စိတ်ကြိုက်လုပ်ဆောင်ချက်ကို အသုံးပြု၍ ဤလုပ်ဆောင်ချက်ကို အတုယူနိုင်ပါသည်။
သင်သည် ဖုန်းနံပါတ်များနှင့် ကိုက်ညီစေရန် regex ကို အသုံးပြုပြီး ရလဒ်များကို ကော်လံ B တွင် ထုတ်ပေးမည်ဆိုပါက၊ ဆဲလ်အရေအတွက်မည်မျှပါရှိသည်ကို သိရှိရန် သင်သာလိုအပ်ပါသည်။ B5:B9 တွင် TRUE တန်ဖိုးများကို ရေတွက်ရန်။ စံ COUNTIF ဖော်မြူလာကို အသုံးပြု၍ ၎င်းကို အလွယ်တကူ လုပ်ဆောင်နိုင်သည်-
=COUNTIF(B5:B9, TRUE)
သင်၏ အလုပ်စာရွက်ရှိ ကော်လံများ ထပ်မလိုချင်ဘူးလား။ ပြဿနာမရှိပါဘူး။ ကျွန်ုပ်တို့၏စိတ်ကြိုက်လုပ်ဆောင်ချက်သည် တစ်ချိန်တည်းတွင် ဆဲလ်အများအပြားကို လုပ်ဆောင်နိုင်ပြီး Excel ၏ SUM သည် ခင်းကျင်းမှုတစ်ခုတွင် တန်ဖိုးများကို ပေါင်းထည့်နိုင်သည်၊ ဤသည်မှာ သင်လုပ်ဆောင်သည့်အရာဖြစ်သည်-
- RegExpMatch သို့ အပိုင်းအခြားကို ရည်ညွှန်းချက်တစ်ခု ဖြည့်သွင်းပါ၊ ထို့ကြောင့် ၎င်းကို ပြန်ပေးသည်။ အစစ်အမှန်နှင့် မှားသောတန်ဖိုးများ၏ array။
- တစ်ခုနှင့်တစ်ခုသို့ ယုတ္တိတန်ဘိုးများကို ညှိယူရန် double negation (--) ကိုသုံးပါ။သုည။
- ရလဒ် array တွင် 1's နှင့် 0's ပေါင်းထည့်ရန် SUM လုပ်ဆောင်ချက်ကို ရယူလိုက်ပါ။
=SUM(--RegExpMatch(A5:A9, $A$2))
Regex ကိုက်ညီမှု Ultimate Suite ဖြင့်
ကျွန်ုပ်တို့၏ Ultimate Suite ၏အသုံးပြုသူများသည် add-in ထည့်သွင်းစဉ်အတွင်း Excel တွင် ချောမွေ့စွာပေါင်းစည်းထားသောကြောင့် ၎င်းတို့၏အလုပ်စာအုပ်များတွင် မည်သည့် VBA ကုဒ်မျှမထည့်ဘဲ အားကောင်းသည့် Regex လုပ်ဆောင်ချက်လေးခုကို အသုံးချနိုင်သည်။ ကျွန်ုပ်တို့၏ စိတ်ကြိုက်လုပ်ဆောင်ချက်များကို စံ .NET RegEx အင်ဂျင်ဖြင့် လုပ်ဆောင်ပြီး အင်္ဂါရပ်အပြည့်ရှိသော ဂန္တဝင် ပုံမှန်အသုံးအနှုန်းများကို ပံ့ပိုးပေးပါသည်။
စိတ်ကြိုက် RegexMatch လုပ်ဆောင်ချက်ကို အသုံးပြုနည်း
သင့်တွင် Ultimate Suite ၏ နောက်ဆုံးဗားရှင်းကို ထည့်သွင်းထားသည်ဟု ယူဆပါက ( 2021.4 သို့မဟုတ် နောက်ပိုင်း)၊ သင်သည် ရိုးရှင်းသော အဆင့်နှစ်ဆင့်ဖြင့် Regex Match ဖော်မြူလာကို ဖန်တီးနိုင်သည်-
- Ablebits Data tab တွင်၊ Text အုပ်စုရှိ၊ နှိပ်ပါ Regex Tools ။
- ကိုရွေးချယ်ပါ အရင်းအမြစ်စာကြောင်းများ။
- သင်၏ပုံစံကိုထည့်ပါ။
- Match ရွေးစရာကို ရွေးပါ။
- ရလဒ်များကို ဖော်မြူလာများ၊ တန်ဖိုးများမဟုတ်ဘဲ ဖော်မြူလာအဖြစ်ရှိရန် <ကိုရွေးချယ်ပါ 8>ဖော်မြူလာအဖြစ်ထည့်သွင်းပါ အမှန်ခြစ်အကွက်။
- ကိုက်ညီ ခလုတ်ကို နှိပ်ပါ။
ခဏအကြာ၊ AblebitsRegexMatch လုပ်ဆောင်ချက်ကို သင့်ဒေတာ၏ညာဘက်ရှိ ကော်လံအသစ်တွင် ထည့်သွင်းထားသည်။
အောက်ပါဖန်သားပြင်ဓာတ်ပုံတွင်၊ ကော်လံ A ရှိ စာကြောင်းများတွင် ဂဏန်း 7 လုံးပါရှိမရှိ စစ်ဆေးပေးပါသည်။ နံပါတ်များ မပါရှိပါ။
အကြံပြုချက်များ-
- func tion ကို ဆဲလ်တစ်ခုတွင် တိုက်ရိုက် ထည့်သွင်းနိုင်သည်။၎င်းကို AblebitsUDFs အောက်တွင် အမျိုးအစားခွဲထားသည့် လုပ်ဆောင်ချက်ထည့်သွင်းရန် ဒိုင်ယာလော့ဘောက်စ်မှတစ်ဆင့် စံသတ်မှတ်ထားသည်။
- ပုံမှန်အားဖြင့် ပုံသေနည်းတွင် ပုံမှန်အသုံးအနှုန်းကို ထည့်ထားသော်လည်း သင်လည်း သိမ်းဆည်းနိုင်သည်။ သီးခြားဆဲလ်တစ်ခုတွင်ဖြစ်သည်။ ၎င်းအတွက်၊ 2nd အငြင်းအခုံအတွက် ဆဲလ်ကိုးကားချက်ကိုသာ အသုံးပြုပါ။
- ပုံမှန်အားဖြင့်၊ လုပ်ဆောင်ချက်သည် case-sensitive ဖြစ်သည်။ case-insensitive ကိုက်ညီမှုအတွက်၊ (?i) ပုံစံကို အသုံးပြုပါ။
ပိုမိုသိရှိလိုပါက၊ ကျေးဇူးပြု၍ AbblebitsRegexMatch လုပ်ဆောင်ချက်ကို ကြည့်ပါ။
၎င်းသည် Excel တွင် ပုံမှန်အသုံးအနှုန်းနှင့်ကိုက်ညီအောင်ပြုလုပ်နည်း။ ကျွန်ုပ်တို့၏ဘလော့ဂ်တွင် ဖတ်ရှုပြီး နောက်အပတ်တွင် သင့်ကိုတွေ့ရန် စောင့်မျှော်ပေးသည့်အတွက် ကျေးဇူးတင်ပါသည်။
ရရှိနိုင်သောဒေါင်းလုဒ်များ
Excel Regex Match နမူနာများ (.xlsm ဖိုင်)
Ultimate Suite 14- နေ့စဥ်လုပ်ဆောင်နိုင်သော အပြည့်အဝဗားရှင်း (.exe ဖိုင်)
cntInputRows = input_range.Rows.Count cntInputCols = input_range.Columns.Count ReDim arRes(1 To cntInputRows, 1 To cntInputCols) For iInputCurRow = 1 To cntInputRows For iInputCurCol = 1 To cntInputCurregurCols .Cells(iInputCurRow, iInputCurCol.Value) နောက်တစ်ခု နောက်တစ်ခု RegExpMatch = arRes Exit Function ErrHandl: RegExpMatch = CVERr(xlErrValue) လုပ်ဆောင်ချက်အဆုံးသတ်VBA တည်းဖြတ်မှုတွင် ကုဒ်ကို ကူးထည့်ပါ၊ သင်၏ RegExpMatch> အသစ်သည် RegExpMatch ဖြစ်သည်။ အသုံးပြုရန်အဆင်သင့်။ အကယ်၍ သင်သည် VBA ကို အတွေ့အကြုံ သိပ်မရှိပါက၊ ဤလမ်းညွှန်ချက်သည် အထောက်အကူဖြစ်နိုင်သည်- Excel တွင် VBA ကုဒ်ကို ထည့်သွင်းနည်း။
မှတ်ချက်။ ကုဒ်ထည့်သွင်းပြီးနောက်၊ သင့်ဖိုင်ကို macro-enabled workbook (.xlsm) အဖြစ် သိမ်းဆည်းရန် မမေ့ပါနှင့်။
RegExpMatch အထားအသို
RegExpMatch လုပ်ဆောင်ချက်သည် အရင်းအမြစ်စာကြောင်း၏ အစိတ်အပိုင်းတစ်ခုခုသည် ပုံမှန်ဖော်ပြချက်နှင့် ကိုက်ညီမှုရှိမရှိ စစ်ဆေးပေးပါသည်။ ရလဒ်သည် Boolean တန်ဖိုးဖြစ်သည်- အနည်းဆုံး ကိုက်ညီမှုတစ်ခုကို တွေ့ရှိပါက TRUE၊ မဟုတ်ပါက FALSE ဖြစ်သည်။
ကျွန်ုပ်တို့၏ စိတ်ကြိုက်လုပ်ဆောင်ချက်တွင် အကြောင်းပြချက် 3 ခု ရှိသည် - ပထမနှစ်ခု လိုအပ်ပြီး နောက်ဆုံးတစ်ခုသည် ရွေးချယ်နိုင်သည်-
RegExpMatch(စာသား , pattern, [match_case])Where:
- Text (required) - ရှာဖွေရန် စာကြောင်းတစ်ကြောင်း သို့မဟုတ် တစ်ခုထက်ပိုသော စာကြောင်းများ။ ဆဲလ် သို့မဟုတ် အပိုင်းအခြားကို ရည်ညွှန်းချက်အဖြစ် ပံ့ပိုးနိုင်ပါသည်။
- Pattern (လိုအပ်သည်) - ကိုက်ညီရန် ပုံမှန်ဖော်ပြချက်။ ဖော်မြူလာတစ်ခုတွင် တိုက်ရိုက်ထည့်သည့်အခါ၊ ပုံစံတစ်ခုအား ကိုးကားနှစ်ထပ်ဖြင့် ထည့်သွင်းရပါမည်။
- Match_case (ချန်လှပ်ထားနိုင်သည်) - ကိုက်ညီမှုကို သတ်မှတ်သည်အမျိုးအစား။ အမှန် သို့မဟုတ် ချန်လှပ်ထားပါက (မူလ)၊ ဖြစ်ရပ်မှန်-ထိခိုက်လွယ်သော ကိုက်ညီမှုကို လုပ်ဆောင်သည်။ FALSE - case-insensitive ဖြစ်လျှင်။
လုပ်ဆောင်ချက်သည် Excel 365၊ Excel 2021၊ Excel 2019၊ Excel 2016၊ Excel 2013 နှင့် Excel 2010 ၏ ဗားရှင်းအားလုံးတွင် အလုပ်လုပ်ပါသည်။
အရာ 3 ခု၊ RegExpMatch အကြောင်း သိထားသင့်သည်
လက်တွေ့ တွက်ချက်မှုများ မပြုမီ၊ အချို့သော နည်းပညာပိုင်းဆိုင်ရာများကို ရှင်းလင်းပေးသည့် အောက်ပါအချက်များကို သတိပြုပါ-
- လုပ်ဆောင်ချက်သည် ဆဲလ်တစ်ခု ကို လုပ်ဆောင်နိုင်သည်> သို့မဟုတ် ဆဲလ်များ၏ အပိုင်းအခြား ။ နောက်ဆုံးအခြေအနေတွင်၊ ဤဥပမာတွင်ပြသထားသည့်အတိုင်း ဒိုင်နမစ်အခင်းအကျင်း သို့မဟုတ် spill range ပုံစံဖြင့် အိမ်နီးချင်းဆဲလ်များတွင် ရလဒ်များကို ပြန်ပေးပါသည်။
- ပုံမှန်အားဖြင့်၊ လုပ်ဆောင်ချက်သည် အသေးစိတ်ထိခိုက်နိုင်သည်<၉>။ စာသားကိစ္စအား လျစ်လျူရှုရန်၊ match_case အငြင်းအခုံကို FALSE သို့ သတ်မှတ်ပါ။ VBA Regexp ကန့်သတ်ချက်များကြောင့်၊ case-insensitive ပုံစံ (?i) ကို ပံ့ပိုးမထားပါ။
- မှန်ကန်သောပုံစံကို ရှာမတွေ့ပါက၊ လုပ်ဆောင်ချက်သည် FALSE ပြန်ဖြစ်သွားသည်။ ပုံစံသည် မမှန်ကန်ပါက ၊ #VALUE။ error ဖြစ်ပေါ်ပါသည်။
အောက်တွင်၊ သရုပ်ပြရည်ရွယ်ချက်အတွက် ဖန်တီးထားသည့် regex ကိုက်ညီသော ဥပမာအချို့ကို သင်တွေ့ရပါမည်။ ကျွန်ုပ်တို့၏ပုံစံများသည် သင့်အစစ်အမှန်စာရွက်များတွင် ကျယ်ပြန့်သောထည့်သွင်းမှုဒေတာများစွာဖြင့် ကျွန်ုပ်တို့၏ပုံစံများသည် အမှားအယွင်းမရှိလုပ်ဆောင်နိုင်မည်ဟု ကျွန်ုပ်တို့အာမမခံနိုင်ပါ။ ထုတ်လုပ်ခြင်းမပြုမီ သင့်လိုအပ်ချက်အရ ကျွန်ုပ်တို့၏နမူနာပုံစံများကို စမ်းသပ်ပြီး ချိန်ညှိရန် သေချာပါစေ။
Excel တွင် စာကြောင်းများကို လိုက်ဖက်ရန် regex ကိုအသုံးပြုနည်း
သင်ကိုက်ညီလိုသော strings များအားလုံးတွင် ပါရှိလာသောအခါ၊ ပုံစံတူ၊ပုံမှန်အသုံးအနှုန်းများသည် စံပြဖြေရှင်းချက်တစ်ခုဖြစ်သည်။
သင့်တွင် အချို့အရာများအကြောင်း အသေးစိတ်အချက်များစွာပါဝင်သော ဆဲလ်အကွာအဝေး (A5:A9) ရှိသည်ဆိုပါစို့။ မည်သည့်ဆဲလ်များတွင် SKU ရှိသည်ကို သင်သိလိုပါသည်။ SKU တစ်ခုစီတွင် စာလုံးကြီး 2 လုံး၊ တုံးတိုတစ်ခုနှင့် ဂဏန်း 3 လုံးပါသည်ဟု ယူဆပါက၊ ၎င်းတို့ကို အောက်ပါအသုံးအနှုန်းကို အသုံးပြု၍ ကိုက်ညီနိုင်ပါသည်။
Pattern : \b[A-Z]{2}-\ d{3}\b
ဘယ်မှာ [A-Z]{2} ဆိုသည်မှာ A မှ Z စာလုံးကြီး 2 လုံးကို ဆိုလိုပြီး \d{3} သည် 0 မှ 9 ဂဏန်း 3 လုံးကို ဆိုလိုပါသည်။ \b စာလုံးသည် စကားလုံးတစ်လုံးကို ဆိုလိုသည် နယ်နိမိတ်၊ အဓိပ္ပါယ်မှာ SKU သည် သီးခြားစကားလုံးဖြစ်ပြီး 23-MAR-2022 ကဲ့သို့သော ပိုကြီးသောစာကြောင်း၏အစိတ်အပိုင်းမဟုတ်ပါ။
သတ်မှတ်ထားသောပုံစံဖြင့်၊ ကျွန်ုပ်တို့သည် ဖော်မြူလာတစ်ခုသို့ ဆက်လက်ရေးသားနိုင်ပါသည်။ အခြေခံအားဖြင့်၊ စိတ်ကြိုက်လုပ်ဆောင်ချက်ကို အသုံးပြုခြင်းသည် မူရင်းတစ်ခုနှင့် မတူပါ။ ဖော်မြူလာတစ်ခုကို သင်စတင်ရိုက်သည်နှင့်တစ်ပြိုင်နက် Excel ၏ AutoComplete မှ အကြံပြုထားသော လုပ်ဆောင်ချက်၏အမည်သည် ပေါ်လာမည်ဖြစ်သည်။ သို့သော်၊ Dynamic Array Excel (Microsoft 365 နှင့် Excel 2021) နှင့် သမားရိုးကျ Excel (2019 နှင့် အထက်ဗားရှင်းများ) တွင် ကွဲလွဲချက်အချို့ရှိပါသည်။
ဆဲလ်တစ်ခုအတွင်း ညှို့ငင်သည့်စာကြောင်း
စာကြောင်းနှင့် ကိုက်ညီရန် ဆဲလ်တစ်ခုတည်းတွင်၊ ပထမအငြင်းအခုံတွင် ထိုဆဲလ်ကို ကိုးကားပါ။ ဒုတိယအငြင်းအခုံတွင် ပုံမှန်အသုံးအနှုန်းတစ်ခုပါ၀င်သည်ဟု ယူဆပါသည်။
=RegExpMatch(A5, "\b[A-Z]{2}-\d{3}\b")
ပုံစံကို ပကတိအကိုးအကား ($A$2) ဖြင့် သော့ခတ်ထားသည့် ကြိုတင်သတ်မှတ်ထားသောဆဲလ်တစ်ခုထဲတွင်လည်း သိမ်းဆည်းထားနိုင်သည်။>
=RegExpMatch(A5, $A$2)
ပထမဆဲလ်တွင် ဖော်မြူလာကို ထည့်သွင်းပြီးနောက်၊ သင်သည် ၎င်းကို အခြားအတန်းများအားလုံးသို့ ဆွဲချနိုင်သည်။
ဤနည်းလမ်း Excel ဗားရှင်းများအားလုံး တွင် လှပစွာအလုပ်လုပ်ပါသည်။
ဆဲလ်များစွာရှိ စာကြောင်းများကို တစ်ပြိုင်နက်တည်း ယှဉ်တွဲပါ
ဖော်မြူလာတစ်ခုတည်းဖြင့် စာကြောင်းများစွာကို ကိုက်ညီရန်၊ ပထမအငြင်းအခုံတွင် အပိုင်းအခြား ရည်ညွှန်းချက်တစ်ခု ပါဝင်သည်-
=RegExpMatch(A5:A9, "\b[A-Z]{2}-\d{3}\b")
Dynamic Arrays များကို ပံ့ပိုးပေးသော Excel 365 နှင့် Excel 2021 တွင်၊ ၎င်းသည် ဤနည်းအတိုင်း အလုပ်လုပ်သည် - သင်သည် ပထမဆဲလ်တွင် ဖော်မြူလာကို ရိုက်ထည့်ကာ Enter နှိပ်ပြီး ဖော်မြူလာသည် အောက်ပါဆဲလ်များထဲသို့ အလိုအလျောက် ယိုဖိတ်သွားသည်။
Excel 2019 နှင့် အစောပိုင်းတွင်၊ ဆဲလ်များအကွာအဝေးတွင်ထည့်သွင်းပြီး Ctrl + Shift + Enter ကီးများကို တွဲနှိပ်ခြင်းဖြင့် ရိုးရာ CSE အခင်းကျင်းပုံစံဖော်မြူလာအဖြစ်သာ အလုပ်လုပ်ပါသည်။
Regex နံပါတ်ကို ကိုက်ညီရန်
0 မှ 9 ဂဏန်း တစ်ခုတည်းနှင့် ကိုက်ညီရန်၊ regex ရှိ \d စာလုံးကို အသုံးပြုပါ။ သင်၏ သီးခြားလုပ်ငန်းတာဝန်အပေါ် မူတည်၍ သင့်လျော်သော ပမာဏကို ထည့်ပါ သို့မဟုတ် ပိုမိုရှုပ်ထွေးသော ပုံစံတစ်ခုကို ဖန်တီးပါ။
မည်သည့်နံပါတ်နှင့်မဆို ကိုက်ညီရန် Regex
မည်သည့်အလျားအရေအတွက်ကိုမဆို ကိုက်ညီစေရန်၊ + quantifier ကို / ပြီးနောက် ချက်ချင်းထည့်ပါ။ d အက္ခရာ၊ ဂဏန်း ၁ လုံး သို့မဟုတ် ထို့ထက်ပိုသော ဂဏန်းများကို ရှာဖွေရန် ပြောထားသည့် အက္ခရာ။
Pattern : \d+
=RegExpMatch(A5:A9, "\d+")
Regex သည် သတ်မှတ်ထားသော အရှည်၏ အရေအတွက်နှင့် ကိုက်ညီရန်
သင်၏ ရည်မှန်းချက်သည် အချို့သော ဂဏန်းများပါရှိသော ဂဏန်းတန်ဖိုးများနှင့် ကိုက်ညီပါက \d ကို သင့်လျော်သော ပမာဏတစ်ခုဖြင့် တွဲသုံးပါ။
ဥပမာ၊ ဂဏန်း 7 လုံးတိတိပါရှိသော ပြေစာနံပါတ်များနှင့် ကိုက်ညီရန်၊ သင်သည် \d{7} ကို အသုံးပြုရပါမည်။ သို့သော် ၎င်းသည် 7 နှင့်ကိုက်ညီလိမ့်မည်ကိုသတိပြုပါ။မျှော်လင့်ထားသည့်အတိုင်း-
မှတ်စုများ-
- နိုင်ငံတကာကုဒ်များကို စစ်ဆေးမထားပါ။ ထို့ကြောင့် ၎င်းတို့ရှိနေနိုင်သည် သို့မဟုတ် မရှိနိုင်ပါ။
- ပုံမှန်အသုံးအနှုန်းများတွင် \s သည် space၊ တဘ်၊ carriage return သို့မဟုတ် မျဉ်းအသစ်ကဲ့သို့သော နေရာလွတ်အက္ခရာတစ်ခုခုအတွက် ကိုယ်စားပြုသည်။ နေရာလွတ်များသာခွင့်ပြုရန် [-\ ကိုသုံးပါ။ [-\.\s] အစား [-\.\s]။
- [^13] သည် 1 သို့မဟုတ် 3 မဟုတ်သော စာလုံးတစ်လုံးချင်းနှင့် ကိုက်ညီလိမ့်မည်။
- [^1-3] သည် 1 မဟုတ်သည့် မည်သည့်စာလုံးနှင့်မဆို ကိုက်ညီလိမ့်မည်၊ 2 သို့မဟုတ် 3 (ဆိုလိုသည်မှာ 1 မှ 3 မှ မည်သည့်ဂဏန်းမဆို)။
- အထက်ပါ regex သည် single-line strings များအတွက်သာ အလုပ်လုပ်ပါသည်။ milti-line strings များတွင်၊ ^ နှင့် $ စာလုံးများသည် input string ၏အစနှင့်အဆုံးအစား စာကြောင်းတစ်ခုစီ၏ အစနှင့်အဆုံးကို ကိုက်ညီသောကြောင့် regex သည် ပထမစာကြောင်းတွင်သာ ရှာဖွေသည်။
- မစတင်ပါ အချို့သော စာသား နှင့် ကိုက်ညီရန်၊ ^(?!lemons) ကဲ့သို့သော ပုံမှန်အသုံးအနှုန်းကို အသုံးပြုပါ။*$
- အဆုံးမရှိသော အချို့သော စာသား နှင့် ကိုက်ညီသော စာကြောင်းများ ကိုက်ညီရန်၊ ပါဝင်ပါ။ရှာဖွေမှုပုံစံတွင် အဆုံးစာတန်းကို ကျောက်ချသည်- ^((?!lemons$))*$
Regex to NOT match character
အချို့သော ဇာတ်ကောင်မပါဝင်သည့် စာကြောင်းများကို ရှာဖွေရန်၊ ကိုက်ညီသော negated character classes ကိုသုံးနိုင်သည် ကွင်းစကွင်းပိတ်တွင်မဟုတ်သောအရာ။ ဥပမာ-
ဖုန်းနံပါတ်များစာရင်းတွင်၊ နိုင်ငံကုဒ်မပါသောသူများကို သင်ရှာလိုသည်ဆိုပါစို့။ မည်သည့်နိုင်ငံတကာကုဒ်တွင်မဆို + သင်္ကေတပါဝင်ကြောင်း မှတ်သားထားပါက အပေါင်းလက္ခဏာမပါဝင်သော စာကြောင်းများကို ရှာဖွေရန် [^\+] အက္ခရာအတန်းကို အသုံးပြုနိုင်သည်။ အထက်ဖော်ပြပါ စကားရပ်သည် + မဟုတ်သော စာလုံးတစ်လုံးချင်းနှင့် ကိုက်ညီကြောင်း နားလည်ရန် အရေးကြီးပါသည်။ ဖုန်းနံပါတ်တစ်ခုသည် အစပိုင်းတွင် မလိုအပ်ဘဲ မည်သည့်နေရာတွင်မဆို ရှိနေနိုင်သောကြောင့်၊ နောက်ဆက်တွဲအက္ခရာတစ်ခုစီကို စစ်ဆေးရန် * quantifier ကို ထည့်သွင်းထားသည်။ start ^ နှင့် end $ anchors သည် string တစ်ခုလုံးကို လုပ်ဆောင်ကြောင်း သေချာစေသည်။ ရလဒ်အနေဖြင့်၊ ကျွန်ုပ်တို့သည် "စာကြောင်းရှိ မည်သည့်အနေအထားတွင်မဆို + စာလုံးနှင့် မကိုက်ညီပါ" ဟူသော အောက်ဖော်ပြပါ ပုံမှန်အသုံးအနှုန်းကို ကျွန်ုပ်တို့ရရှိသည်။
Pattern -^[^\+]*$
=RegExpMatch(A5, "^[^\+]*$")
Regex to NOT match string
အတွက် အထူးပုံမှန် expression syntax မရှိသော်လည်း၊ သတ်သတ်မှတ်မှတ်စာကြောင်းတစ်ခုနှင့် ကိုက်ညီခြင်းမရှိပါ၊ အနုတ်လက္ခဏာဆောင်သောရှုထောင့်ကို အသုံးပြုခြင်းဖြင့် သင်သည် ဤအပြုအမူကို အတုယူနိုင်ပါသည်။
မပါဝင်သော စကားလုံး "လိမ္မော်" ကို သင်ရှာလိုသည်ဆိုပါစို့။ ဤပုံမှန်အသုံးအနှုန်းသည် ဆက်ဆံမှုတစ်ခုအဖြစ် လုပ်ဆောင်နိုင်လိမ့်မည်-
Pattern : ^((?!lemons))*$
ဤနေရာတွင် ရှင်းလင်းချက်အချို့ လိုအပ်ပါသည်။ အဆိုးမြင်မှု (?!lemons) သည် ရှေ့တွင် "လီမွန်" ဟူသော စကားလုံးမရှိ၊ မရှိကို ကြည့်ရန် ညာဘက်ကို ကြည့်ပါ။ "သံပုရာသီး" မရှိပါက၊ အစက်သည် မျဉ်းကြောင်းမှလွဲ၍ မည်သည့်ဇာတ်ကောင်နှင့်မဆို ကိုက်ညီပါသည်။ အထက်ဖော်ပြပါ စကားရပ်သည် စစ်ဆေးချက်တစ်ခုမျှသာ လုပ်ဆောင်ပြီး * ပမာဏသတ်မှတ်သူသည် ^ ဖြင့် ကျောက်ချထားသော စာကြောင်းအစမှ $ ဖြင့် ကျောက်ချထားသည့် စာကြောင်း၏အဆုံးအထိ သုည သို့မဟုတ် အကြိမ်များစွာ ထပ်လုပ်ပါသည်။
စာသားကိစ္စအား လျစ်လျူရှုရန်၊ ကျွန်ုပ်တို့၏လုပ်ဆောင်ချက်ကို အသေးအမွှားအဖြစ်သတ်မှတ်ရန် 3th အငြင်းအခုံကို FALSE အဖြစ်သတ်မှတ်ထားသည်-
=RegExpMatch(A5, $A$2, FALSE)
အကြံပြုချက်များနှင့် မှတ်စုများ-
Case insensitive matching
ဂန္ထဝင်ပုံမှန်အသုံးအနှုန်းများတွင်၊ အတွက် အထူးပုံစံတစ်ခုရှိသည်။ VBA RegExp တွင် မပံ့ပိုးနိုင်သော case-insensitive matching (?i)။ ဤကန့်သတ်ချက်ကို ကျော်လွှားရန်၊ ကျွန်ုပ်တို့၏ စိတ်ကြိုက်လုပ်ဆောင်ချက်သည် match_case ဟု အမည်ပေးထားသည့် တတိယရွေးချယ်နိုင်သော အကြောင်းပြချက်ကို လက်ခံပါသည်။ case-insensitive ကိုက်ညီမှုပြုလုပ်ရန်၊ ၎င်းကို FALSE ဟု ရိုးရှင်းစွာသတ်မှတ်ပါ။
1-Mar-22 သို့မဟုတ် 01-MAR-2022 ကဲ့သို့သော ရက်စွဲများကို သင်ဖော်ထုတ်လိုသည်ဟု ဆိုကြပါစို့။ dd-mmm-yyyy နှင့် d-mmm-yy ဖော်မတ်များနှင့် ကိုက်ညီရန်၊ ကျွန်ုပ်တို့သည် အောက်ပါ ပုံမှန်အသုံးအနှုန်းများကို အသုံးပြုနေပါသည်။
Pattern - \b\d{1,2}-(ဇန်နဝါရီဂဏန်း 10 လုံး သို့မဟုတ် 100 ဂဏန်းများ အပါအဝင် string အတွင်းရှိ ဂဏန်းများ။ သင်ရှာနေသည့်အရာမဟုတ်ပါက၊ နှစ်ဖက်လုံးတွင် စာလုံးနယ်နိမိတ် \b ကိုထားပါ။
Pattern : \b\d{7}\b
=RegExpMatch(A5:A9, "\b\d{7}\b")
ဖုန်းနံပါတ်များနှင့် ကိုက်ညီရန် Regex
ဖုန်းနံပါတ်များကို ဖော်မတ်အမျိုးမျိုးဖြင့် ရေးသားနိုင်သောကြောင့် ၎င်းတို့နှင့် ကိုက်ညီသော ပိုမိုခေတ်မီသော ပုံမှန်အသုံးအနှုန်းတစ်ခု လိုအပ်ပါသည်။
အောက်ပါဒေတာအတွဲတွင်၊ ပထမအုပ်စု 2 အုပ်စုတွင် ဂဏန်း 3 လုံးနှင့် နောက်ဆုံးအုပ်စုရှိ ဂဏန်း 4 လုံးပါသော ဂဏန်း 10 နံပါတ်များကို ရှာဖွေပါမည်။ အုပ်စုများကို အချိန်အပိုင်းအခြား၊ တုံးတို သို့မဟုတ် အာကာသဖြင့် ခွဲခြားနိုင်သည်။ ပထမအုပ်စုသည် ကွင်းအတွင်း အကျုံးဝင်နိုင်သည် သို့မဟုတ် မပါဝင်နိုင်ပါ။
ပုံစံ- (\(\d{3}\)