Змест
Ёсць тры спосабы знайсці і выдаліць дублікаты ў ячэйцы ў Excel. Проста выберыце той, які лепш за ўсё працуе для вас.
Калі гаворка ідзе пра выдаленне паўтаральных значэнняў або радкоў, Microsoft Excel прапануе мноства розных варыянтаў. Але калі справа даходзіць да выдалення аднолькавага тэксту ў дадзенай ячэйцы, Excel не забяспечвае… нічога. Ні інструментаў, ні функцый, ні формул, ні нічога. Ці перашкодзіць гэта нам дасягнуць мэты? Ні ў якім выпадку. Калі ў Excel няма патрэбнай нам функцыі, давайце напішам уласную :)
Як выдаліць словы, якія паўтараюцца ў ячэйцы Excel
Праблема : У вас ёсць аднолькавыя словы або тэкставыя радкі ў ячэйцы, і вы хочаце выдаліць другое і ўсе наступныя паўторы.
Рашэнне : карыстальніцкая функцыя, вызначаная карыстальнікам, або макрас VBA.
Вызначаная карыстальнікам функцыя для выдалення дублікатаў у ячэйцы
Каб ліквідаваць дублікат тэксту ў ячэйцы, вы можаце выкарыстоўваць наступную функцыю, вызначаную карыстальнікам (UDF) , пад назвай RemoveDupeWords :
Функцыя RemoveDupeWords(text As String , дадатковы падзельнік As String = " " ) As String Dim слоўнік As Object Dim x, частка Set dictionary = CreateObject ( "Scripting.Dictionary" ) слоўнік .CompareMode = vbTextCompare For Every x In Split(text, delimiter) part = Trim(x) If part "" And Not dictionary.Exists(part) Then dictionary.Add 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.
- На левай панэлі пстрыкніце правай кнопкай мышы ThisWorkbook і абярыце Insert > Модуль .
- Устаўце прыведзены вышэй код у акно Код .
Для атрымання дадатковай інфармацыі глядзіце, як уставіць VBA код у Excel.
Сінтаксіс функцыі RemoveDupeWords
Наша нядаўна створаная функцыя для выдалення дублікатаў тэксту ў ячэйцы мае наступны сінтаксіс:
RemoveDupeWords(тэкст, [падзельнік])Дзе :
- Тэкст (абавязкова) - радок або ячэйка, з якой вы хочаце выдаліць паўтаральны тэкст.
- Раздзяляльнік (неабавязкова) - падзельнік, якім аддзяляецца тэкст, які паўтараецца. Калі ён апушчаны, у якасці раздзяляльніка выкарыстоўваецца прабел.
Функцыя не адчувальная да рэгістра , што азначае, што малыя і вялікія літары разглядаюцца як аднолькавыя сімвалы.
Як карыстацца функцыяй RemoveDupeWords
Пасля таго, як код функцыі будзе дададзены ў вашу працоўную кнігу, вы можаце выкарыстоўваць яго ў сваіх формулах гэтак жа, як вы выкарыстоўваеце ўбудаваныя функцыі Excel.
Проста пачніце ўводзіць назву функцыі пасля знака роўнасці, і яна з'явіцца ў формуле intellisense. Двойчы пстрыкніце функцыю, і вы атрымаеце яеустаўлены ў клетку. Вызначце аргументы, увядзіце зачыняючую дужку, націсніце Enter, і ваша формула завершана.
Напрыклад, каб выдаліць паўтаральныя словы, падзеленыя коскай і прабелам з A2, увядзіце прыведзеную ніжэй формулу ў B2, а затым перацягніце яе ўніз праз столькі вочак, колькі неабходна:
=RemoveDupeWords(A2, ", ")
У выніку вы атрымаеце спіс унікальных слоў або падрадкоў, падзеленых знакам коска і прабел :
Калі вы хочаце атрымаць спіс, падзелены коскамі, выкарыстоўвайце толькі коску для раздзяляльніка :
=RemoveDupeWords(A2, ",")
Калі вашы зыходныя даныя падзеленыя прабелам , другі аргумент павінен быць " " або апушчаны:
=RemoveDupeWords(A2)
Як і любая іншая функцыя Excel, наша UDF аўтаматычна пераразлічвае пры змене зыходных даных, таму вашы вынікі заўсёды будуць актуальнымі.
Макрас VBA для выдалення дублікатаў тэксту з некалькіх ячэек адначасова
Калі вы жадаеце выдаліць паўтаральны тэкст з некалькіх ячэек за адзін раз, вы можаце выклікаць функцыю RemoveDupeWords м у межах макра. У гэтым выпадку раздзяляльнік жорстка закадаваны, і вам давядзецца абнаўляць код макраса кожны раз, калі раздзяляльнік змяняецца. У якасці альтэрнатывы вы можаце напісаць некалькі варыянтаў кода для найбольш распаўсюджаных раздзяляльнікаў, скажам, прабел, коска або коска і прабел, і даць вашым макрасам значныя назвы, напрыклад. RemoveDupesDelimSpace .
Код макраса наступны:
Public Sub RemoveDupeWords2() Dim cell As Range For Кожная ячэйка In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End SubУ прыведзеным вышэй кодзе раздзяляльнікам з'яўляецца коска і прабел . Каб выкарыстоўваць іншы раздзяляльнік, заменіце ", " іншым сімвалам(-амі) у гэтым радку кода:
cell.Value = RemoveDupeWords(cell.Value, ", ")
Заўвага. Каб макрас працаваў, яго код і код функцыі RemoveDupeWords павінны быць размешчаны ў адным модулі.
Як карыстацца макрасам
Устаўце код макраса ў вашу ўласную працоўную кнігу або адкрыйце наш узор працоўнай кнігі з кодам, а затым выканайце наступныя крокі, каб запусціць макрас.
- Выберыце дыяпазон вочак, з якіх вы хочаце выдаліць паўтаральны тэкст.
- Націсніце Alt + F8, каб адкрыць дыялогавае акно Макрас .
- У спісе макрасаў, абярыце RemoveDupeWords2 .
- Націсніце Выканаць .
Для атрымання дадатковай інфармацыі, калі ласка, гл. Як запусціць макрас у Excel.
Заўвага. Паколькі дзеянне макраса нельга адмяніць , мы настойліва рэкамендуем захаваць вашу кнігу непасрэдна перад выкарыстаннем макраса. Такім чынам, калі нешта пойдзе не так, вы можаце проста закрыць і зноў адкрыць працоўную кнігу, і вы вернецеся туды, дзе вы былі. Ці вы можаце проста зрабіць копію аркуша(-аў), на які можа паўплываць макрас.
Як выдаліць дублікаты сімвалаў у ячэйцы
Праблема : у вас шмат разоў сустракаецца адзін і той жа сімвал у ячэйцы, у той час як кожныячэйка павінна змяшчаць толькі адно ўваходжанне дадзенага сімвала.
Рашэнне : карыстальніцкая функцыя, вызначаная карыстальнікам, або макрас VBA.
Вызначаная карыстальнікам функцыя для выдалення паўтаральных сімвалаў
Каб выдаліць паўтаральныя сімвалы ў ячэйцы, захоўваючы толькі першыя ўваходжанні, вы можаце выкарыстоўваць наступную вызначаную карыстальнікам функцыю пад назвай RemoveDupeChars :
Функцыя RemoveDupeChars(text As String ) As String Dim слоўнік As Object Dim char As String Dim result As String Set dictionary = CreateObject ( "Scripting.Dictionary" ) For i = 1 To Len(text) char = Mid(text, i, 1 ) If Not dictionary.Exists(char) Then dictionary.Add char, Nothing result = result & char End If Next RemoveDupeChars = вынік Set dictionary = Nothing End FunctionКаб уставіць код функцыі ў вашу кнігу, крокі сапраўды такія ж, як і ў папярэднім прыкладзе.
Сінтаксіс функцыі RemoveDupeChars
Сінтаксіс гэтай карыстальніцкай функцыі максімальна просты - патрабуецца толькі адзін аргумент:
RemoveDupeChars(тэкст)Дзе тэкст гэта радок або ячэйка, з якой вы хочаце каб выдаліць дублікаты сімвалаў.
Функцыя адчувальная да рэгістра і разглядае малыя і вялікія літары як розныя сімвалы.
Як выкарыстоўваць функцыю RemoveDupeChars
Усё, што мы сказалі пра выкарыстанне RemoveDupeWords, дакладна для RemoveDupeChars . Значыць, не едучызанадта шмат у тэорыі, давайце адразу пяройдзем да прыкладу.
Каб выдаліць паўтаральныя сімвалы са слупка A, пачынаючы з A2, увядзіце гэтую формулу ў B2 і скапіруйце яе:
=RemoveDupeChars(A2)
Як вы бачыце на малюнку ніжэй, функцыя паспяхова апрацоўвае розныя тыпы сімвалаў, уключаючы літары, лічбы і спецыяльныя сімвалы:
Падказка. Калі вашы сімвалы аддзеленыя адзін ад аднаго нейкім падзельнікам , такім як прабел, коска або злучок, выкарыстоўвайце функцыю RemoveDupeWords , як паказана ў папярэднім прыкладзе.
Макрас VBA для выдалення аднолькавых сімвалаў з ячэйкі
Як і RemoveDupeWords , функцыю RemoveDupeChars таксама можна выклікаць знутры макраса:
Public Sub RemoveDupeChars2() Dim cell As Range For Кожная ячэйка In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End SubПаколькі гэта UDF не выкарыстоўвае ніякіх раздзяляльнікаў, вам не трэба будзе рабіць якія-небудзь карэкціроўкі ў код.
Заўвага. Каб макрас працаваў, яго код і код RemoveDupeChars UDF павінны быць размешчаны ў адным модулі ў рэдактары VBA.
Як карыстацца макрасам
Калі вы ўжо ўставілі код макраса ў сваю працоўную кнігу або адкрылі нашу ўзорную кнігу, якая змяшчае код, запусціце макрас такім чынам.
- Вылучыце дыяпазон ячэек, з якіх вы хочаце выдаліць сімвалы, якія паўтараюцца.
- Націсніце Alt + F8, каб адкрыць дыялогавае акно Макрас поле.
- У спісе макрасаў абярыце RemoveDupeChars2 .
- Націсніце Выканаць .
Выдаленне дублікатаў падрадкоў з дапамогай Ultimate Suite
У пачатку гэтага падручніка было згадана, што Microsoft Excel не мае ўбудаванай функцыі для выдалення дублікатаў у ячэйцы. Але наш Ultimate Suite робіць!
Вы можаце знайсці яго ў выпадальным меню Duplicate Remover на ўкладцы Ablebits Data ва Dedupe група. Калі опцыя Выдаліць паўтаральныя падрадкі не з'яўляецца ў вашым Excel, пераканайцеся, што ў вас усталявана апошняя версія Ultimate Suite (бясплатную пробную версію можна спампаваць тут).
Каб выдаліць паўтаральныя словы або тэкст з некалькіх ячэек за 5 секунд (па секунде на крок :), вось што вам трэба зрабіць:
- Выберыце зыходныя даныя і запусціце Інструмент "Выдаліць паўтаральныя падрадкі .
- Укажыце раздзяляльнік .
- Вызначце, ці разглядаць паслядоўныя раздзяляльнікі як адзін (па змаўчанні).
- Выберыце, ці выконваць пошук з улікам рэгістра або без уліку рэгістра .
- Націсніце Выдаліць .
Гатова! Няма неабходнасці важдацца з VBA або формуламі, толькі хуткія і дакладныя вынікі.
Каб даведацца больш аб гэтай цудоўнай надбудове, калі ласка, наведайце яе галоўную старонку. Ці нават лепш, спампуйце ацэначную версію ніжэй і паспрабуйце!
Вось як выдаліць паўтаральны тэкст у ячэйцы.Я дзякую вам за чытанне і спадзяюся ўбачыць вас у нашым блогу на наступным тыдні!
Даступныя спампоўкі
Прыклады выдалення дублікатаў у ячэйцы (.xlsm файл)
Ultimate Suite 14 -day поўная функцыянальная версія (файл .exe)