Мазмұны
Excel бағдарламасында ұяшықтағы көшірмелерді табудың және жоюдың үш жолы бар. Сізге ең қолайлысын таңдаңыз.
Қайталанатын мәндерді немесе жолдарды жоюға қатысты болса, Microsoft Excel әртүрлі опциялардың жиымын ұсынады. Бірақ берілген ұяшықтағы бірдей мәтінді жоюға келетін болсақ, Excel бағдарламасы ештеңе бермейді. Құралдар, мүмкіндіктер, формулалар, ештеңе жоқ. Бұл біздің мақсатымызға жетуімізге кедергі бола ма? Ешбір жағдайда. Excel бағдарламасында бізге қажетті функция болмаса, өзімізді жазайық :)
Excel ұяшығында қайталанатын сөздерді қалай жоюға болады
Мәселе : Ұяшықта бірдей сөздер немесе мәтін жолдары бар және екінші және барлық кейінгі қайталауларды жойғыңыз келеді.
Шешім : пайдаланушы анықтайтын пайдаланушы функциясы немесе VBA макросы.
Ұяшық ішіндегі көшірмелерді жою үшін пайдаланушы анықтайтын функция
Ұяшықтағы қайталанатын мәтінді жою үшін келесі пайдаланушы анықтайтын функцияны (UDF) пайдалануға болады. , RemoveDupeWords :
функциясы RemoveDupeWords(жол ретінде мәтін, Жол ретінде қосымша бөлгіш = " " ) Жолдың күңгірт сөздігі ретінде Object Dim x ретінде, сөздік орнату бөлігі = CreateObject ( "Scripting.Dictionary" ) сөздігі .CompareMode = vbTextCompare Әрбір x үшін Бөлу(мәтін, бөлгіш) бөлігі = Қиып алу(x) Егер бөлігі "" Ал сөздік емес. Бар(бөлік) Содан кейін сөздік. Бөлім қосыңыз, Ештеңе бітпейді Егер Келесі Егер сөздік.Count > 0 Содан кейін RemoveDupeWords = Қосылу(dictionary.keys,delimiter) Else RemoveDupeWords = "" End If Set Dictionary = Nothing End FunctionФункция кодын жұмыс кітабына қалай енгізу керек
Жоғарыдағы кодты Excel бағдарламасына қосу үшін мынаны орындау керек:
- Visual Basic өңдегішін ашу үшін Alt + F11 пернелерін басыңыз.
- Сол жақ тақтада ThisWorkbook тінтуірдің оң жақ түймешігімен басып, Кірістіру опциясын таңдаңыз. > Модуль .
- Жоғарыдағы кодты Код терезесіне қойыңыз.
Қосымша ақпарат алу үшін VBA енгізу әдісі бөлімін қараңыз. Excel бағдарламасындағы код.
RemoveDupeWords функциясының синтаксисі
Ұяшықтағы қайталанатын мәтінді жоюға арналған жаңадан жасалған функциямызда келесі синтаксис бар:
RemoveDupeWords(мәтін, [бөлгіш])Онда :
- Мәтін (міндетті) - қайталанатын мәтінді жойғыңыз келетін жол немесе ұяшық.
- Бөлгіш (міндетті емес) - қайталанатын мәтінді бөлетін бөлгіш. Егер түсірілсе, бөлгіш үшін бос орын қолданылады.
Функция регистрді ескермейді , яғни кіші және бас әріптер бірдей таңбалар ретінде қарастырылады.
RemoveDupeWords функциясын пайдалану жолы
Функция коды жұмыс кітабыңызға қосылғаннан кейін оны Excel бағдарламасының кірістірілген функцияларын пайдаланатындай формулаларыңызда пайдалануға болады.
Теңдік белгісінен кейін функцияның атын теруді бастаңыз, сонда ол intellisense формуласында пайда болады. Функцияны екі рет нұқыңыз, сонда ол сізде боладыұяшыққа енгізілген. Аргументтерді анықтаңыз, жабылатын жақшаны теріңіз, Enter пернесін басыңыз және формулаңыз аяқталды.
Мысалы, A2-ден үтір және бос орынмен бөлінген қайталанатын сөздерді жою үшін, төмендегі формуланы B2 ішіне енгізіңіз, содан кейін оны қажетінше көптеген ұяшықтар арқылы төмен қарай сүйреңіз:
=RemoveDupeWords(A2, ", ")
Нәтижесінде сізде <белгісімен бөлінген бірегей сөздер немесе ішкі жолдар тізімі болады. 17>үтір және бос орын :
Үтірмен бөлінген тізімді алғыңыз келсе, бөлгіш үшін тек үтір пайдаланыңыз. :
=RemoveDupeWords(A2, ",")
Егер бастапқы деректеріңіз бос орынмен бөлінген болса, екінші аргумент " " болуы керек немесе өткізілмеуі керек:
=RemoveDupeWords(A2)
Кез келген басқа Excel функциясы сияқты, UDF бастапқы деректер өзгерген кезде автоматты түрде қайта есептейді, осылайша сіздің нәтижелеріңіз әрқашан жаңартылған болады.
Бір уақытта бірнеше ұяшықтан қайталанатын мәтінді жоюға арналған VBA макросы
Егер сіз бір әрекетте бірнеше ұяшықтан қайталанатын мәтінді жоюды қаласаңыз, онда RemoveDupeWords функциясын мына жерден шақыруға болады. m макрос ішінде. Бұл жағдайда бөлгіш қатты кодталған және бөлгіш өзгерген сайын макрос кодын жаңартуға тура келеді. Сонымен қатар, сіз ең көп таралған бөлгіштер үшін бірнеше код нұсқаларын жаза аласыз, мысалы, бос орын, үтір немесе үтір және бос орын және макростарыңызға мағыналы атаулар бере аласыз, мысалы. RemoveDupesDelimSpace .
Макростың коды келесідей:
Жалпы ішкі RemoveDupeWords2() Көңілді ұяшық Application.Selection ішіндегі әрбір ұяшық үшін ауқым ретінде.Value = RemoveDupeWords(cell.Value, ", " ) Келесі соңы ІшкіЖоғарыдағы кодта бөлгіш үтір және бос орын . Басқа бөлгішті пайдалану үшін осы код жолындағы "," басқа таңба(лар)мен ауыстырыңыз:
cell.Value = RemoveDupeWords(cell.Value, ", ")
Ескертпе. Макрос жұмыс істеуі үшін оның коды мен RemoveDupeWords функциясының коды бір модульге орналастырылуы керек.
Макросты пайдалану жолы
Макростың кодын өзіңіздің жұмыс кітабыңызға енгізіңіз немесе кодпен үлгі жұмыс кітабын ашыңыз, содан кейін макросты іске қосу үшін келесі қадамдарды орындаңыз.
- Қайталанатын мәтінді жойғыңыз келетін ұяшықтар ауқымын таңдаңыз.
- Макро тілқатысу терезесін ашу үшін Alt + F8 пернелерін басыңыз.
- Макростар тізімінде, RemoveDupeWords2 таңдаңыз.
- Орындау түймесін басыңыз.
Қосымша мәліметтер алу үшін "Қалай істеу керек" бөлімін қараңыз. Excel бағдарламасында макросты іске қосыңыз.
Ескерту. Макрос әрекетін қайтару мүмкін болмағандықтан, макросты қолданбас бұрын жұмыс кітабын сақтауды ұсынамыз. Осылайша, бірдеңе дұрыс болмаса, жұмыс кітабын жай жауып, қайта ашуға болады, сонда сіз дәл болған жеріңізге ораласыз. Немесе жай ғана макрос әсер етуі мүмкін жұмыс парағының(лар)ының көшірмесін жасай аласыз.
Ұяшықтағы қайталанатын таңбаларды қалай жоюға болады
Мәселе : ұяшықта бір таңбаның бірнеше рет қайталануы бар, олардың әрқайсысыұяшықта берілген таңбаның бір ғана кездесуі болуы керек.
Шешім : пайдаланушы анықтайтын пайдаланушы функциясы немесе VBA макросы.
Қайталанатын таңбаларды жою үшін пайдаланушы анықтайтын функция
Тек бірінші қайталануларды сақтай отырып, ұяшық ішіндегі қайталанатын таңбаларды жою үшін RemoveDupeChars деп аталатын келесі пайдаланушы анықтайтын функцияны пайдалануға болады:
Функция RemoveDupeChars(text as String ) as String Dim сөздігі ретінде Object As Dim char as String Dim result as String Set dictionary = CreateObject ( "Scripting.Dictionary" ) for i = 1 To Len(text) char = Mid(text, i, 1) ) Сөздік емес болса.Бар(char) Содан кейін сөздік.Символды қосыңыз, Ештеңе нәтиже = нәтиже & char End If Next RemoveDupeChars = нәтиже Сөздік орнату = Ештеңе аяқталмайтын функцияФункция кодын жұмыс кітабыңызға енгізу үшін қадамдар алдыңғы мысалдағыдай болады.
RemoveDupeChars функциясының синтаксисі
Бұл теңшелетін функцияның синтаксисі барынша қарапайым - тек бір аргумент қажет:
RemoveDupeChars(мәтін)Мұндағы мәтін - сіз қалаған жол немесе ұяшық. қайталанатын таңбаларды жою үшін.
Функция регистрді ескереді және кіші және бас әріптерді әртүрлі таңбалар ретінде қарастырады.
RemoveDupeChars функциясын пайдалану жолы
RemoveDupeWords пайдалану туралы айтқанымыздың бәрі RemoveDupeChars үшін дұрыс. Сонымен, бармай-ақТеорияға тым көп, тікелей мысалға көшейік.
А2 бағанындағы А бағанындағы қайталанатын таңбаларды жою үшін мына формуланы B2 ішіне енгізіп, оны көшіріңіз:
=RemoveDupeChars(A2)
Төмендегі суретте көріп отырғаныңыздай, функция әр түрлі таңба түрлерін, соның ішінде әріптерді, сандарды және арнайы таңбаларды сәтті өңдейді:
Кеңес. Таңбаларыңыз бір-бірінен бос орын, үтір немесе сызықша сияқты кейбір бөлгіш арқылы бөлінген болса, алдыңғы мысалда көрсетілгендей RemoveDupeWords функциясын пайдаланыңыз.
Ұяшықтан бірдей таңбаларды жоюға арналған VBA макросы
RemoveDupeWords сияқты, RemoveDupeChars функциясын макростың ішінен де шақыруға болады:
Жалпы Sub RemoveDupeChars2() күңгірт ұяшық Application.Selection cell.Value = RemoveDupeChars(cell.Value) ішіндегі әрбір ұяшық үшін ауқым ретінде Келесі соңы ҚосымшаБұл UDF ешқандай бөлгішті пайдаланбайтындықтан, сізге ешқандай түзетулер енгізудің қажеті жоқ. код.
Ескерту. Макрос жұмыс істеуі үшін оның коды мен RemoveDupeChars UDF коды VBA өңдегішіндегі бір модульге орналастырылуы керек.
Макросты қалай пайдалану керек
Макрос кодын жұмыс кітабыңызға әлдеқашан енгіздіңіз немесе кодты қамтитын үлгі жұмыс кітабын аштыңыз деп есептесеңіз, макросты осылай іске қосыңыз.
- Қайталанатын таңбаларды жойғыңыз келетін ұяшықтар ауқымын таңдаңыз.
- Макро диалогтық терезесін ашу үшін Alt + F8 пернелерін басыңыз.өріс.
- Макростар тізімінде RemoveDupeChars2 таңдаңыз.
- Орындау түймесін басыңыз.
Ultimate Suite көмегімен қайталанатын ішкі жолдарды жою
Осы оқулықтың басында Microsoft Excel бағдарламасында ұяшықтағы көшірмелерді жоюға арналған кірістірілген мүмкіндік жоқ екені айтылды. Бірақ біздің Ultimate Suite жасайды!
Оны Қайталанатын жою құралы ашылмалы мәзірінен Ablebits Data қойындысындағы Dedupe<2 ішінен таба аласыз> топ. Excel файлында Қайталанатын ішкі жолдарды жою опциясы көрсетілмесе, Ultimate Suite бағдарламасының соңғы нұсқасы орнатылғанын тексеріңіз (тегін сынақ нұсқасын осы жерден жүктеп алуға болады).
Қайталанатын сөздерді немесе мәтінді бірнеше ұяшықтан 5 секундта жою үшін (әр қадам сайын секунд :), мынаны орындау керек:
- Бастапқы деректерді таңдап, Қайталанатын ішкі жолдарды жою құралы.
- бөлгішті көрсетіңіз.
- қатарлы бөлгіштерді бір (әдепкі) ретінде қарастыру қажеттігін анықтаңыз.
- әріп-әріпті немесе әріп-әріпті іздеуді таңдаңыз.
- Жою түймесін басыңыз.
Дайын! VBA немесе формулалармен араласудың қажеті жоқ, жай ғана жылдам және дәл нәтижелер.
Осы керемет қондырма туралы қосымша ақпарат алу үшін оның басты бетіне кіріңіз. Немесе одан да жақсырақ, төмендегі бағалау нұсқасын жүктеп алып, қолданып көріңіз!
Ұяшықтағы қайталанатын мәтінді осылай жоюға болады.Оқығаныңыз үшін рахмет және келесі аптада блогымызда көреміз деп үміттенемін!
Қолжетімді жүктеп алулар
Ұяшықтағы көшірмелерді жою мысалдары (.xlsm файлы)
Ultimate Suite 14 -күндік толық жұмыс істейтін нұсқасы (.exe файлы)