Выдаліць тэкст да, пасля або паміж двума сімваламі ў Excel

  • Падзяліцца Гэтым
Michael Brown

У апошніх некалькіх артыкулах мы разглядалі розныя спосабы выдалення сімвалаў з радкоў у Excel. Сёння мы даследуем яшчэ адзін варыянт выкарыстання - як выдаліць усё да або пасля пэўнага сімвала.

    Выдаліць тэкст да, пасля або паміж 2 сімваламі з дапамогай Find & Замяніць

    Для маніпуляцый з дадзенымі ў некалькіх ячэйках «Знайсці і замяніць» - правільны інструмент. Каб выдаліць частку радка, якая стаіць перад або пасля пэўнага сімвала, выканайце наступныя дзеянні:

    1. Вылучыце ўсе ячэйкі, у якіх вы хочаце выдаліць тэкст.
    2. Націсніце Ctrl + H каб адкрыць дыялогавае акно Знайсці і замяніць .
    3. У поле Знайсці што увядзіце адну з наступных камбінацый:
      • Каб выдаліць тэкст перад зададзеным сімвалам увядзіце сімвал, перад якім стаіць зорачка (*char).
      • Каб выдаліць тэкст пасля пэўнага сімвала , увядзіце сімвал пасля зорачкі (char *).
      • Каб выдаліць падрадок паміж двума сімваламі , увядзіце зорачку, акружаную 2 сімваламі (сімвал*знак).
    4. Пакіньце Замяніць на поле пустое.
    5. Націсніце Замяніць усё .

    Напрыклад, каб выдаліць усё пасля коскі , уключаючы саму коску, пастаўце коску і знак зорачкі (,*) у поле Знайсці што , і вы атрымаеце наступны вынік:

    Каб выдаліць падрадок перад коскай , увядзіце зорачку, коска,усё пасля 1-й коскі ў A2, формула ў B2:

    =RemoveText(A3, ", ", 1, TRUE)

    Каб выдаліць усё да 1-й коскі ў A2, формула ў C2:

    =RemoveText(A3, ", ", 1, FALSE)

    Паколькі наша карыстальніцкая функцыя прымае радок у якасці раздзяляльніка , мы ставім коску і прабел (", ") у 2-м аргументе, каб пазбавіць вас ад клопатаў пасля абразання прабелаў у пачатку.

    Наша карыстальніцкая функцыя працуе цудоўна, ці не так? Але калі вы думаеце, што гэта ўсёабдымнае рашэнне, вы яшчэ не бачылі наступны прыклад :)

    Выдаліце ​​ўсё да, пасля або паміж сімваламі

    Каб атрымаць яшчэ больш магчымасцей для выдалення асобных сімвалаў або тэкст з некалькіх вочак, паводле супадзення або пазіцыі, дадайце наш Канчатковы набор у свой набор інструментаў Excel.

    Тут мы больш падрабязна разгледзім функцыю Выдаліць па пазіцыі , размешчаную на Укладка Ablebits Data > Тэкст група > Выдаліць .

    Ніжэй мы разгледзім дзве найбольш распаўсюджаныя сцэнары.

    Выдаліце ​​ўсё да або пасля пэўнага тэксту

    Выкажам здагадку, што ўсе вашыя зыходныя радкі ўтрымліваюць звычайнае слова або тэкст, і вы хочаце выдаліць усё да або пасля гэтага тэксту. Каб зрабіць гэта, абярыце зыходныя дадзеныя, запусціце інструмент Выдаліць па пазіцыі і наладзьце яго, як паказана ніжэй:

    1. Абярыце Усе сімвалы перад тэкстам або Усе сімвалы пасля тэксту варыянт і ўвядзіце ключавы тэкст (або сімвал) у полі побачда яго.
    2. У залежнасці ад таго, ці павінны вялікія і малыя літары разглядацца як розныя або аднолькавыя сімвалы, усталюйце або зніміце сцяжок З улікам рэгістра .
    3. Націсніце Выдаліць .

    У гэтым прыкладзе мы выдаляем усе сімвалы, якія папярэднічаюць слову "памылка" ў ячэйках A2:A8:

    І атрымаем менавіта той вынік, які мы шукаем:

    Выдаліць тэкст паміж двума сімваламі

    У сітуацыі, калі нерэлевантная інфармацыя знаходзіцца паміж 2 пэўнымі сімваламі, вось як вы можаце хутка выдаліць яго:

    1. Абярыце Выдаліць усе падрадкі і ўвядзіце два сімвалы ў палі ніжэй.
    2. Калі сімвалы «паміж» таксама трэба выдаліць , адзначце поле Уключаючы падзельнікі .
    3. Націсніце Выдаліць .

    Як напрыклад, мы выдаляем усё паміж двума сімваламі тыльды (~) і ў выніку атрымліваем ідэальна чыстыя радкі:

    Каб паспрабаваць іншыя карысныя функцыі, уключаныя ў гэты шматфункцыянальны інструмент, я рэкамендую вам загрузіць e версія ацэнкі ў канцы гэтага паведамлення. Дзякуй за чытанне і спадзяемся ўбачыць вас у нашым блогу на наступным тыдні!

    Даступныя спампоўкі

    Выдаліце ​​першыя і апошнія сімвалы - прыклады (.xlsm файл)

    Ultimate Suite - пробная версія (.exe файл)

    і прабел (*, ) у полі Знайсці што.

    Звярніце ўвагу, што мы замяняем не толькі коску, але коску і прабел , каб прадухіліць пачатак прабелаў у выніках. Калі вашы даныя падзеленыя коскамі без прабелаў, выкарыстоўвайце зорачку, за якой варта коска (*,).

    Каб выдаліць тэкст паміж двума коскамі , выкарыстоўвайце зорачку ў косках (,*,).

    Падказка. Калі вы хочаце, каб імёны і нумары тэлефонаў былі падзеленыя коскай, увядзіце коску (,) у поле Замяніць на .

    Выдаліце ​​частку тэксту з дапамогай Flash Fill

    У сучасных версіях Excel (2013 і пазнейшых) ёсць яшчэ адзін просты спосаб выдаліць тэкст, які стаіць перад пэўным сімвалам або пасля яго, - функцыя Flash Fill. Вось як гэта працуе:

    1. У ячэйцы побач з першай ячэйкай з дадзенымі ўвядзіце чаканы вынік і націсніце Enter .
    2. Пачніце ўводзіць адпаведнае значэнне ў наступнай ячэйцы. Пасля таго, як Excel адчуе шаблон значэнняў, якія вы ўводзіце, ён адлюструе папярэдні прагляд для астатніх вочак па той жа схеме.
    3. Націсніце клавішу Enter, каб прыняць прапанову.

    Гатова!

    Выдаліць тэкст з дапамогай формул

    У Microsoft Excel многія маніпуляцыі з дадзенымі, якія выконваюцца з дапамогай убудаваных функцый, таксама можна выканаць з дапамогай формулы. У адрозненне ад папярэдніх метадаў, формулы не ўносяць ніякіх змяненняў у зыходныя дадзеныя і даюць вам большы кантрольвынікі.

    Як выдаліць усё пасля пэўнага сімвала

    Каб выдаліць тэкст пасля пэўнага сімвала, агульная формула:

    LEFT( cell , ПОШУК (" char ", cell ) -1)

    Тут мы выкарыстоўваем функцыю SEARCH, каб атрымаць пазіцыю сімвала і перадаць яго функцыі LEFT, каб яна здабывала адпаведная колькасць знакаў ад пачатку радка. Адзін сімвал адымаецца з ліку, які вяртае SEARCH, каб выключыць падзельнік з вынікаў.

    Напрыклад, каб выдаліць частку радка пасля коскі, вы ўводзіце наступную формулу ў B2 і перацягваеце яе ўніз праз B7 :

    =LEFT(A2, SEARCH(",", A2) -1)

    Як выдаліць усё перад пэўным сімвалам

    Каб выдаліць частку тэкставага радка перад пэўным сімвалам, агульная формула:

    RIGHT( cell , LEN( cell ) - SEARCH(" char ", cell ))

    Тут мы зноў вылічаем пазіцыю мэтавага сімвала з дапамогай SEARCH, адымаем яе ад агульнай даўжыні радка, якую вяртае LEN, і перадаем розніцу ў функцыю RIGHT, каб яна выцягвала столькі сімвалаў з канца радка. радок.

    Напрыклад, каб выдаліць тэкст перад коскай, прывядзіце наступную формулу:

    =RIGHT(A2, LEN(A2) - SEARCH(",", A2))

    У нашым выпадку пасля коскі ідзе прабел. Каб пазбегнуць прабелаў у выніках, мы абгортваем асноўную формулу ў функцыю TRIM:

    =TRIM(RIGHT(A2, LEN(A2) - SEARCH(",", A2)))

    Заўвагі:

    • Абодваз прыведзеных вышэй прыкладаў мяркуецца, што ёсць толькі адзін асобнік раздзяляльніка ў зыходным радку. Калі ёсць некалькі выпадкаў, тэкст будзе выдалены перад/пасля першага асобніка .
    • Функцыя ПОШУК не адчувальная да рэгістра , што азначае, што яна не робіць розніцы паміж малыя і вялікія літары. Калі вашым сімвалам з'яўляецца літара і вы хочаце адрозніваць рэгістр літар, выкарыстоўвайце з улікам рэгістра функцыю ПОШУК замест ПОШУКУ.

    Як выдаліць тэкст пасля N-га ўваходжання сімвала

    У сітуацыі, калі зыходны радок змяшчае некалькі асобнікаў раздзяляльніка, вам можа спатрэбіцца выдаліць тэкст пасля пэўнага асобніка. Для гэтага выкарыстоўвайце наступную формулу:

    LEFT( cell , FIND("#", SUBSTITUTE( cell , " char ", "#" , n )) -1)

    Дзе n сімвал, пасля якога трэба выдаліць тэкст.

    Унутраная логіка гэтай формулы патрабуе выкарыстання некаторага сімвала якога няма нідзе ў зыходных дадзеных, у нашым выпадку сімвал хэша (#). Калі гэты сімвал сустракаецца ў вашым наборы даных, выкарыстоўвайце нешта іншае замест "#".

    Напрыклад, каб выдаліць усё пасля 2-й коскі ў A2 (і саму коску), формула:

    =LEFT(A2, FIND("#", SUBSTITUTE(A2, ",", "#", 2)) -1)

    Як працуе гэтая формула:

    Асноўнай часткай формулы з'яўляецца функцыя ЗНАЙСЦІ, якая вылічае пазіцыя нпадзельнік (у нашым выпадку коска). Вось як:

    Мы замяняем 2-ю коску ў A2 сімвалам хэша (або любым іншым сімвалам, які не існуе ў вашых дадзеных) з дапамогай SUBSTITUTE:

    SUBSTITUTE(A2, ",", "#", 2)

    Атрыманы радок пераходзіць да 2-га аргументу FIND, таму ён знаходзіць пазіцыю "#" у гэтым радку:

    FIND("#", "Emma, Design# (102) 123-4568")

    FIND паведамляе нам, што "#" з'яўляецца 13-м сімвалам у радку. Каб даведацца колькасць сімвалаў перад ім, проста адніміце 1, і ў выніку вы атрымаеце 12:

    FIND("#", SUBSTITUTE(A2, ",", "#", 2)) - 1

    Гэты лік ідзе непасрэдна ў аргумент num_chars з LEFT з просьбай атрымаць першыя 12 сімвалаў з A2:

    =LEFT(A2, 12)

    Вось і ўсё!

    Як выдаліць тэкст да N-га ўваходжання сімвала

    Агульная формула для выдалення падрадка перад пэўным сімвалам:

    RIGHT(SUBSTITUTE( cell , " char ", "#", n ), LEN( ячэйка ) - ЗНАЙСІЦЬ("#", ПАДСТАВІЦЬ( ячэйка , " знак ", "#", n )) -1)

    Напрыклад, каб выдаліць тэкст перад 2-й коскай у A2, формула:

    =RIGHT(SUBSTITUTE(A2, ",", "#", 2), LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2)) -1)

    Каб выдаліць прабел у пачатку, мы зноў выкарыстоўваем TRIM функцыянуе як абгортка:

    =TRIM(RIGHT(SUBSTITUTE(A2, ",", "#", 2), LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2))))

    Як працуе гэтая формула:

    Увогуле, мы даведаемся колькі сімвалаў пасля n-га раздзяляльніка і выняць падрадок адпаведнай даўжыні справа. Ніжэй разбіўка формулы:

    Спачатку мы замяняем 2-ю коску ў A2 хэшамсімвал:

    SUBSTITUTE(A2, ",", "#", 2)

    Атрыманы радок пераходзіць у аргумент тэкст ПРАВА:

    RIGHT("Emma, Design# (102) 123-4568", …

    Далей нам трэба вызначыць, колькі сімвалаў трэба атрымаць з канца радка. Для гэтага мы знаходзім пазіцыю сімвала хэша ў радку вышэй (якая роўная 13):

    FIND("#", SUBSTITUTE(A2, ",", "#", 2))

    І адымаем яе ад агульнай даўжыні радка (якая роўная 28):

    LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2))

    Розніца (15) пераходзіць да другога аргумента RIGHT, загадваючы выцягнуць апошнія 15 сімвалаў з радка ў першым аргументе:

    RIGHT("Emma, Design# (102) 123-4568", 15)

    Вывад - гэта падрадок " (102) 123-4568", які вельмі блізкі да жаданага выніку, за выключэннем прабелу ў пачатку. Такім чынам, мы выкарыстоўваем функцыю TRIM, каб пазбавіцца ад яго.

    Як выдаліць тэкст пасля апошняга ўваходжання сімвала

    Калі вашы значэнні падзеленыя рознай колькасцю падзельнікаў, вы можа спатрэбіцца выдаліць усё пасля апошняга асобніка гэтага раздзяляльніка. Гэта можна зрабіць з дапамогай наступнай формулы:

    LEFT( cell , FIND("#", SUBSTITUTE( cell , " char ", "# ", LEN( cell ) - LEN(SUBSTITUTE( cell , " char ", "")))) -1)

    Няхай слупок A змяшчае розныя звесткі аб супрацоўніках, але значэнне пасля апошняй коскі заўсёды нумар тэлефона. Ваша мэта складаецца ў тым, каб выдаліць нумары тэлефонаў і захаваць усе іншыя звесткі.

    Каб дасягнуць мэты, вы можаце выдаліць тэкст пасля апошняй коскі ў A2 з дапамогай гэтагаформула:

    =LEFT(A2, FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",","")))) -1)

    Скапіруйце формулу ў слупок, і вы атрымаеце наступны вынік:

    Як гэта формула працуе:

    Сутнасць формулы заключаецца ў тым, што мы вызначаем пазіцыю апошняга падзельніка (коскі) у радку і цягнем падрадок злева ўверх да падзельніка. Атрымаць пазіцыю раздзяляльніка - самая складаная частка, і вось як мы з гэтым спраўляемся:

    Спачатку мы высвятляем, колькі косак у зыходным радку. Для гэтага мы замяняем кожную коску нічым ("") і адпраўляем атрыманы радок у функцыю LEN:

    LEN(SUBSTITUTE(A2, ",",""))

    Для A2 вынік роўны 35, што з'яўляецца колькасцю сімвалаў у фармаце A2 без коскі.

    Адніміце прыведзены вышэй лік ад агульнай даўжыні радка (38 сімвалаў):

    LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))

    … і вы атрымаеце 3, што з'яўляецца агульным лікам косак у A2 (а таксама парадкавы нумар апошняй коскі).

    Далей вы выкарыстоўваеце ўжо знаёмую камбінацыю функцый FIND і SUBSTITUTE, каб атрымаць пазіцыю апошняй коскі ў радку. Нумар экзэмпляра (3-я коска ў нашым выпадку) забяспечваецца вышэйзгаданай формулай LEN SUBSTITUTE:

    FIND("#", SUBSTITUTE(A2, ",", "#", 3))

    Здаецца, што 3-я коска з'яўляецца 23-м сімвалам у A2, што азначае, што нам трэба каб атрымаць 22 сімвалы, якія папярэднічаюць яму. Такім чынам, мы змясцілі прыведзеную вышэй формулу мінус 1 у аргумент num_chars LEFT:

    LEFT(A2, 23-1)

    Як выдаліць тэкст перад апошнім уваходжаннем сімвала

    Выдаліцьусё перад апошнім асобнікам пэўнага сімвала, агульная формула:

    RIGHT( cell , LEN( cell ) - FIND("#", SUBSTITUTE( ячэйка , " сімвал ", "#", LEN( ячэйка ) - LEN(ЗАМЕНА( ячэйка , " сімвал ", "")))))

    У нашым прыкладзе табліцы, каб выдаліць тэкст перад апошняй коскай, формула прымае наступны выгляд:

    =RIGHT(A2, LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",","")))))

    У якасці апошняга штрыха мы укладзіце яго ў функцыю TRIM, каб выдаліць прабелы ў пачатку:

    =TRIM(RIGHT(A2, LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))))))

    Як працуе гэтая формула:

    Такім чынам, мы атрымліваем пазіцыю апошняй коскі, як тлумачылася ў папярэднім прыкладзе, і адымаем яе ад агульнай даўжыні радка:

    LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))))

    У выніку мы атрымліваем колькасць сімвалаў пасля апошняй коскі і перадаць яго ў функцыю ПРАВА, каб столькі сімвалаў з канца радка.

    Карыстальніцкая функцыя для выдалення тэксту з абодвух бакоў сімвала

    Як Як вы бачылі ў прыведзеных вышэй прыкладах, вы можаце вырашыць практычна любы варыянт выкарыстання, выкарыстоўваючы родны f унцыі ў розных камбінацыях. Праблема ў тым, што вам трэба запомніць некалькі хітрых формул. Хм, што, калі мы напішам уласную функцыю, каб ахапіць усе сцэнары? Гучыць як добрая ідэя. Такім чынам, дадайце наступны код VBA ў вашу кнігу (падрабязныя крокі па ўстаўцы VBA ў Excel знаходзяцца тут):

    Функцыя RemoveText(str As String , падзельнік As String , occurrence As Integer , is_after AsBoolean ) Dim delimiter_num, start_num, delimiter_len As Integer Dim str_result As String delimiter_num = 0 start_num = 1 str_result = "" delimiter_len = Len(падзельнік) For i = 1 Да ўваходжання delimiter_num = InStr(start_num, str, delimiter, vbTextCompare) Калі 0 < нумар_падзельніка Then start_num = нумар_падзельніка + delimiter_len End If Next i If 0 < delimiter_num Then If True = is_after Then str_result = Mid(str, 1, start_num - delimiter_len - 1) Else str_result = Mid(str, start_num) End If End If RemoveText = str_result End Function

    Наша функцыя называецца RemoveText і мае наступны сінтаксіс:

    RemoveText(радок, падзельнік, узнікненне, is_after)

    Дзе:

    Радок - зыходны тэкставы радок. Можа быць прадстаўлена спасылкай на ячэйку.

    Раздзяляльнік - сімвал перад/пасля якога трэба выдаліць тэкст.

    З'яўленне - асобнік падзельнік.

    Is_after - лагічнае значэнне, якое паказвае, з якога боку падзельніка трэба выдаліць тэкст. Можа быць адным сімвалам або паслядоўнасцю знакаў.

    • TRUE - выдаліць усё пасля раздзяляльніка (уключаючы сам раздзяляльнік).
    • FALSE - выдаліць усё перад раздзяляльнікам (уключаючы сам раздзяляльнік).

    Пасля таго як код функцыі будзе ўстаўлены ў вашу працоўную кнігу, вы можаце выдаліць падрадкі з вочак з дапамогай кампактных і элегантных формул.

    Напрыклад, каб сцерці

    Майкл Браўн - адданы энтузіяст тэхналогій, які любіць спрашчэнне складаных працэсаў з дапамогай праграмных інструментаў. Маючы больш чым дзесяцігадовы досвед працы ў індустрыі тэхналогій, ён удасканальваў свае навыкі ў Microsoft Excel і Outlook, а таксама ў Google Sheets і Docs. Блог Майкла прысвечаны таму, каб падзяліцца сваімі ведамі і вопытам з іншымі, даючы простыя ў выкананні парады і падручнікі для павышэння прадукцыйнасці і эфектыўнасці. Незалежна ад таго, з'яўляецеся вы дасведчаным прафесіяналам або пачаткоўцам, блог Майкла прапануе каштоўную інфармацыю і практычныя парады, каб атрымаць максімальную аддачу ад гэтых неабходных праграмных інструментаў.