Како уклонити дупликате унутар ћелије у Екцелу

  • Деле Ово
Michael Brown

Постоје три начина да пронађете и избришете дупликате унутар ћелије у Екцел-у. Само изаберите ону која вам највише одговара.

Када се ради о уклањању дуплих вредности или редова, Мицрософт Екцел нуди низ различитих опција. Али када је у питању уклањање идентичног текста унутар дате ћелије, Екцел не пружа... ништа. Нема алата, нема функција, нема формула, нема ничега. Хоће ли нас спречити да остваримо свој циљ? Ни у ком случају. Ако Екцел нема функцију која нам је потребна, хајде да напишемо своју :)

    Како уклонити поновљене речи у Екцел ћелији

    Проблем : Имате исте речи или текстуалне низове у ћелији и желите да уклоните друго и сва следећа понављања.

    Решење : прилагођена кориснички дефинисана функција или ВБА макро.

    Кориснички дефинисана функција за уклањање дупликата унутар ћелије

    Да бисте елиминисали дупликате текста у ћелији, можете користити следећу кориснички дефинисану функцију (УДФ) , под називом РемовеДупеВордс :

    Функција РемовеДупеВордс(текст као стринг , опциони граничник као стринг = " " ) Као речник низа Дим као објект Дим к, део Постави речник = ЦреатеОбјецт ( "Сцриптинг.Дицтионари" ) речник .ЦомпареМоде = вбТектЦомпаре За сваки к У Сплит(текст, граничник) део = Трим(к) Ако део "" И не речник.Постоји(део) Онда речник.Додај део, Ништа Крај Ако Следеће Ако дицтионари.Цоунт &гт; 0 Затим РемовеДупеВордс = Јоин(дицтионари.кеис,делимитер) Елсе РемовеДупеВордс = "" Енд Иф Сет дицтионари = Нотхинг Енд Фунцтион

    Како уметнути код функције у радну свеску

    Да бисте додали горњи код у свој Екцел, ово је оно што треба да урадите:

    1. Притисните Алт + Ф11 да отворите Висуал Басиц Едитор.
    2. У левом окну кликните десним тастером миша на Ова радна свеска и изаберите Убаци &гт; Модуле .
    3. Налепите горњи код у прозор Код .

    За више информација погледајте Како да уметнете ВБА код у Екцел-у.

    Синтакса функције РемовеДупеВордс

    Наша новостворена функција за уклањање дупликата текста у ћелији има следећу синтаксу:

    РемовеДупеВордс(текст, [делимитер])

    Где :

    • Текст (обавезно) - стринг или ћелија из које желите да избришете поновљени текст.
    • Разгранич (опционо) - граничник којим се одваја поновљени текст. Ако се изостави, за граничник се користи размак.

    Функција не разликује велика и мала слова , што значи да се мала и велика слова третирају као исти знакови.

    Како се користи функција РемовеДупеВордс

    Када се код функције дода у радну свеску, можете га користити у формулама на исти начин као што користите уграђене функције Екцел-а.

    Само почните да куцате име функције после знака једнакости и оно ће се појавити у формули интеллисенсе. Двапут кликните на функцију и имаћете јеуметнута у ћелију. Дефинишите аргументе, откуцајте заграду за затварање, притисните Ентер и ваша формула је завршена.

    На пример, да бисте избрисали дупликате речи одвојене зарезом и размаком од А2, унесите формулу испод у Б2, а затим је превуците надоле кроз онолико ћелија колико је потребно:

    =RemoveDupeWords(A2, ", ")

    Као резултат, имаћете листу јединствених речи или подстрингова раздвојених знаком зарез и размак :

    Ако бисте радије добили листу раздвојену зарезима, онда користите само зарез за граничник :

    =RemoveDupeWords(A2, ",")

    Ако су ваши изворни подаци одвојени размаком , други аргумент би требало да буде " " или изостављен:

    =RemoveDupeWords(A2)

    Као и свака друга Екцел функција, наш УДФ аутоматски поново израчунава када се изворни подаци промене, тако да ће ваши резултати увек бити ажурирани.

    ВБА макро за брисање дупликата текста из више ћелија одједном

    Ако желите да уклоните поновљени текст из више ћелија одједном, онда можете позвати функцију РемовеДупеВордс м унутар макроа. У овом случају, граничник је чврсто кодиран и мораћете да ажурирате код макроа сваки пут када се граничник промени. Алтернативно, можете написати неколико варијација кода за најчешће граничнике, рецимо, размак, зарез или зарез и размак, и дати својим макроима смислена имена, нпр. РемовеДупесДелимСпаце .

    Код макроа је следећи:

    Публиц Суб РемовеДупеВордс2() Затамњена ћелија као опсег за сваку ћелију у Апплицатион.Селецтион целл.Валуе = РемовеДупеВордс(целл.Валуе, ", " ) Нект Енд Суб

    У горњем коду, граничник је зарез и простор . Да бисте користили другачији граничник, замените ", " другим знаком(има) у овом реду кода:

    cell.Value = RemoveDupeWords(cell.Value, ", ")

    Напомена. Да би макро функционисао, његов код и код функције РемовеДупеВордс морају бити смештени у исти модул.

    Како се користи макро

    Убаците код макроа у своју радну свеску или отворите наш узорак радне свеске са кодом, а затим извршите следеће кораке да бисте покренули макро.

    1. Изаберите опсег ћелија из којих желите да уклоните текст који се понавља.
    2. Притисните Алт + Ф8 да бисте отворили оквир за дијалог Макро .
    3. На листи макроа, изаберите РемовеДупеВордс2 .
    4. Кликните на Покрени .

    За више детаља погледајте Како да покрените макро у Екцел-у.

    Напомена. Пошто се радња макроа не може опозвати , топло препоручујемо да сачувате радну свеску непосредно пре употребе макроа. На овај начин, ако нешто крене наопако, можете једноставно затворити и поново отворити радну свеску и вратићете се тачно тамо где сте били. Или можете једноставно направити копију радног листа на које би макро могао утицати.

    Како уклонити дупле знакове у ћелији

    Проблем : Имате више појављивања истог знака у ћелији, док свакићелија треба да садржи само једно појављивање датог знака.

    Решење : прилагођена кориснички дефинисана функција или ВБА макро.

    Кориснички дефинисана функција за брисање поновљених знакова

    Да бисте уклонили дуплиране знакове унутар ћелије, задржавајући само прва појављивања, можете користити следећу кориснички дефинисану функцију, под називом РемовеДупеЦхарс :

    Функција РемовеДупеЦхарс(текст као стринг ) Као речник стринга као ниска као објекат Дим цхар Као резултат затамњења низа Као резултат низа скуп речник = ЦреатеОбјецт ( "Сцриптинг.Дицтионари" ) За и = 1 То Лен(текст) цхар = Мид(текст, и, 1 ) Ако није дицтионари.Екистс(цхар) Онда дицтионари.Адд цхар, Нотхинг ресулт = ресулт &амп; цхар Енд Иф Нект РемовеДупеЦхарс = резултат скуп речник = Ништа Крај Функција

    Да бисте уметнули код функције у радну свеску, кораци су потпуно исти као у претходном примеру.

    Синтакса функције РемовеДупеЦхарс

    Синтакса ове прилагођене функције је једноставна колико је то могуће - потребан је само један аргумент:

    РемовеДупеЦхарс(тект)

    Где је тект стринг или ћелија из које желите да бисте уклонили дупликате знакова.

    Функција је осетљива на велика и мала слова и третира мала и велика слова као различите знакове.

    Како користити функцију РемовеДупеЦхарс

    Све што смо рекли о употреби РемовеДупеВордс важи за РемовеДупеЦхарс . Дакле, без одласкапревише у теорији, хајде да пређемо директно на пример.

    Да бисте избрисали дуплиране знакове из колоне А која почиње у А2, унесите ову формулу у Б2 и копирајте је:

    =RemoveDupeChars(A2)

    Као што можете видети на слици испод, функција успешно обрађује различите типове знакова укључујући слова, цифре и посебне симболе:

    Савет. Ако су ваши знакови одвојени један од другог неким делимитером као што је размак, зарез или цртица, онда користите функцију РемовеДупеВордс као што је приказано у претходном примеру.

    ВБА макро за уклањање истих знакова из ћелије

    Попут РемовеДупеВордс , функција РемовеДупеЦхарс се такође може позвати из макроа:

    Јавно Суб РемовеДупеЦхарс2() Затамњена ћелија као опсег за сваку ћелију у Апплицатион.Селецтион целл.Валуе = РемовеДупеЦхарс(целл.Валуе) Нект Енд Суб

    Пошто овај УДФ не користи никакав граничник, нећете морати да правите никаква подешавања у код.

    Напомена. Да би макро функционисао, његов код и код РемовеДупеЦхарс УДФ морају бити смештени у исти модул у ВБА едитору.

    Како користити макро

    Под претпоставком да сте већ убацили код макроа у своју радну свеску или отворили нашу радну свеску која садржи код, покрените макро на овај начин.

    1. Изаберите опсег ћелија из којих желите да уклоните поновљене знакове.
    2. Притисните Алт + Ф8 да бисте отворили дијалог Макро бок.
    3. На листи макроа изаберите РемовеДупеЦхарс2 .
    4. Кликните на Покрени .

    Уклоните дупле подстрингове помоћу Ултимате Суите-а

    На почетку овог упутства је поменуто да Мицрософт Екцел нема уграђену функцију за уклањање дупликата унутар ћелије. Али наш Ултимате Суите ради!

    Можете га пронаћи у падајућем менију Уклањање дупликата на картици Аблебитс Дата , у Дедупе група. Ако се опција Ремове Дуплицате Субстрингс не појављује у вашем Екцел-у, уверите се да имате инсталирану најновију верзију Ултимате Суите-а (бесплатну пробну верзију можете преузети овде).

    Да бисте уклонили поновљене речи или текст из више ћелија за 5 секунди (секунду по кораку :), ово је оно што треба да урадите:

    1. Изаберите своје изворне податке и покрените Алатка за уклањање дупликата подстрингова .
    2. Одредите делимитер .
    3. Дефинишите да ли ћете узастопне граничнике третирати као један (подразумевано).
    4. Одаберите да ли желите да извршите претрагу мала и велика слова или мала и велика .
    5. Кликните на Уклони .

    Готово! Без петљања са ВБА или формулама, само брзи и тачни резултати.

    Да бисте сазнали више о овом сјајном додатку, посетите његову почетну страницу. Или још боље, преузмите верзију за процену испод и покушајте!

    Тако можете да уклоните дупликат текста у ћелији.Захваљујем вам на читању и надам се да се видимо на нашем блогу следеће недеље!

    Доступна преузимања

    Примери за уклањање дупликата у ћелији (.клсм датотека)

    Ултимате Суите 14 -даи потпуно функционална верзија (.еке датотека)

    Мајкл Браун је посвећен технолошки ентузијаста са страшћу за поједностављење сложених процеса помоћу софтверских алата. Са више од деценије искуства у технолошкој индустрији, усавршио је своје вештине у Мицрософт Екцел-у и Оутлоок-у, као и у Гоогле табеле и документима. Мајклов блог посвећен је дељењу свог знања и стручности са другима, пружајући једноставне савете и упутства за побољшање продуктивности и ефикасности. Без обзира да ли сте искусан професионалац или почетник, Мајклов блог нуди вредне увиде и практичне савете како да на најбољи начин искористите ове основне софтверске алате.