Բովանդակություն
Excel-ի բջիջում կրկնօրինակները գտնելու և ջնջելու երեք եղանակ կա: Պարզապես ընտրեք մեկը, որն ամենալավն է ձեզ համար:
Երբ խոսքը վերաբերում է կրկնօրինակ արժեքների կամ տողերի հեռացմանը, Microsoft Excel-ն առաջարկում է տարբեր տարբերակների զանգված: Բայց երբ խոսքը վերաբերում է տվյալ բջիջում նույնական տեքստը հեռացնելուն, Excel-ը ոչինչ չի տալիս: Ոչ գործիքներ, ոչ առանձնահատկություններ, ոչ բանաձևեր, ոչ ոչինչ: Արդյո՞ք դա կխանգարի մեզ հասնել մեր նպատակին: Ոչ մի դեպքում։ Եթե Excel-ը չունի մեզ անհրաժեշտ ֆունկցիան, արի գնանք գրել մերը :)
Ինչպես հեռացնել կրկնվող բառերը Excel բջիջից
Խնդիր : Դուք ունեք նույն բառերը կամ տեքստային տողերը բջջում և ցանկանում եք հեռացնել երկրորդը և բոլոր հաջորդ կրկնությունները:
Լուծում . օգտագործողի կողմից սահմանված գործառույթ կամ VBA մակրո:
Օգտատիրոջ կողմից սահմանված ֆունկցիա՝ բջջի ներսում կրկնօրինակները հեռացնելու համար
Բջջում կրկնվող տեքստը վերացնելու համար կարող եք օգտագործել օգտվողի կողմից սահմանված հետևյալ գործառույթը (UDF) , անունով RemoveDupeWords :
Function RemoveDupeWords(տեքստը որպես տող , կամընտիր սահմանազատիչ As String = " " ) As String Dim բառարան As Object Dim x, part Set dictionary = CreateObject ( "Scripting.Dictionary" ) բառարան .CompareMode = vbTextCompare Յուրաքանչյուր x In Split(text, delimiter) part = Trim(x) If part "" And Not dictionary.Exists(part) Ապա բառարան.Ավելացնել մաս, Nothing End If Next If dictionary.Count > 0 Ապա RemoveDupeWords = Join(dictionary.keys,սահմանազատող) Else RemoveDupeWords = "" End If Set dictionary = Nothing End FunctionԻնչպես տեղադրել ֆունկցիայի կոդը Ձեր աշխատանքային գրքում
Վերոնշյալ կոդը Ձեր Excel-ում ավելացնելու համար սա է այն, ինչ դուք պետք է անեք.
- Սեղմեք Alt + F11՝ Visual Basic խմբագրիչը բացելու համար:
- Ձախ վահանակում սեղմեք աջը This Workbook և ընտրեք Տեղադրել > Մոդուլ :
- Տեղադրեք վերը նշված կոդը Code պատուհանում:
Լրացուցիչ տեղեկությունների համար տե՛ս Ինչպես տեղադրել VBA կոդը Excel-ում:
RemoveDupeWords ֆունկցիայի շարահյուսություն
Մեր նորաստեղծ ֆունկցիան՝ բջիջում կրկնօրինակ տեքստը հեռացնելու համար, ունի հետևյալ շարահյուսությունը.
RemoveDupeWords(տեքստ, [սահմանազատող])Որտեղ :
- Text (պարտադիր) - տող կամ բջիջ, որտեղից ցանկանում եք ջնջել կրկնվող տեքստը:
- Delimiter (ըստ ցանկության) - սահմանազատիչը, որով բաժանվում է կրկնվող տեքստը: Եթե բաց թողնված է, ապա սահմանազատողի համար օգտագործվում է բացատ:
Ֆունկցիան մեծատառ զգայուն չէ , ինչը նշանակում է, որ փոքրատառերը և մեծատառերը դիտարկվում են որպես նույն նիշերը:
Ինչպես օգտագործել RemoveDupeWords ֆունկցիան
Հենց որ ֆունկցիայի կոդը ավելացվի ձեր աշխատանքային գրքում, դուք կարող եք այն օգտագործել ձեր բանաձեւերում այնպես, ինչպես օգտագործում եք Excel-ի ներկառուցված գործառույթները:
Պարզապես սկսեք մուտքագրել ֆունկցիայի անունը հավասար նշանից հետո, և այն կհայտնվի intellisense բանաձեւում: Կրկնակի սեղմեք ֆունկցիայի վրա, և դուք կունենաք այնտեղադրված է խցում: Սահմանեք արգումենտները, մուտքագրեք փակման փակագիծը, սեղմեք Enter և ձեր բանաձևը ավարտված է:
Օրինակ՝ ջնջելու համար A2-ից ստորակետով և բացատով բաժանված կրկնօրինակ բառերը, մուտքագրեք ստորև բերված բանաձևը B2-ում և այնուհետև քաշեք այն ներքև այնքան բջիջներով, որքան անհրաժեշտ է.
=RemoveDupeWords(A2, ", ")
Արդյունքում դուք կունենաք եզակի բառերի կամ ենթատողերի ցանկ, որոնք առանձնացված են ստորակետ և բացատ :
Եթե նախընտրում եք ստորակետերով բաժանված ցուցակ ստանալ, ապա սահմանազատողի համար օգտագործեք միայն ստորակետ :
=RemoveDupeWords(A2, ",")
Եթե ձեր աղբյուրի տվյալները բաժանված են բացատով , ապա երկրորդ արգումենտը պետք է լինի « » կամ բաց թողնվի. 3>
=RemoveDupeWords(A2)
Ինչպես ցանկացած այլ Excel ֆունկցիա, մեր UDF-ն ինքնաբերաբար վերահաշվարկվում է, երբ աղբյուրի տվյալները փոխվում են, այնպես որ ձեր արդյունքները միշտ թարմացված կլինեն:
VBA մակրո՝ մի քանի բջիջներից միանգամից կրկնվող տեքստը ջնջելու համար
Եթե ցանկանում եք միանգամից հեռացնել մի քանի բջիջներից կրկնվող տեքստը, ապա կարող եք զանգահարել RemoveDupeWords ֆունկցիան։ մ մակրոյի ներսում: Այս դեպքում սահմանազատիչը կոշտ կոդավորված է, և դուք ստիպված կլինեք թարմացնել մակրոյի կոդը ամեն անգամ, երբ սահմանազատիչը փոխվում է: Որպես այլընտրանք, դուք կարող եք գրել կոդերի մի քանի տատանումներ ամենատարածված սահմանազատիչների համար, օրինակ՝ բացատ, ստորակետ կամ ստորակետ և բացատ, և ձեր մակրոներին տալ իմաստալից անուններ, օրինակ. RemoveDupesDelimSpace :
Մակրոյի կոդը հետևյալն է.
Public Sub RemoveDupeWords2() Dim cell As Range For Every cell In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End SubՎերոհիշյալ կոդում բաժանարարը ստորակետ է և տարածություն . Այլ սահմանազատիչ օգտագործելու համար «,»-ը փոխարինեք մեկ այլ նիշ(ներ)ով այս կոդի տողում՝
cell.Value = RemoveDupeWords(cell.Value, ", ")
Նշում. Որպեսզի մակրոն աշխատի, դրա կոդը և RemoveDupeWords ֆունկցիայի կոդը պետք է տեղադրվեն նույն մոդուլի վրա:
Ինչպես օգտագործել մակրո
Մտցրեք մակրոյի կոդը ձեր սեփական աշխատանքային գրքում կամ բացեք մեր աշխատանքային գրքույկի նմուշը կոդով, այնուհետև կատարեք հետևյալ քայլերը մակրո գործարկելու համար:
- Ընտրեք մի շարք բջիջներ, որոնցից ցանկանում եք հեռացնել կրկնվող տեքստը:
- Սեղմեք Alt + F8՝ Macro երկխոսության տուփը բացելու համար:
- Մակրոների ցանկում, ընտրեք RemoveDupeWords2 ։
- Սեղմեք Գործարկել ։
Լրացուցիչ մանրամասների համար տե՛ս Ինչպես անել գործարկել մակրո Excel-ում:
Նշում. Քանի որ մակրոյի գործողությունը չի կարող հետարկվել , մենք խստորեն խորհուրդ ենք տալիս պահպանել ձեր աշխատանքային գրքույկը մակրոյից անմիջապես առաջ: Այս կերպ, եթե ինչ-որ բան սխալ է, դուք կարող եք պարզապես փակել և նորից բացել աշխատանքային գրքույկը, և դուք կվերադառնաք հենց այնտեղ, որտեղ եղել եք: Կամ կարող եք պարզապես պատճենել աշխատաթերթ(ներ)ը, որոնք կարող են ազդել մակրոյից:
Ինչպես հեռացնել կրկնօրինակ նիշերը բջիջից
Խնդիր . Դուք նույն նիշի մի քանի երևույթներ ունեք մի բջիջում, մինչդեռ յուրաքանչյուրըբջիջը պետք է պարունակի տվյալ նիշի միայն մեկ դեպք:
Լուծում . օգտագործողի կողմից սահմանված գործառույթ կամ VBA մակրո:
Օգտվողի կողմից սահմանված գործառույթը` կրկնվող նիշերը ջնջելու համար
Բջջի մեջ կրկնվող նիշերը հեռացնելու համար, որտեղ պահվում են միայն առաջին երևույթները, կարող եք օգտագործել օգտվողի կողմից սահմանված հետևյալ գործառույթը, որը կոչվում է RemoveDupeChars :
Function RemoveDupeChars(text As String) Որպես String Dim բառարան Որպես Object Dim char Որպես String Dim արդյունք Որպես String Set բառարան = CreateObject ( "Scripting.Dictionary" ) For i = 1 To Len(text) char = Mid(text, i, 1): ) Եթե Not dictionary.Exists(char) Ապա բառարան.Ավելացնել char, Nothing result = արդյունք & char Ավարտ Եթե Հաջորդը RemoveDupeChars = արդյունք Սահմանել բառարան = Ոչինչ ավարտի ֆունկցիաՖունկցիայի կոդը ձեր աշխատանքային գրքում տեղադրելու համար քայլերը ճիշտ նույնն են, ինչ նախորդ օրինակում:
RemoveDupeChars ֆունկցիայի շարահյուսությունը
Այս հատուկ ֆունկցիայի շարահյուսությունը այնքան պարզ է, որքան հնարավոր է, պահանջվում է միայն մեկ արգումենտ.
RemoveDupeChars(տեքստ)Որտեղ տեքստը տող կամ բջիջ է, որտեղից ցանկանում եք: կրկնօրինակ նիշերը հեռացնելու համար:
Ֆունկցիան մեծատառ զգայուն է և փոքրատառ և մեծատառերը վերաբերվում է որպես տարբեր նիշերի:
Ինչպես օգտագործել RemoveDupeChars ֆունկցիան
Այն ամենը, ինչ մենք ասացինք RemoveDupeWords-ի օգտագործման մասին, ճիշտ է RemoveDupeChars -ի համար: Այսպիսով, առանց գնալուչափազանց շատ տեսության մեջ, եկեք անմիջապես անցնենք օրինակին:
A սյունակից A2-ով սկսվող կրկնօրինակ նիշերը ջնջելու համար մուտքագրեք այս բանաձևը B2-ում և պատճենեք այն.
=RemoveDupeChars(A2)
Ինչպես տեսնում եք ստորև նկարում, ֆունկցիան հաջողությամբ կառավարում է տարբեր նիշերի տեսակները, ներառյալ տառերը, թվերը և հատուկ նշանները.
Խորհուրդ: Եթե ձեր նիշերն իրարից բաժանված են ինչ-որ սահմանազատիչով , օրինակ` բացատ, ստորակետ կամ գծիկ, ապա օգտագործեք RemoveDupeWords ֆունկցիան, ինչպես ցույց է տրված նախորդ օրինակում:
VBA մակրո՝ նույն նիշերը բջիջից հեռացնելու համար
Ինչպես RemoveDupeWords , RemoveDupeChars ֆունկցիան նույնպես կարող է կանչվել մակրոյից՝
Public Ենթա RemoveDupeChars2() խամրած բջիջը որպես Application.Selection cell.Value = RemoveDupeChars(cell.Value) հաջորդ վերջը որպես ընդգրկույթ յուրաքանչյուր բջիջի համար: կոդը։Նշում. Որպեսզի մակրոն աշխատի, դրա ծածկագիրը և RemoveDupeChars UDF կոդը պետք է տեղադրվեն VBA խմբագրիչի նույն մոդուլի վրա:
Ինչպես օգտագործել մակրո
Ենթադրենք, որ դուք արդեն տեղադրել եք մակրոյի կոդը ձեր աշխատանքային գրքում կամ բացել եք կոդը պարունակող մեր աշխատանքային գրքույկի նմուշը, գործարկեք մակրոն այս կերպ:
- Ընտրեք մի շարք բջիջներ, որոնցից ցանկանում եք հեռացնել կրկնվող նիշերը:
- Սեղմեք Alt + F8՝ Macro երկխոսությունը բացելու համար:վանդակում։
- Մակրոների ցանկում ընտրեք RemoveDupeChars2 ։
- Սեղմեք Գործարկել ։
Հեռացնել կրկնօրինակ ենթատողերը Ultimate Suite-ի միջոցով
Այս ձեռնարկի սկզբում նշվեց, որ Microsoft Excel-ը չունի ներկառուցված հատկություն բջջի ներսում կրկնօրինակները հեռացնելու համար: Բայց մեր Ultimate Suite-ը դա անում է:
Դուք այն կարող եք գտնել Duplicate Remover բացվող ընտրացանկում Ablebits Data ներդիրում, Dedupe<2:> խումբ. Եթե Remove Duplicate Substrings տարբերակը չի հայտնվում ձեր Excel-ում, համոզվեք, որ տեղադրված եք Ultimate Suite-ի վերջին տարբերակը (անվճար փորձաշրջանը կարող եք ներբեռնել այստեղից):
Բազմաթիվ բջիջներից կրկնվող բառերը կամ տեքստը 5 վայրկյանում հեռացնելու համար (քայլը մեկ վայրկյան :), սա այն է, ինչ դուք պետք է անեք.
- Ընտրեք ձեր աղբյուրի տվյալները և գործարկեք Հեռացնել Կրկնվող ենթատողերը գործիքը:
- Նշեք սահմանազատիչը :
- Սահմանեք, թե արդյոք անընդմեջ սահմանազատիչները դիտարկել որպես մեկ (կանխադրված):
- Ընտրեք, թե արդյոք կատարվի մեծատառերի զգայուն կամ տառատեսակների նկատմամբ զգայուն որոնում:
- Սեղմեք Հեռացնել :
Կատարված է: VBA-ի կամ բանաձևերի հետ շփոթություն չկա, պարզապես արագ և ճշգրիտ արդյունքներ:
Այս հիանալի հավելման մասին ավելին իմանալու համար այցելեք նրա գլխավոր էջը: Կամ ավելի լավ, ներբեռնեք ստորև ներկայացված գնահատման տարբերակը և փորձեք այն:
Ահա թե ինչպես կարելի է հեռացնել կրկնօրինակ տեքստը բջիջում:Շնորհակալ եմ կարդալու համար և հուսով եմ, որ հաջորդ շաբաթ կտեսնենք ձեզ մեր բլոգում:
Հասանելի ներբեռնումներ
Բջջում կրկնօրինակները հեռացնելու օրինակներ (.xlsm ֆայլ)
Ultimate Suite 14 -օրվա լիարժեք ֆունկցիոնալ տարբերակ (.exe ֆայլ)