Excelda ikkita belgidan oldin, keyin yoki orasidagi matnni olib tashlang

  • Buni Baham Ko'Ring
Michael Brown

Oxirgi bir necha maqolada biz Excelda satrlardan belgilarni olib tashlashning turli usullarini ko'rib chiqdik. Bugun biz yana bitta foydalanish holatini ko'rib chiqamiz - ma'lum bir belgidan oldin yoki keyin hamma narsani qanday o'chirish mumkin.

    Matnni Find & O'zgartirish

    Ko'p hujayralardagi ma'lumotlarni manipulyatsiya qilish uchun Top va almashtirish to'g'ri vositadir. Muayyan belgidan oldingi yoki keyingi satrning bir qismini olib tashlash uchun quyidagi amallarni bajarish kerak:

    1. Matnni oʻchirmoqchi boʻlgan barcha katakchalarni tanlang.
    2. Ctrl + H tugmalarini bosing. Topish va almashtirish dialog oynasini ochish uchun.
    3. Nimani toping oynasiga quyidagi kombinatsiyalardan birini kiriting:
      • Matnni olib tashlash uchun ma'lum belgidan oldin , oldiga yulduzcha (*char) qo'yilgan belgini kiriting.
      • Matnni o'chirish uchun ma'lum bir belgidan keyin yulduzcha (char) qo'shiladigan belgini kiriting. *).
      • Ikki belgi orasidagi pastki qatorni oʻchirish uchun 2 ta belgi bilan oʻralgan yulduzchani kiriting (char*char).
    4. Tartib qoʻying. O'rniga maydoni bo'sh.
    5. Hammasini almashtirish tugmasini bosing.

    Masalan, ni olib tashlash uchun Verguldan keyingi hamma narsa , shu jumladan vergulning o'zi, Nimani toping oynasiga vergul va yulduzcha belgisini (,*) qo'ying va siz quyidagi natijani olasiz:

    vergul oldidan pastki qatorni oʻchirish uchun yulduzcha kiriting, vergul,A2 da 1-verguldan keyin hamma narsa, B2 da formula:

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

    A2 da 1-verguldan oldingi hamma narsani oʻchirish uchun C2-dagi formula:

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

    Bizning maxsus funksiyamiz ajratish uchun satr ni qabul qilganligi sababli, keyingi boʻshliqlarni kesish muammosini bartaraf qilish uchun 2-argumentga vergul va boʻsh joy (", ") qoʻyamiz.

    Bizning maxsus funksiyamiz juda yaxshi ishlaydi, shunday emasmi? Ammo, agar bu keng qamrovli yechim deb hisoblasangiz, keyingi misolni hali ko'rmadingiz :)

    Barchasini oldingi, keyin yoki belgilar orasidagi o'chirish

    Alohida belgilarni o'chirish yoki bir nechta katakchalardan matnni moslik yoki joylashuv boʻyicha Excel asboblar qutisiga Ultimate Suite qoʻshing.

    Bu yerda biz Joylashuv boʻyicha oʻchirish funksiyasini batafsil koʻrib chiqamiz. 9>Ablebits Data yorlig'i > Matn guruhi > O'chirish .

    Quyida biz ikkalasini ko'rib chiqamiz eng keng tarqalgan stsenariylar.

    Ma'lum bir matndan oldin yoki keyin hamma narsani o'chirib tashlang

    Faraz qiling, barcha manbalar qatorlarida umumiy so'z yoki matn mavjud va siz ushbu matndan oldin yoki keyin hamma narsani o'chirmoqchisiz. Buni amalga oshirish uchun manba maʼlumotlaringizni tanlang, Joylashuv boʻyicha oʻchirish asbobini ishga tushiring va uni quyida koʻrsatilgandek sozlang:

    1. Matndan oldingi barcha belgilarni tanlang yoki Matndan keyingi barcha belgilar variantini tanlang va keyingi maydonga kalit matnni (yoki belgini) kiriting.Unga.
    2. Katta va kichik harflar turli yoki bir xil belgilar sifatida ko'rib chiqilishiga qarab, Kichik-kichik harflarga sezgir katagiga belgi qo'ying yoki belgini olib tashlang.
    3. <9-ni bosing>O'chirish .

    Ushbu misolda biz A2:A8:

    <0 kataklardagi "xato" so'zidan oldingi barcha belgilarni olib tashlaymiz>Va aynan biz qidirayotgan natijaga erishing:

    Ikki belgi orasidagi matnni o'chirish

    Aloqasiz ma'lumot 2 ta belgi o'rtasida bo'lsa, bu erda uni tezda o'chirishingiz mumkin:

    1. Barcha pastki qatorlarni o'chirish -ni tanlang va quyidagi maydonlarga ikkita belgi kiriting.
    2. Agar "oradagi" belgilar ham olib tashlanishi kerak bo'lsa. , Shu jumladan cheklovchilar katagiga belgi qo'ying.
    3. O'chirish tugmasini bosing.

    As Misol uchun, biz ikkita tilda belgisi (~) orasidagi hamma narsani o'chirib tashlaymiz va natijada mukammal tozalangan satrlarni olamiz:

    Ushbu ko'p funksiyali boshqa foydali xususiyatlarni sinab ko'rish uchun vositasi, men sizga e yuklab olishingizni tavsiya qilaman Ushbu postning oxiridagi baholash versiyasi. O'qiganingiz uchun tashakkur va kelgusi hafta blogimizda ko'rishamiz!

    Mavjud yuklab olishlar

    Birinchi yoki oxirgi belgilarni olib tashlang - misollar (.xlsm fayli)

    Ultimate Suite - sinov versiyasi (.exe fayli)

    Nimani topingoynasida bo'sh joy (*, ) qo'ying.

    E'tibor bering, biz faqat vergulni emas, balki vergul va bo'sh joyni o'rniga qo'yamiz. natijalardagi bo'shliqlar. Agar maʼlumotlaringiz boʻsh joysiz vergul bilan ajratilgan boʻlsa, yulduzchadan keyin vergul (*,) qoʻying.

    Matnni oʻchirish uchun ikki vergul orasidagi , vergul (,*,) bilan oʻralgan yulduzchadan foydalaning.

    Maslahat. Agar siz ism va telefon raqamlarini vergul bilan ajratishni istasangiz, Almashtirish maydoniga vergul (,) qo'ying.

    Flesh Fill yordamida matnning bir qismini olib tashlash

    Excelning zamonaviy versiyalarida (2013 va undan keyingi versiyalarida) ma'lum bir belgidan oldin yoki undan keyingi matnni yo'q qilishning yana bir oson yo'li mavjud - Flash to'ldirish xususiyati. Bu shunday ishlaydi:

    1. Maʼlumotlaringiz joylashgan birinchi katak yonidagi katakka kutilgan natijani kiriting va Enter tugmasini bosing.
    2. Keyingi katakchaga tegishli qiymatni yozishni boshlang. Excel siz kiritayotgan qiymatlardagi naqshni sezgandan so'ng, u xuddi shu naqsh bo'yicha qolgan hujayralar uchun oldindan ko'rishni ko'rsatadi.
    3. Taklifni qabul qilish uchun Enter tugmasini bosing.

    Bajarildi!

    Formulalar yordamida matnni o'chirish

    Microsoft Excelda o'rnatilgan funksiyalar yordamida amalga oshiriladigan ko'plab ma'lumotlarni manipulyatsiyasi formula yordamida ham amalga oshirilishi mumkin. Oldingi usullardan farqli o'laroq, formulalar asl ma'lumotlarga hech qanday o'zgartirish kiritmaydi va sizga ko'proq nazorat qilish imkonini beradinatijalar.

    Ma'lum bir belgidan keyin hamma narsani qanday olib tashlash mumkin

    Muayyan belgidan keyin matnni o'chirish uchun umumiy formula:

    CHAP( hujayra , SEARCH (" char ", hujayra ) -1)

    Bu erda biz SEARCH funksiyasidan foydalanib, belgining o'rnini bilib, CHAP funksiyasiga o'tkazamiz, shuning uchun u chiqaradi satr boshidan boshlab mos keladigan belgilar soni. Ajratuvchini natijalardan chiqarib tashlash uchun SEARCH tomonidan qaytarilgan raqamdan bitta belgi ayiriladi.

    Masalan, verguldan keyin satrning bir qismini olib tashlash uchun quyidagi formulani B2 ga kiriting va uni B7 orqali pastga torting. :

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

    Ma'lum bir belgidan oldin hamma narsani qanday o'chirish kerak

    Ma'lum bir belgi oldidagi matn qatorining bir qismini o'chirish uchun, umumiy formula:

    RIGHT( hujayra , LEN( hujayra ) - SEARCH(" char ", yacheyka ))

    Bu erda biz SEARCH yordamida maqsadli belgining o'rnini yana hisoblab chiqamiz, uni LEN tomonidan qaytarilgan umumiy satr uzunligidan ayiramiz va farqni RIGHT funksiyasiga o'tkazamiz, shuning uchun u juda ko'p belgilarni oxiridan tortib oladi. string.

    Masalan, vergul oldidagi matnni olib tashlash uchun formula quyidagicha bo'ladi:

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

    Bizning holimizda verguldan keyin bo'sh joy qo'yiladi. Natijalarda oldingi boʻshliqlar qolmasligi uchun biz asosiy formulani TRIM funksiyasiga oʻrab olamiz:

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

    Eslatmalar:

    • Ikkalasi hamYuqoridagi misollardan asl satrda chegaralovchining faqat bitta nusxasi bor deb faraz qilinadi. Agar bir necha marta takrorlansa, matn birinchi instansiya dan oldin/keyin oʻchiriladi.
    • SEARCH funksiyasi katta-kichik harflarni sezgir emas , yaʼni u oʻrtasida farq qilmaydi. kichik va katta harflar. Agar sizning o'ziga xos belgingiz harf bo'lsa va siz harflar katta-kichikligini ajratib olishni istasangiz, QIDIRISh o'rniga katta-kichik harflarga sezgir TOPISH funksiyasidan foydalaning.

    N-chi marta kelgandan keyin matnni qanday o'chirish mumkin belgining

    Manba satrida chegaralovchining bir nechta nusxalari mavjud bo'lsa, ma'lum bir misoldan keyin matnni olib tashlash kerak bo'lishi mumkin. Buning uchun quyidagi formuladan foydalaning:

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

    Bu erda n - matnni olib tashlash uchun belgining paydo bo'lishi.

    Ushbu formulaning ichki mantig'i ba'zi belgilardan foydalanishni talab qiladi. Bu manba ma'lumotlarining biron bir joyida mavjud emas, bizning holatlarimizda xesh belgisi (#). Agar bu belgi maʼlumotlar toʻplamida boʻlsa, “#” oʻrniga boshqasini ishlating.

    Masalan, A2 dagi 2-verguldan keyin hamma narsani (va vergulning oʻzini) olib tashlash uchun formula:

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

    Ushbu formula qanday ishlaydi:

    Formulaning asosiy qismi FIND funktsiyasi bo'lib, uni hisoblab chiqadi. n-ning pozitsiyasiajratuvchi (bizning holimizda vergul). Mana shunday:

    A2 dagi 2-vergulni SUBSTITUTE yordamida xesh belgisi (yoki maʼlumotlaringizda mavjud boʻlmagan boshqa belgilar) bilan almashtiramiz:

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

    Olingan qator FIND ning 2-argumentiga boradi, shuning uchun u ushbu satrdagi "#" o'rnini topadi:

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

    FIND bizga "#" 13-belgi ekanligini bildiradi. ipda. Undan oldingi belgilar sonini bilish uchun 1 ni ayirish kifoya, natijada siz 12 ni olasiz:

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

    Bu raqam to'g'ridan-to'g'ri belgilar soni argumentiga o'tadi. A2 dan dastlabki 12 ta belgini olishni so'ragan LEFT:

    =LEFT(A2, 12)

    Hammasi!

    Belgining N-nchi kelishidan oldingi matnni qanday o'chirish mumkin

    Ma’lum bir belgi oldidagi pastki qatorni olib tashlashning umumiy formulasi:

    O‘RG‘A(O‘RNISH( hujayra , " char ", "#", n ), LEN( hujayra ) - FIND("#", O'RNISH( yacheyka , " char ", "#", n )) -1)

    Masalan, A2 formatidagi 2-vergul oldidagi matnni olib tashlash uchun formula quyidagicha:

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

    Bosh joyni olib tashlash uchun biz yana TRIM-dan foydalanamiz. o'rash vazifasini bajaradi:

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

    Ushbu formula qanday ishlaydi:

    Xulosa qilib aytganda, biz bilib olamiz n-chi chegaralovchidan keyin nechta belgi bor va o'ngdan mos uzunlikdagi pastki qatorni ajratib oling. Quyida formulani taqsimlash keltirilgan:

    Birinchi navbatda A2 dagi 2-vergulni xesh bilan almashtiramiz.belgisi:

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

    Natijadagi satr RIGHTning matn argumentiga boradi:

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

    Keyin, biz satr oxiridan qancha belgi chiqarish kerakligini aniqlang. Buning uchun yuqoridagi satrdagi xesh belgisi o'rnini topamiz (bu 13):

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

    Va uni satrning umumiy uzunligidan (28 ga teng) ayiramiz:

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

    Farq (15) RIGHT ning ikkinchi argumentiga boradi va unga birinchi argumentdagi satrdan oxirgi 15 ta belgini tortib olishni buyuradi:

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

    Chiqish " (102) 123-4568" pastki qator bo'lib, kerakli natijaga juda yaqin, bosh bo'sh joydan tashqari. Shunday qilib, biz undan xalos bo'lish uchun TRIM funksiyasidan foydalanamiz.

    Belgi oxirgi marta paydo bo'lganidan keyin matnni qanday olib tashlash mumkin

    Agar qiymatlaringiz o'zgaruvchan sonli cheklovchilar bilan ajratilgan bo'lsa, siz bu chegaralovchining oxirgi nusxasidan keyin hamma narsani olib tashlashni xohlashi mumkin. Buni quyidagi formula yordamida amalga oshirish mumkin:

    LEFT( hujayra , FIND("#", SUBSTITUTE( yacheyka , " char ", "# ", LEN( hujayra ) - LEN(ALBATTA( yacheyka , " char ", "")))) -1)

    A ustuni deylik xodimlar haqida turli ma'lumotlarni o'z ichiga oladi, lekin oxirgi verguldan keyingi qiymat har doim telefon raqamidir. Maqsadingiz telefon raqamlarini olib tashlash va boshqa barcha tafsilotlarni saqlashdir.

    Maqsadga erishish uchun A2 formatidagi oxirgi verguldan keyingi matnni shu bilan olib tashlashingiz mumkin.formula:

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

    Formulani ustundan pastga ko'chiring va siz quyidagi natijani olasiz:

    Bu qanday formula ishlaydi:

    Formulaning mohiyati shundan iboratki, biz satrdagi oxirgi ajratuvchi (vergul) o'rnini aniqlaymiz va pastki qatorni chapdan yuqoriga ajratuvchiga tortamiz. Ajratuvchining o'rnini olish eng qiyin qism va biz buni qanday hal qilamiz:

    Birinchidan, biz asl satrda nechta vergul borligini aniqlaymiz. Buning uchun har bir vergulni hech narsa ("") bilan almashtiramiz va natijada olingan satrni LEN funksiyasiga xizmat qilamiz:

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

    A2 uchun natija 35, ya'ni belgilar soni A2 da vergulsiz yozing.

    Yuqoridagi raqamni umumiy satr uzunligidan (38 belgidan) ayiring:

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

    … va siz 3 ni olasiz, bu umumiy raqam A2 formatidagi vergullar soni (shuningdek, oxirgi vergulning tartib raqami).

    Keyin, satrdagi oxirgi vergul o'rnini olish uchun FIND va SUBSTITUTE funksiyalarining allaqachon tanish kombinatsiyasidan foydalanasiz. Namuna raqami (bizning holatimizda 3-vergul) yuqorida aytib o'tilgan LEN SUBSTITUTE formulasi bilan ta'minlanadi:

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

    Ko'rinishidan, 3-vergul A2 formatidagi 23-belgi, ya'ni bizga kerak oldingi 22 ta belgini ajratib olish uchun. Shunday qilib, biz yuqoridagi minus 1 formulasini CHAPning belgilar_soni argumentiga qo'yamiz:

    LEFT(A2, 23-1)

    Belgi oxirgi marta kelishidan oldingi matnni qanday olib tashlash mumkin

    Oʻchirish uchunma'lum bir belgining oxirgi nusxasidan oldingi hamma narsa, umumiy formula:

    RIGHT( hujayra , LEN( yacheyka ) - FIND("#", SUBSTITUTE( ) katak , " char ", "#", LEN( yacheyka ) - LEN(SUBSTITUTE( yacheyka , " char ", "")))))

    Bizning namunaviy jadvalimizda oxirgi vergul oldidagi matnni yo'q qilish uchun formula quyidagi shaklni oladi:

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

    Yakuniy nuqta sifatida biz yetakchi boʻshliqlarni yoʻq qilish uchun uni TRIM funksiyasiga joylashtiring:

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

    Ushbu formula qanday ishlaydi:

    Xulosa qilib aytganda, oldingi misolda tushuntirilgandek oxirgi vergulning o‘rnini olamiz va uni satrning umumiy uzunligidan ayiramiz:

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

    Natijada biz sonni olamiz. oxirgi verguldan keyin belgilar qo'ying va uni RIGHT funksiyasiga o'tkazing, shuning uchun u satr oxiridan shuncha ko'p belgilarni olib keladi.

    Belgining har ikki tomonidagi matnni olib tashlash uchun maxsus funksiya

    As Yuqoridagi misollarda siz deyarli har qanday foydalanish holatlarini Excelning mahalliy f-dan foydalanib hal qilishingiz mumkin turli xil kombinatsiyalardagi birikmalar. Muammo shundaki, siz bir nechta murakkab formulalarni eslab qolishingiz kerak. Hmm, agar biz barcha stsenariylarni qamrab olish uchun o'z funksiyamizni yozsak nima bo'ladi? Yaxshi fikrga o'xshaydi. Shunday qilib, ishchi kitobingizga quyidagi VBA kodini qo'shing (VBA-ni Excel-ga kiritish bo'yicha batafsil qadamlar bu erda):

    Funktsiya RemoveText(str As String , delimiter As String , hodisa As Integer , is_after AsMantiqiy ) Dim ajratuvchi_num, start_num, delimiter_len Integer As Dim str_result As String delimiter_num = 0 start_num = 1 str_result = "" delimiter_len = Len(delimiter) For i = 1 sodir bo'lishi uchun delimiter_num, InStr_ext) < delimiter_num Keyin start_num = delimiter_num + delimiter_len End If Next i If 0 < delimiter_num Keyin rost bo'lsa = is_after Keyin 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

    Funktsiyamiz RemoveText deb nomlanadi va u quyidagi sintaksisga ega:

    RemoveText(string, ajratuvchi, hodisa, is_after)

    Bu yerda:

    String - asl matn qatori. Hujayra havolasi bilan ifodalanishi mumkin.

    Ajratishchi - matnni olib tashlashdan oldingi/keyin belgi.

    Voydalanish - misol ajratuvchi.

    Is_after - chegaralovchining qaysi tomonida matnni olib tashlash kerakligini ko'rsatadigan mantiqiy qiymat. Bitta belgi yoki belgilar ketma-ketligi boʻlishi mumkin.

    • TRUE – ajratuvchidan keyingi hamma narsani oʻchirish (jumladan, ajratuvchining oʻzi).
    • FALSE – ajratuvchidan oldingi hamma narsani oʻchirish (jumladan, chegaralovchining o'zi).

    Funksiya kodi ishchi kitobingizga kiritilgandan so'ng, siz ixcham va oqlangan formulalar yordamida kataklardan pastki qatorlarni olib tashlashingiz mumkin.

    Masalan, o'chirish uchun

    Maykl Braun - dasturiy vositalardan foydalangan holda murakkab jarayonlarni soddalashtirishga ishtiyoqi bo'lgan maxsus texnologiya ishqibozi. Texnologiya sohasida o'n yildan ortiq tajribaga ega bo'lgan holda, u Microsoft Excel va Outlook, shuningdek, Google Sheets va Docs dasturlarida o'z mahoratini oshirdi. Mayklning blogi o'z bilimi va tajribasini boshqalar bilan baham ko'rishga, samaradorlik va samaradorlikni oshirish uchun amal qilish oson maslahatlar va o'quv qo'llanmalariga bag'ishlangan. Tajribali mutaxassismisiz yoki yangi boshlovchi boʻlasizmi, Mayklning blogi ushbu muhim dasturiy vositalardan maksimal darajada foydalanish uchun qimmatli tushunchalar va amaliy maslahatlarni taqdim etadi.