Како избрисати посебне / нежељене знакове у Екцелу

  • Деле Ово
Michael Brown

У овом чланку ћете научити како да избришете одређене знакове из текстуалног низа и уклоните нежељене знакове из више ћелија одједном.

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

    Уклоните специјални знак из Екцел ћелије

    Да бисте избрисали одређени знак из ћелије, замените га празним стрингом користећи функцију СУБСТИТУТЕ у њеном најједноставнијем облику:

    СУБСТИТУТЕ( целл, цхар, "")

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

    =SUBSTITUTE(A2, "?", "")

    Да бисте уклонили знак који није присутан на вашој тастатури, можете да га копирате/налепите у формулу из оригиналне ћелије.

    На пример, ево како можете да се решите обрнутог знака питања:

    =SUBSTITUTE(A2, "¿", "")

    Али ако је нежељени знак невидљив или се не копира исправно, како га ставити у формулу? Једноставно, пронађите његов кодни број помоћу функције ЦОДЕ.

    У нашем случају, нежељени знак („¿“) долази последњи у ћелији А2, тако да користимо комбинацијуфункција ЦОДЕ и РИГХТ да бисте добили његову јединствену вредност кода, која је 191:

    =CODE(RIGHT(A2))

    Када добијете код карактера, послужите одговарајући ЦХАР функцију према генеричкој формули изнад. За наш скуп података, формула иде на следећи начин:

    =SUBSTITUTE(A2, CHAR(191),"")

    Напомена. Функција СУБСТИТУТЕ је осетљива на велика и мала слова , што значи да третира мала и велика слова као различите знакове. Имајте то на уму ако је ваш нежељени лик писмо.

    Избриши више знакова из стринга

    У једном од претходних чланака, погледали смо како да уклонимо одређене знакове из стрингова у Екцел-у тако што ћемо угнеждити неколико функција СУБСТИТУТЕ једна у другу. Исти приступ се може користити за уклањање два или више нежељених карактера у једном потезу:

    СУБСТИТУТЕ(СУБСТИТУТЕ(СУБСТИТУТЕ( целл , цхар1 , ""), цхар2 , ""), цхар3 , "")

    На пример, да бисте уклонили нормалне знаке узвика и питања, као и оне обрнуте из текстуалног низа у А2, користите ову формулу:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")

    Исто се може урадити уз помоћ ЦХАР функције, где је 161 шифра знака за „¡“ а 191 је код карактера за „¿“:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")

    Угнежђене функције СУБСТИТУТЕ раде добро за разуман број знакова, али ако имате десетине знакова за уклањање, формула постаје предугачка и тешка за управљање. Следећи пример показује акомпактније и елегантније решење.

    Уклоните све нежељене знакове одједном

    Решење ради само у програму Екцел за Мицрософт 365

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

    Прилагођена ЛАМБДА функција за уклањање нежељених знакова је следећа:

    =LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))

    Да бисте могли да користите ову функцију у својим радним листовима, морате је прво именовати. За ово притисните Цтрл + Ф3 да отворите Управљач именима , а затим дефинишите Ново име на овај начин:

    1. У Име поље, унесите назив функције: РемовеЦхарс .
    2. Подесите опсег на Воркбоок .
    3. У Односи се на , налепите горњу формулу.
    4. По жељи, унесите опис параметара у поље Коментари . Параметри ће бити приказани када унесете формулу у ћелију.
    5. Кликните на ОК да бисте сачували нову функцију.

    За детаљна упутства погледајте Како дати назив прилагођеној ЛАМБДА функцији.

    Када функција добије име, можете се односити на њу као на било коју изворну формулу.

    Из угла корисника , синтакса наше прилагођене функције је једноставна каоово:

    РемовеЦхарс(стринг, цхарс)

    Где:

    • Стринг - је оригинални стринг, или референца на ћелију/опсег који садржи стринг( с).
    • Знакови - знакови за брисање. Може се представити текстуалним низом или референцом ћелије.

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

    =RemoveChars(A2, $D$2)

    Да би формула радила исправно, обратите пажњу на следеће ствари:

    • У Д2 , знакови су наведени без размака, осим ако не желите да елиминишете и размаке.
    • Адреса ћелије која садржи специјалне знакове је закључана знаком $ ($Д$2) како би се спречило да се референца промени приликом преласка са формуле у ћелије испод.

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

    Да бисте очистили више ћелија помоћу једне формуле, наведите опсег А2:А6 за 1. аргумент:

    =RemoveChars(A2:A6, D2)

    Пошто се формула уноси само у највишу ћелију, не морате да бринете о закључавању координата ћелије - релативна референца (Д2) ради добро у овом случају. А због подршке за динамичке низове, формула се аутоматски прелива у све референциране ћелије:

    Уклањање унапред дефинисаног скупа знакова

    Да бисте избрисали унапред дефинисани скуп знакова знакове из више ћелија, можете креиратидруги ЛАМБДА који позива главну функцију РемовеЦхарс и наводи непожељне знакове у 2. параметру. На пример:

    Да бисте избрисали посебних знакова , направили смо прилагођену функцију под називом РемовеСпециалЦхарс :

    =LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))

    То уклони бројеве из текстуалних стрингова, направили смо још једну функцију под називом РемовеНумберс :

    =LAMBDA(string, RemoveChars(string, "0123456789"))

    Обе горе наведене функције су супер једноставне да их користе како захтевају само један аргумент - оригинални стринг.

    Да бисте елиминисали специјалних знакова из А2, формула је:

    =RemoveSpecialChars(A2)

    Да бисте избрисали само нумеричких знакова:

    = RemoveUnwantedChars(A2, $D$2)

    Како ова функција функционише:

    У суштини, функција РемовеЦхарс петља кроз листу цхарс и уклања један по један знак. Пре сваког рекурзивног позива, функција ИФ проверава преостале знакове. Ако стринг цхарс није празан (цхарс""), функција позива саму себе. Чим се последњи знак обради, формула враћа стринг у садашњем облику и излази.

    За детаљну анализу формуле, погледајте Рекурзивни ЛАМБДА за уклањање нежељених знакова.

    Уклоните специјалне знакове помоћу ВБА

    Функције раде у свим верзијама Екцел-а

    Ако ЛАМБДА функција није доступна у вашем Екцел-у, ништа вас не спречава од креирања сличне функције са ВБА. Кориснички дефинисанофункција (УДФ) се може написати на два начина.

    Прилагођена функција за брисање специјалних знакова рекурзивно :

    Овај код емулира логику ЛАМБДА функције о којој смо горе говорили.

    Функција РемовеУнвантедЦхарс(стр Ас Стринг, цхарс Ас Стринг) Иф ("" цхарс) Онда стр = Реплаце(стр, Лефт(цхарс, 1), "") цхарс = Ригхт(цхарс, Лен(цхарс) - 1) РемовеУнвантедЦхарс = РемовеУнвантедЦхарс(стр, цхарс) Елсе РемовеУнвантедЦхарс = стр Енд Иф Енд Функција

    Прилагођена функција за уклањање специјалних знакова нерекурзивно :

    Овде се крећемо кроз нежељене знакове од 1 до Лен(цхарс) и замените оне пронађене у оригиналном низу ничим. Функција МИД повлачи нежељене знакове један по један и прослеђује их функцији Реплаце.

    Функција РемовеУнвантедЦхарс(стр Ас Стринг , цхарс Ас Стринг ) За индекс = 1 То Лен(цхарс) стр = Реплаце(стр, Мид(цхарс, индек, 1), "" ) Следеће РемовеУнвантедЦхарс = стр Енд Фунцтион

    Убаците један од горњих кодова у своју радну свеску као што је објашњено у Како да уметнете ВБА код у Екцел, и ваша прилагођена функција је спремна за употребу.

    Да не бисмо мешали нашу нову кориснички дефинисану функцију са оном коју је дефинисао Ламбда, назвали смо је другачије:

    РемовеУнвантедЦхарс(стринг, цхарс)

    Под претпоставком да је оригинални стринг у А2 и нежељени знакови у Д2, можемо их се отарасити помоћу ове формуле:

    = RemoveUnwantedChars(A2, $D$2)

    Прилагођена функција са тврдо кодиранимцхарацтерс

    Ако не желите да се трудите да уносите посебне знакове за сваку формулу, можете их навести директно у коду:

    Функција РемовеСпециалЦхарс(стр Ас Стринг ) Као Стринг Дим цхарс Као Стринг Дим индек Ас Дуги знакови = "?¿!¡*%#$(){}[]^&амп;/\~+-" За индекс = 1 до Лен(знакови) стр = Замени(стр, средина(знакови, индекс, 1) , "" ) Следеће РемовеСпециалЦхарс = стр Енд Функција

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

    chars = "?¿!¡*%#$(){}[]^&/\~+-"

    Ова прилагођена функција се зове РемовеСпециалЦхарс и захтева само један аргумент - оригинални стринг:

    РемовеСпециалЦхарс(стринг)

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

    =RemoveSpecialChars(A2)

    Уклоните знакове који се не могу штампати у Екцел-у

    Мицрософт Екцел има посебну функцију за брисање знакова који се не штампају – функцију ЦЛЕАН. Технички, он уклања прва 32 знака у 7-битном АСЦИИ скупу (кодови од 0 до 31).

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

    =CLEAN(A2)

    Ово ће елиминисати знакове који се не штампају, али ће размаци пре/после текста и између речи остати.

    За ослободите се додатних размака , умотајте формулу ЦЛЕАН у функцију ТРИМ:

    =TRIM(CLEAN(A2))

    Сада, све водећи иразмаци на крају се уклањају, док се међупростори смањују на један знак за размак:

    Ако желите да избришете апсолутно све размаке унутар стринг, а затим додатно замените знак за размак (број кода 32) са празним стрингом:

    =TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))

    Неки размаци или други невидљиви знакови и даље остају у твој радни лист? То значи да ти знакови имају различите вредности у Уницоде скупу знакова.

    На пример, код карактера размака ( ) је 160 и можете га очистити помоћу ове формуле:

    =SUBSTITUTE(A2, CHAR(160)," ")

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

    Избришите посебне знакове помоћу Ултимате Суите-а

    Подржава Екцел за Мицрософт 365, Екцел 2019 - 2010

    У овом последњем примеру, дозволите ми да вам покажем најлакши начин за уклањање специјалних знакова у Екцел-у. Са инсталираним Ултимате Суите-ом, ово је оно што треба да урадите:

    1. На картици Аблебитс Дата , у групи Тект , кликните на Уклони &гт; Уклони знакове .

  • У окну програмског додатка изаберите опсег извора, изаберите Уклони скупови знакова и изаберите жељену опцију са падајуће листе ( Симболи & знаци интерпункције у овомпример).
  • Притисните дугме Уклони .
  • За тренутак ћете добити савршен резултат:

    Ако нешто крене по злу, не брините - резервна копија вашег радног листа ће се аутоматски креирати пошто је оквир Направи резервну копију овог радног листа подразумевано изабран.

    Желите ли да испробате наш алат за уклањање? Линк до верзије за процену је одмах испод. Захваљујем вам на читању и надам се да се видимо на нашем блогу следеће недеље!

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

    Избришите специјалне знакове - примере (.клсм фајл)

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

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