Forigu tekston antaŭ, post aŭ inter du signoj en Excel

  • Kundividu Ĉi Tion
Michael Brown

En la lastatempa paro da artikoloj, ni rigardis malsamajn manierojn forigi signojn de ĉenoj en Excel. Hodiaŭ, ni esploros unu plian uzon - kiel forigi ĉion antaŭ aŭ post specifa signo.

    Forigi tekston antaŭ, post aŭ inter 2 signoj per Trovu & Anstataŭigi

    Por manipulado de datumoj en pluraj ĉeloj, Trovu kaj Anstataŭigi estas la ĝusta ilo. Por forigi parton de ĉeno antaŭ aŭ sekvante specifan signon, jen la paŝoj por plenumi:

    1. Elektu ĉiujn ĉelojn, kie vi volas forigi tekston.
    2. Premu Ctrl + H. por malfermi la dialogon Trovi kaj Anstataŭigi .
    3. En la skatolo Trovu kion , enigu unu el la jenaj kombinaĵoj:
      • Por forigi tekston antaŭ donita signo , tajpu la signon antaŭitan de asterisko (*char).
      • Por forigi tekston post certa signo , tajpu la signon sekvitan de asterisko (char *).
      • Por forigi subĉenon inter du signoj , tajpu asteriskon ĉirkaŭitan de 2 signoj (char*char).
    4. Lasu la steleton. Anstataŭigi kun skatolo malplena.
    5. Alklaku Anstataŭigi ĉion .

    Ekzemple, por forigi ĉion post komo inkluzive de la komo mem, metu komon kaj steleton (,*) en la skatolon Trovu kion , kaj vi ricevos la jenan rezulton:

    Por forigi subĉenon antaŭ komo , tajpu asteriskon, komo,ĉio post la 1-a komo en A2, la formulo en B2 estas:

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

    Por forigi ĉion antaŭ la 1-a komo en A2, la formulo en C2 estas:

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

    Ĉar nia kutima funkcio akceptas ĉenon por la limigilo , ni metas komon kaj spacon (", ") en la 2-an argumenton por ŝpari la problemon de tondado de gvidaj spacoj poste.

    Nia kutima funkcio funkcias bele, ĉu ne? Sed se vi pensas, ke ĝi estas la ampleksa solvo, vi ankoraŭ ne vidis la sekvan ekzemplon :)

    Forigu ĉion antaŭ, post aŭ inter signoj

    Por akiri eĉ pli da ebloj por forigi unuopaj signoj aŭ teksto el pluraj ĉeloj, laŭ kongruo aŭ pozicio, aldonu nian Ultimate Suite al via Excel-ilkesto.

    Ĉi tie, ni rigardos pli detale la funkcion Forigi laŭ pozicio situanta sur la

    9>Ablebits Data langeto > Teksto grupo > Forigi .

    Malsupre, ni kovros la du plej oftaj scenaroj.

    Forigi ĉion antaŭ aŭ post certa teksto

    Supozi ĉiuj viaj fontĉenoj enhavas iun komunan vorton aŭ tekston kaj vi volas forigi ĉion antaŭ aŭ post tiu teksto. Por fari ĝin, elektu viajn fontajn datumojn, rulu la ilon Forigi laŭ pozicio kaj agordu ĝin kiel montrite sube:

    1. Elektu la Ĉiujn signojn antaŭ teksto Ĉiuj signoj post teksto kaj tajpu la ŝlosilan tekston (aŭ signon) en la apudan skatolonal ĝi.
    2. Laŭ ĉu majuskloj kaj minuskloj estu traktataj kiel malsamaj aŭ samaj signoj, marku aŭ malmarku la skatolon Majuskkle-distinga .
    3. Premu Forigi .

    En ĉi tiu ekzemplo, ni forigas ĉiujn signojn antaŭ la vorto "eraro" en ĉeloj A2:A8:

    Kaj ricevu ĝuste la rezulton, kiun ni serĉas:

    Forigi tekston inter du signoj

    En situacio, kiam sensignifaj informoj estas inter 2 specifaj signoj, jen kiel vi povas rapide forigi ĝin:

    1. Elektu Forigi ĉiujn subŝnurojn kaj tajpu du signojn en la subaj skatoloj.
    2. Se ankaŭ la "inter" signoj estu forigitaj. , kontrolu la skatolon Inkluzive limigilojn .
    3. Alklaku Forigi .

    Kiel ekzemplo, ni forigas ĉion inter du tildaj signoj (~), kaj ricevas la perfekte purigitajn ŝnurojn kiel rezulto:

    Por provi aliajn utilajn funkciojn inkluzivitajn kun ĉi tiu multfunkcia ilo, mi kuraĝigas vin elŝuti e taksa versio ĉe la fino de ĉi tiu afiŝo. Dankon pro legado kaj esperas vidi vin en nia blogo venontsemajne!

    Haveblaj elŝutoj

    Forigi unuajn aŭ lastajn signojn - ekzemplojn (.xlsm-dosiero)

    Ultimate Suite - provversio (.exe dosiero)

    kaj spacon (*, ) en la skatolo Trovu kion.

    Bonvolu rimarki, ke ni anstataŭigas ne nur komon sed komon kaj spacon por malhelpi gvidadon. spacoj en la rezultoj. Se viaj datumoj estas apartigitaj per komoj sen spacoj, tiam uzu asteriskon sekvitan de komo (*,).

    Por forigi tekston inter du komoj , uzu asteriskon ĉirkaŭitan de komoj (,*,).

    Konsileto. Se vi preferas havi la nomojn kaj telefonnumerojn apartigitaj per komo, tiam tajpu komon (,) en la kampo Anstataŭigi per .

    Forigi parton de teksto per Flash-Plenigo

    En modernaj versioj de Excel (2013 kaj postaj), ekzistas unu pli facila maniero forigi tekston, kiu antaŭas aŭ sekvas specifan signon - la funkcio de Flash-Plenigo. Jen kiel ĝi funkcias:

    1. En ĉelo apud la unua ĉelo kun viaj datumoj, tajpu la atendatan rezulton kaj premu Enigu .
    2. Komencu tajpi taŭgan valoron en la sekva ĉelo. Post kiam Excel sentas la ŝablonon en la valoroj, kiujn vi enigas, ĝi montros antaŭrigardon por la ceteraj ĉeloj sekvante la saman ŝablonon.
    3. Premu la Enigu klavon por akcepti la sugeston.

    Farita!

    Forigi tekston per formuloj

    En Microsoft Excel, multaj datummanipuladoj faritaj per uzado de enkonstruitaj funkcioj ankaŭ povas esti plenumitaj per formulo. Male al la antaŭaj metodoj, formuloj ne faras ajnajn ŝanĝojn al la originaj datumoj kaj donas al vi pli da kontrolola rezultoj.

    Kiel forigi ĉion post specifa signo

    Por forigi tekston post aparta signo, la ĝenerala formulo estas:

    LEFT( ĉelo , SERĈO (" char ", ĉelo ) -1)

    Ĉi tie, ni uzas la SEARCH-funkcion por ricevi la pozicion de la signo kaj pasi ĝin al la LEFT-funkcio, do ĝi ĉerpas la responda nombro da signoj de la komenco de la ĉeno. Unu signo estas subtrahita de la nombro resendita de SEARCH por ekskludi la limigilon el la rezultoj.

    Ekzemple, por forigi parton de ĉeno post komo, vi enigu la suban formulon en B2 kaj trenu ĝin malsupren tra B7. :

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

    Kiel forigi ĉion antaŭ specifa signo

    Por forigi parton de teksta ĉeno antaŭ certa signo, la ĝenerala formulo estas:

    DEKSTRA( ĉelo , LEN( ĉelo ) - SERĈI (" kar ", ĉelo ))

    Ĉi tie, ni denove kalkulas la pozicion de la cela signo helpe de SEARCH, subtrahas ĝin de la tuta korda longo redonita de LEN, kaj transdonas la diferencon al la RIGHT funkcio, do ĝi tiras tiom da signoj de la fino de la ĉeno.

    Ekzemple, por forigi tekston antaŭ komo, la formulo estas:

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

    En nia kazo, la komo estas sekvata de spaca signo. Por eviti gvidajn spacojn en la rezultoj, ni envolvas la kernan formulon en la funkcio TRIM:

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

    Notoj:

    • Ambauxel la supraj ekzemploj supozas ke estas nur unu okazo de la limigilo en la origina ĉeno. Se estas pluraj okazoj, teksto estos forigita antaŭ/post la unua okazo .
    • La SERĈA funkcio estas ne distinga majuskloj , tio signifas, ke ĝi ne faras diferencon inter minuskloj kaj majuskloj. Se via specifa signo estas litero kaj vi volas distingi la literon, tiam uzu la funkcion majuskle-distinga TROVI anstataŭ SERĈI.

    Kiel forigi tekston post N-a okazo. de signo

    En situacio kiam fontĉeno enhavas plurajn okazojn de la limigo, vi eble bezonos forigi tekston post specifa okazo. Por tio, uzu la jenan formulon:

    LEFT( ĉelo , TROVU ("#", SUBSTITUTE( ĉelo , " char ", "#" , n )) -1)

    Kie n estas la apero de la signo post kiu forigi tekston.

    La interna logiko de ĉi tiu formulo postulas uzi iun signon. tio ne ĉeestas ie ajn en la fontaj datumoj, hash-simbolo (#) en nia kazo. Se ĉi tiu signo aperas en via datumaro, tiam uzu ion alian anstataŭ "#".

    Ekzemple, por forigi ĉion post la 2-a komo en A2 (kaj la komo mem), la formulo estas:

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

    Kiel ĉi tiu formulo funkcias:

    La ŝlosila parto de la formulo estas la funkcio TROVI kiu kalkulas la pozicio de la n-alimigilo (komo en nia kazo). Jen kiel:

    Ni anstataŭigas la 2-an komon en A2 per hash-simbolo (aŭ iu ajn alia signo, kiu ne ekzistas en viaj datumoj) helpe de SUBSTITUTO:

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

    La rezulta ĉeno iras al la 2-a argumento de FIND, do ĝi trovas la pozicion de "#" en tiu ĉeno:

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

    TROVU diras al ni, ke "#" estas la 13-a signo. en la ŝnuro. Por scii la nombron da signoj antaŭ ĝi, simple subtrahi 1, kaj vi ricevos 12 kiel rezulto:

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

    Ĉi tiu nombro iras rekte al la argumento num_chars . de LEFT petante ĝin tiri la unuajn 12 signojn el A2:

    =LEFT(A2, 12)

    Jen!

    Kiel forigi tekston antaŭ la N-a apero de signo

    La ĝenerala formulo por forigi subĉenon antaŭ certa signo estas:

    RIGHT(SUBSTITUTE( ĉelo , " char ", "#", n ), LEN( ĉelo ) - TROVI ("#", SUBSTITUTE( ĉelo , " kar ", "#", n )) -1)

    Ekzemple, por forigi tekston antaŭ la 2-a komo en A2, la formulo estas:

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

    Por forigi gvidan spacon, ni denove uzas la TRIM. funkcii kiel envolvaĵo:

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

    Kiel ĉi tiu formulo funkcias:

    Resume, ni ekscias kiom da signoj estas post la n-a limigo kaj ĉerpas subĉenon de la responda longo de dekstre. Malsupre estas la formulo malkonstruo:

    Unue, ni anstataŭigas la duan komon en A2 per hashsimbolo:

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

    La rezulta ĉeno iras al la argumento teksto de RIGHT:

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

    Sekva, ni devas difini kiom da signoj ĉerpi el la fino de la ĉeno. Por ĉi tio, ni trovas la pozicion de la hash-simbolo en la supra ĉeno (kiu estas 13):

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

    Kaj subtrahi ĝin de la tuta korda longo (kiu egalas al 28):

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

    La diferenco (15) iras al la dua argumento de RIGHT instrukciante ĝin tiri la lastajn 15 signojn el la ĉeno en la unua argumento:

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

    La eligo estas subĉeno " (102) 123-4568", kiu estas tre proksima al la dezirata rezulto, krom ĉefa spaco. Do, ni uzas la TRIM-funkcion por forigi ĝin.

    Kiel forigi tekston post la lasta apero de signo

    Se viaj valoroj estas apartigitaj per varia nombro da limigiloj, vi eble volas forigi ĉion post la lasta okazo de tiu limigilo. Ĉi tio povas esti farita per la jena formulo:

    LEFT( ĉelo , TROVU ("#", SUBSTITUTE( ĉelo , " char ", "# ", LEN( ĉelo ) - LEN(SUBSTITUTE( ĉelo , " char ", "")))) -1)

    Supozi kolumno A enhavas diversajn informojn pri dungitoj, sed la valoro post la lasta komo estas ĉiam telefonnumero. Via celo estas forigi telefonnumerojn kaj konservi ĉiujn aliajn detalojn.

    Por atingi la celon, vi povas forigi tekston post la lasta komo en A2 per ĉi tio.formulo:

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

    Kopiu la formulon laŭ la kolumno, kaj vi ricevos ĉi tiun rezulton:

    Kiel ĉi tio formulo funkcias:

    La esenco de la formulo estas, ke ni determinas la pozicion de la lasta limigilo (komo) en la ĉeno kaj tiras subĉenon de maldekstre supren ĝis la limigilo. Akiri la pozicion de la limigilo estas la plej malfacila parto, kaj jen kiel ni pritraktas ĝin:

    Unue, ni ekscias kiom da komoj estas en la origina ĉeno. Por tio, ni anstataŭigas ĉiun komon per nenio ("") kaj servas la rezultan ĉenon al la LEN-funkcio:

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

    Por A2, la rezulto estas 35, kio estas la nombro da signoj. en A2 sen komoj.

    Sutrahi la supran nombron el la tuta longo de la ŝnuro (38 signoj):

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

    ... kaj vi ricevos 3, kiu estas la totala nombro de komoj en A2 (kaj ankaŭ la orda nombro de la lasta komo).

    Sekva, vi uzas la jam konatan kombinaĵon de la funkcioj TROVU kaj SUBSTITUTE por akiri la pozicion de la lasta komo en la ĉeno. La instanca numero (3-a komo en nia kazo) estas provizita per la supre menciita LEN-SUBSTITUTE-formulo:

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

    Ŝajnas, ke la 3-a komo estas la 23-a signo en A2, tio signifas, ke ni bezonas por ĉerpi 22 signojn antaŭ ĝi. Do, ni metas la supran formulon minus 1 en la argumenton num_chars de LEFT:

    LEFT(A2, 23-1)

    Kiel forigi tekston antaŭ la lasta apero de signo

    Por forigiĉio antaŭ la lasta okazo de specifa signo, la ĝenerala formulo estas:

    RIGHT( ĉelo , LEN( ĉelo ) - TROVU ("#", SUBSTITUTE( ĉelo , " kar ", "#", LEN( ĉelo ) - LEN(SUBSTITUTE( ĉelo , " kar ", "")))))

    En nia specimena tabelo, por forigi tekston antaŭ la lasta komo, la formulo prenas ĉi tiun formon:

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

    Kiel finas, ni nestu ĝin en la TRIM-funkcion por forigi gvidajn spacojn:

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

    Kiel ĉi tiu formulo funkcias:

    Resume, ni ricevas la pozicion de la lasta komo kiel klarigite en la antaŭa ekzemplo kaj subtrahas ĝin de la tuta longo de la ĉeno:

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

    Kiel rezulto, ni ricevas la nombron de signojn post la lasta komo kaj transdonu ĝin al la DEKTRA funkcio, do ĝi alportas tiom da signoj de la fino de la ĉeno.

    Propra funkcio por forigi tekston ambaŭflanke de signo

    Kiel vi vidis en la supraj ekzemploj, vi povas solvi preskaŭ ajnan uzkazon uzante la denaskan f de Excel unkcioj en malsamaj kombinoj. La problemo estas, ke vi devas memori kelkajn malfacilajn formulojn. Hmm, kio se ni skribas nian propran funkcion por kovri ĉiujn scenarojn? Sonas kiel bona ideo. Do, aldonu la sekvan VBA-kodon al via laborlibro (la detalaj paŝoj por enmeti VBA en Excel estas ĉi tie):

    Funkcio RemoveText (str As String , delimiter As String , okazo Kiel Entjero , is_after KielBulea ) 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 (limigilo) For i = 1 To occurrence delimiter_num = InStr(start_extCompare, vstr(start_extCompare, vstr) < dilimiter_num Tiam start_num = dilimiter_num + delimiter_len Fino Se Sekva i Se 0 < delimiter_num Tiam Se Vera = is_after Tiam str_result = Mid (str, 1, start_num - delimiter_len - 1) Alie str_result = Mid (str, start_num) End If End If RemoveText = str_result End Function

    Nia funkcio estas nomita Forigi kaj ĝi havas la jenan sintakson:

    ForigiText(ĉeno, limigo, okazo, estas_post)

    Kie:

    String - estas la origina tekstoĉeno. Povas esti reprezentita per ĉela referenco.

    Limigilo - la signo antaŭ/post kiu forigi tekston.

    Okazo - la okazo de la limigilo.

    Estas_post - Bulea valoro, kiu indikas sur kiu flanko de la limigilo forigi tekston. Povas esti unuopa signo aŭ sinsekvo de signoj.

    • VERA - forigu ĉion post la limigilo (inkluzive la limigilon mem).
    • FALSE - forigu ĉion antaŭ la limigilo (inkluzive la limigilon). limigilo mem).

    Iam la kodo de la funkcio estas enigita en vian laborlibron, vi povas forigi subŝnurojn el ĉeloj per kompaktaj kaj elegantaj formuloj.

    Ekzemple por forigi

    Michael Brown estas diligenta teknologia entuziasmulo kun pasio por simpligi kompleksajn procezojn uzante programarajn ilojn. Kun pli ol jardeko da sperto en la teknologia industrio, li perfektigis siajn kapablojn en Microsoft Excel kaj Outlook, same kiel Google Sheets kaj Docs. La blogo de Mikaelo estas dediĉita al kunhavigi siajn sciojn kaj kompetentecon kun aliaj, provizante facilajn sekvajn konsiletojn kaj lernilojn por plibonigi produktivecon kaj efikecon. Ĉu vi estas sperta profesiulo aŭ komencanto, la blogo de Mikaelo ofertas valorajn komprenojn kaj praktikajn konsilojn por eltiri la plej multajn el ĉi tiuj esencaj programaj iloj.