Excel-də iki simvoldan əvvəl, sonra və ya arasındakı mətni silin

  • Bunu Paylaş
Michael Brown

Son bir neçə məqalədə biz Excel-də sətirlərdən simvolları silməyin müxtəlif yollarına baxdıq. Bu gün biz daha bir istifadə halını araşdıracağıq - konkret simvoldan əvvəl və ya sonra hər şeyi necə silmək olar.

    Find & Əvəz et

    Birdən çox xanada verilənlərin manipulyasiyası üçün Tap və Dəyişdir düzgün alətdir. Müəyyən simvoldan əvvəl və ya ondan sonrakı sətir hissəsini silmək üçün yerinə yetirilməli olan addımlar bunlardır:

    1. Mətni silmək istədiyiniz bütün xanaları seçin.
    2. Ctrl + H düymələrini basın. Tap və Əvəz et dialoqunu açmaq üçün.
    3. Nə tapın xanasına aşağıdakı kombinasiyalardan birini daxil edin:
      • Mətni silmək üçün verilmiş simvoldan əvvəl , ulduz işarəsi (*simvol) olan simvolu yazın.
      • Mətni silmək üçün müəyyən simvoldan sonra ulduz işarəsi (simvol) yazın. *).
      • İki simvol arasında olan alt sətri silmək üçün 2 simvolla əhatə olunmuş ulduz işarəsi yazın (char*char).
    4. Tərk edin Əvəz edin qutusu boş.
    5. Hamısını dəyişdirin üzərinə klikləyin.

    Məsələn, -i silmək üçün vergülün özü də daxil olmaqla, vergüldən sonra hər şeyi Nə tapın xanasına vergül və ulduz işarəsi (,*) qoyun və aşağıdakı nəticəni əldə edəcəksiniz:

    Alt sətri silmək üçün vergüldən əvvəl ulduz işarəsi yazın, vergül,A2-də 1-ci vergüldən sonra hər şey, B2-də düstur:

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

    A2-də 1-ci vergüldən əvvəlki hər şeyi silmək üçün C2-də düstur:

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

    Fərdi funksiyamız ayırıcı üçün sətri qəbul etdiyinə görə, biz 2-ci arqumentə vergül və boşluq (", ") qoyuruq ki, sonradan aparıcı boşluqları kəsmək problemini aradan qaldıraq.

    Bizim fərdi funksiyamız gözəl işləyir, elə deyilmi? Ancaq bunun hərtərəfli həll olduğunu düşünürsünüzsə, növbəti nümunəni hələ görməmisiniz :)

    Sərhədlərdən əvvəl, sonra və ya simvollar arasında hər şeyi silin

    Fərdi simvolları silmək üçün daha çox seçim əldə etmək və ya birdən çox xanadan mətn, uyğunluq və ya mövqe üzrə Ultimate Suite-i Excel alətlər qutunuza əlavə edin.

    Burada biz Mövqəyə görə Sil funksiyasına daha yaxından nəzər salacağıq. 9>Ablebits Data nişanı > Mətn qrupu > Sil .

    Aşağıda ikisini əhatə edəcəyik ən ümumi ssenarilər.

    Müəyyən mətndən əvvəl və ya sonra hər şeyi silin

    Fərz edək ki, bütün mənbə sətirlərinizdə ümumi söz və ya mətn var və siz həmin mətndən əvvəl və ya sonra hər şeyi silmək istəyirsiniz. Bunu etmək üçün mənbə məlumatınızı seçin, Mövqəyə görə Sil alətini işə salın və onu aşağıda göstərildiyi kimi konfiqurasiya edin:

    1. Mətndən əvvəl bütün simvolları seçin və ya Mətndən sonrakı bütün simvollar seçimini edin və növbəti xanaya əsas mətni (və ya simvolu) yazın.ona.
    2. Böyük və kiçik hərflərin fərqli və ya eyni simvol kimi qəbul edilməsindən asılı olaraq, Böyük hərflərə həssas qutusunu yoxlayın və ya işarəni silin.
    3. <9-a vurun>Sil .

    Bu nümunədə biz A2:A8:

    <0 xanalarında "xəta" sözündən əvvəlki bütün simvolları silirik>Və tam olaraq axtardığımız nəticəni əldə edin:

    İki simvol arasındakı mətni silin

    Əlaqəsiz məlumat 2 xüsusi simvol arasında olduqda, burada necə onu tez silə bilərsiniz:

    1. Bütün alt sətirləri sil seçin və aşağıdakı xanalara iki simvol yazın.
    2. Əgər "aralarındakı" simvollar da silinməlidirsə , O cümlədən ayırıcılar qutusunu yoxlayın.
    3. Sil üzərinə klikləyin.

    As Məsələn, biz iki tilde simvolu (~) arasındakı hər şeyi silirik və nəticədə mükəmməl təmizlənmiş sətirləri əldə edirik:

    Bu çoxfunksiyalı funksiyaya daxil olan digər faydalı xüsusiyyətləri sınamaq üçün alət, mən sizə bir e bu yazının sonundakı qiymətləndirmə versiyası. Oxuduğunuz üçün təşəkkür edirik və sizi gələn həftə bloqumuzda görməyə ümid edirik!

    Mövcud endirmələr

    İlk və ya son simvolları silin - nümunələr (.xlsm faylı)

    Ultimate Suite - sınaq versiyası (.exe faylı)

    Nəyi tapınqutusunda boşluq (*, ).

    Nəzərinizə çatdıraq ki, biz yalnız vergülü deyil, vergülü və boşluğu əvəz edirik. nəticələrdəki boşluqlar. Əgər məlumatınız boşluq olmadan vergüllə ayrılıbsa, o zaman ulduz işarəsindən sonra vergül (*,) istifadə edin.

    Mətni silmək üçün iki vergül , vergül (,*,) ilə əhatə olunmuş ulduzdan istifadə edin.

    İpucu. Əgər adların və telefon nömrələrinin vergüllə ayrılmasını istəyirsinizsə, ilə əvəz et sahəsinə vergül (,) yazın.

    Flash Fill-dən istifadə edərək mətnin bir hissəsini silin

    Excel-in müasir versiyalarında (2013 və sonrakı) müəyyən simvoldan əvvəl və ya ondan sonra gələn mətni silməyin daha asan bir yolu var - Flash Doldurma funksiyası. Bu necə işləyir:

    1. Məlumatınızın olduğu ilk xananın yanındakı xanada gözlənilən nəticəni yazın və Enter düyməsini basın.
    2. Növbəti xanada müvafiq dəyəri yazmağa başlayın. Excel daxil etdiyiniz dəyərlərdə nümunəni hiss etdikdən sonra, eyni nümunəyə uyğun olaraq qalan xanalar üçün önizləməni göstərəcək.
    3. Təklifi qəbul etmək üçün Enter düyməsini basın.

    Bitdi!

    Düsturlardan istifadə edərək mətni silin

    Microsoft Excel-də daxili funksiyalardan istifadə etməklə həyata keçirilən bir çox məlumat manipulyasiyaları düsturla da həyata keçirilə bilər. Əvvəlki üsullardan fərqli olaraq, düsturlar orijinal məlumatlara heç bir dəyişiklik etmir və sizə daha çox nəzarət imkanı verirnəticələr.

    Xüsusi simvoldan sonra hər şeyi necə silmək olar

    Müəyyən simvoldan sonra mətni silmək üçün ümumi düstur belədir:

    SOL( xana , AXTAR (" char ", hüceyrə ) -1)

    Burada simvolun mövqeyini əldə etmək və onu SOL funksiyasına ötürmək üçün AXTAR funksiyasından istifadə edirik, beləliklə o, çıxarır sətrin əvvəlindən simvolların müvafiq sayı. Ayırıcını nəticələrdən xaric etmək üçün SEARCH tərəfindən qaytarılan nömrədən bir simvol çıxılır.

    Məsələn, vergüldən sonra sətirin bir hissəsini silmək üçün aşağıdakı düsturu B2-yə daxil edin və onu B7 vasitəsilə aşağı dartın. :

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

    Xüsusi simvoldan əvvəl hər şeyi necə silmək olar

    Müəyyən simvoldan əvvəl mətn sətirinin bir hissəsini silmək üçün ümumi düstur:

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

    Burada biz yenidən SEARCH-in köməyi ilə hədəf simvolun mövqeyini hesablayırıq, onu LEN-in qaytardığı ümumi sətir uzunluğundan çıxarırıq və fərqi RIGHT funksiyasına ötürürük, beləliklə, simvolun sonundan çoxlu simvol çəkir. sətir.

    Məsələn, vergüldən əvvəl mətni silmək üçün düstur belədir:

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

    Bizim vəziyyətimizdə vergüldən sonra boşluq işarəsi qoyulur. Nəticələrdə öndə olan boşluqların qarşısını almaq üçün biz əsas düsturu TRIM funksiyasına yığırıq:

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

    Qeydlər:

    • Hər ikisiyuxarıdakı misallardan ilkin sətirdə ayırıcının yalnız bir nümunəsi olduğunu güman edir. Bir neçə hadisə baş verərsə, mətn ilk instansiyadan əvvəl/sonra silinəcək.
    • AXTAR funksiyası həssas deyil , yəni onun arasında heç bir fərq yoxdur kiçik və böyük hərflər. Əgər sizin xüsusi simvolunuz hərfdirsə və siz hərf böyüklüyünü fərqləndirmək istəyirsinizsə, AXTAR əvəzinə hərflərə həssas TAP funksiyasından istifadə edin.

    N-ci başlıqdan sonra mətni necə silmək olar simvolun

    Mənbə sətirində ayırıcının çoxsaylı nümunələri olduğu halda, konkret instansiyadan sonra mətni silmək zərurəti yarana bilər. Bunun üçün aşağıdakı düsturdan istifadə edin:

    LEFT( xana , FIND("#", Əvəzedici( xana , " char ", "#" , n )) -1)

    Burada n mətni sildikdən sonra simvolun baş verməsidir.

    Bu düsturun daxili məntiqi bəzi simvollardan istifadə etməyi tələb edir. mənbə məlumatında heç bir yerdə olmayan, bizim vəziyyətimizdə hash simvolu (#). Bu simvol data dəstinizdə baş verirsə, "#" əvəzinə başqa bir şey istifadə edin.

    Məsələn, A2-də 2-ci vergüldən sonra hər şeyi (və vergülün özündən) silmək üçün düstur belədir:

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

    Bu düstur necə işləyir:

    Düsturun əsas hissəsi hesablayan FIND funksiyasıdır. n-ci mövqeayırıcı (bizim vəziyyətimizdə vergül). Budur:

    Əvəz etmənin köməyi ilə A2-də 2-ci vergülü hash simvolu (və ya məlumatınızda olmayan hər hansı digər simvol) ilə əvəz edirik:

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

    Nəticədə sətir FIND-in 2-ci arqumentinə gedir, ona görə də həmin sətirdə "#" mövqeyini tapır:

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

    FIND bizə "#" nin 13-cü simvol olduğunu bildirir simdə. Ondan əvvəlki simvolların sayını bilmək üçün sadəcə 1-i çıxarın və nəticədə 12 əldə edəcəksiniz:

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

    Bu rəqəm birbaşa simvolların_sayı arqumentinə keçir A2-dən ilk 12 simvolu çəkməyi xahiş edən LEFT:

    =LEFT(A2, 12)

    Belədir!

    Simvolun N-ci təkrarından əvvəl mətni necə silmək olar

    Müəyyən simvoldan əvvəl alt sətri silmək üçün ümumi düstur:

    RIGHT(Əvəz( xana , " char ", "#", n ), LEN( xana ) - FIND("#", Əvəzedici( xana , " char ", "#", n )) -1)

    Məsələn, A2-də 2-ci vergüldən əvvəl mətni silmək üçün düstur belədir:

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

    Aşağıdakı boşluğu aradan qaldırmaq üçün biz yenidən TRIM-dən istifadə edirik sarğı kimi fəaliyyət göstərir:

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

    Bu düstur necə işləyir:

    Xülasə olaraq, biz tapırıq n-ci ayırıcıdan sonra neçə simvol var və sağdan müvafiq uzunluqda alt sətir çıxarın. Aşağıda düstur bölünür:

    Əvvəla, biz A2-də 2-ci vergülü hash ilə əvəz edirik.simvol:

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

    Nəticədə sətir RIGHT-in mətn arqumentinə gedir:

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

    Sonra, biz lazımdır sətrin sonundan neçə simvol çıxarmaq lazım olduğunu müəyyənləşdirin. Bunun üçün yuxarıdakı sətirdə hash simvolunun mövqeyini tapırıq (bu, 13):

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

    Və onu ümumi sətir uzunluğundan (28-ə bərabərdir) çıxırıq:

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

    Fərq (15) RIGHT-in ikinci arqumentinə gedir və ona birinci arqumentdəki sətirdən son 15 simvolu çəkməyi əmr edir:

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

    Çıxış " (102) 123-4568" alt sətiridir, bu, aparıcı boşluq istisna olmaqla, istənilən nəticəyə çox yaxındır. Beləliklə, biz ondan xilas olmaq üçün TRIM funksiyasından istifadə edirik.

    Sonuncu simvoldan sonra mətni necə silmək olar

    Dəyərləriniz dəyişən sayda ayırıcılarla ayrıldıqda, siz həmin ayırıcının son nümunəsindən sonra hər şeyi silmək istəyə bilər. Bunu aşağıdakı düsturla etmək olar:

    LEFT( xana , FIND("#", Əvəzedici( xana , " char ", "# ", LEN( xana ) - LEN(Əvəzedici( xana , " char ", "")))) -1)

    Fərz edək ki, A sütunu işçilər haqqında müxtəlif məlumatları ehtiva edir, lakin son vergüldən sonrakı dəyər həmişə telefon nömrəsidir. Məqsədiniz telefon nömrələrini silmək və bütün digər təfərrüatları saxlamaqdır.

    Məqsədinizə çatmaq üçün bununla A2-də son vergüldən sonrakı mətni silə bilərsiniz.formula:

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

    Düsulu sütunun aşağısına köçürün və bu nəticəni əldə edəcəksiniz:

    Bu necə düstur işləyir:

    Düsturun mahiyyəti ondan ibarətdir ki, biz sətirdə sonuncu ayırıcının (vergül) yerini müəyyənləşdiririk və soldan yuxarı ayırıcıya qədər alt sətir çəkirik. Ayırıcının mövqeyini əldə etmək ən çətin hissədir və biz bunu necə idarə edirik:

    Əvvəla, orijinal sətirdə neçə vergül olduğunu öyrənirik. Bunun üçün hər bir vergülü heç nə ilə ("") əvəz edirik və nəticədə yaranan sətri LEN funksiyasına xidmət edirik:

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

    A2 üçün nəticə simvolların sayı olan 35-dir. A2-də vergül olmadan.

    Yuxarıdakı rəqəmi ümumi sətir uzunluğundan (38 simvol) çıxarın:

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

    … və siz 3 alacaqsınız, bu ümumi rəqəmdir A2-də vergüllərin sayı (həmçinin sonuncu vergülün sıra nömrəsi).

    Sonra, sətirdə sonuncu vergülün mövqeyini əldə etmək üçün FIND və Əvəz etmə funksiyalarının artıq tanış olan kombinasiyasından istifadə edirsiniz. Nümunə nömrəsi (bizim halda 3-cü vergül) yuxarıda qeyd olunan LEN ƏVƏZİNƏ düsturu ilə təmin edilir:

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

    Görünür, 3-cü vergül A2-də 23-cü simvoldur, yəni bizə lazımdır özündən əvvəlki 22 simvolu çıxarmaq üçün. Beləliklə, yuxarıdakı düsturu LEFT-in simvol_sayı arqumentində mənfi 1 qoyduq:

    LEFT(A2, 23-1)

    Sonuncu simvoldan əvvəl mətni necə silmək olar

    Silmək üçünxüsusi simvolun son nümunəsindən əvvəlki hər şey, ümumi düstur belədir:

    RIGHT( xana , LEN( xana ) - FIND("#", Əvəzedici( ) xana , " char ", "#", LEN( xana ) - LEN(Əvəzedici( xana , " char ", "")))))

    Nümunə cədvəlimizdə sonuncu vergüldən əvvəl mətni silmək üçün düstur bu formanı alır:

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

    Son toxunuş olaraq, biz aparıcı boşluqları aradan qaldırmaq üçün onu TRIM funksiyasına yerləşdirin:

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

    Bu düstur necə işləyir:

    Xülasə olaraq, əvvəlki misalda izah edildiyi kimi sonuncu vergülün mövqeyini alırıq və onu sətirin ümumi uzunluğundan çıxarırıq:

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

    Nəticədə, biz son vergüldən sonra simvollar daxil edin və onu RIGHT funksiyasına keçirin, beləliklə, o, sətirin sonundan çoxlu simvol gətirir.

    Simvolun hər iki tərəfindəki mətni silmək üçün fərdi funksiya

    As yuxarıdakı nümunələrdə gördüyünüz kimi, Excel-in yerli f-dən istifadə edərək demək olar ki, hər hansı bir istifadə halını həll edə bilərsiniz müxtəlif birləşmələrdə birləşmələr. Problem ondadır ki, bir neçə çətin formulları xatırlamaq lazımdır. Hmm, bütün ssenariləri əhatə etmək üçün öz funksiyamızı yazsaq nə olacaq? Yaxşı fikir kimi səslənir. Beləliklə, iş kitabınıza aşağıdakı VBA kodunu əlavə edin (VBA-nı Excel-ə daxil etmək üçün ətraflı addımlar buradadır):

    Function RemoveText(str As String , delimiter As String , insidence As As Integer , is_after As).Boolean ) 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(delimiter) For i = 1 baş verməsi üçün delimiter_num, InStrext, vbeComart) < ayırıcı_num Sonra başlanğıc_num = ayırıcı_num + ayırıcı_len End Əgər Növbəti i Əgər 0 < delimiter_num Sonra Doğrudursa = is_after Sonra 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

    Funksiyamız RemoveText adlanır. və onun aşağıdakı sintaksisi var:

    RemoveText(string, delimiter, insident, is_after)

    Burada:

    String - orijinal mətn sətridir. Hüceyrə arayışı ilə təmsil oluna bilər.

    Delimiter - mətni silməkdən əvvəlki/sonrası simvol.

    Ortaya - nümunənin nümunəsi ayırıcı.

    Is_after - ayırıcının hansı tərəfində mətnin silinməsini göstərən məntiqi dəyər. Tək simvol və ya simvollar ardıcıllığı ola bilər.

    • DOĞRU - ayırıcıdan sonrakı hər şeyi silin (o cümlədən ayırıcının özü).
    • YANLIŞ - ayırıcıdan əvvəlki hər şeyi silin (o cümlədən ayırıcının özü).

    Funksiya kodu iş kitabınıza daxil edildikdən sonra siz yığcam və zərif düsturlardan istifadə edərək xanalardan alt sətirləri silə bilərsiniz.

    Məsələn, silmək üçün

    Michael Brown proqram alətlərindən istifadə edərək mürəkkəb prosesləri sadələşdirməyə həvəsi olan xüsusi texnologiya həvəskarıdır. Texnologiya sənayesində on ildən artıq təcrübəyə malik olmaqla, o, Microsoft Excel və Outlook, həmçinin Google Cədvəl və Sənədlərdə bacarıqlarını mükəmməlləşdirib. Mayklın bloqu öz biliyini və təcrübəsini başqaları ilə bölüşməyə, məhsuldarlığı və səmərəliliyi artırmaq üçün asan izlənilən məsləhətlər və dərslikləri təqdim etməyə həsr olunub. İstər təcrübəli peşəkar, istərsə də yeni başlayan biri olmağınızdan asılı olmayaraq, Mayklın bloqu bu vacib proqram alətlərindən maksimum yararlanmaq üçün dəyərli fikirlər və praktiki məsləhətlər təklif edir.