Hapus teks sebelum, sesudah atau di antara dua karakter di Excel

  • Bagikan Ini
Michael Brown

Dalam beberapa artikel baru-baru ini, kami telah melihat berbagai cara untuk menghapus karakter dari string di Excel. Hari ini, kami akan menyelidiki satu kasus penggunaan lagi - cara menghapus semua yang sebelum atau sesudah karakter tertentu.

    Menghapus teks sebelum, sesudah, atau di antara 2 karakter dengan Find & Replace

    Untuk manipulasi data dalam beberapa sel, Find and Replace adalah alat yang tepat. Untuk menghapus bagian dari string yang mendahului atau mengikuti karakter tertentu, berikut adalah langkah-langkah yang harus dilakukan:

    1. Pilih semua sel tempat Anda ingin menghapus teks.
    2. Tekan Ctrl + H untuk membuka Temukan dan Ganti dialog.
    3. Dalam Temukan apa yang kotak, masukkan salah satu kombinasi berikut ini:
      • Untuk menghilangkan teks sebelum karakter tertentu , ketik karakter yang didahului oleh tanda bintang (*char).
      • Untuk menghapus teks setelah karakter tertentu , ketik karakter yang diikuti dengan tanda bintang (char*).
      • Untuk menghapus substring antara dua karakter , ketik tanda bintang yang dikelilingi oleh 2 karakter (char*char).
    4. Tinggalkan Ganti dengan kotak kosong.
    5. Klik Ganti semua .

    Contohnya, untuk menghapus segala sesuatu setelah koma termasuk koma itu sendiri, letakkan tanda koma dan tanda asterisk (,*) di dalam Temukan apa yang dan Anda akan mendapatkan hasil berikut ini:

    Untuk menghapus substring sebelum koma , ketik tanda bintang, koma, dan spasi (*, ) di dalam Temukan apa yang kotak.

    Harap perhatikan bahwa kita tidak hanya mengganti koma, tetapi koma dan spasi untuk mencegah spasi di depan dalam hasil. Jika data Anda dipisahkan oleh koma tanpa spasi, maka gunakan tanda bintang yang diikuti oleh koma (*,).

    Untuk menghapus teks di antara dua koma , gunakan tanda bintang yang dikelilingi oleh koma (,*,).

    Tip. Jika Anda lebih suka nama dan nomor telepon dipisahkan dengan koma, maka ketiklah tanda koma (,) dalam kolom Ganti dengan lapangan.

    Menghapus bagian teks menggunakan Flash Fill

    Dalam versi modern Excel (2013 dan yang lebih baru), ada satu cara mudah lagi untuk menghapus teks yang mendahului atau mengikuti karakter tertentu - fitur Isi Flash. Begini cara kerjanya:

    1. Dalam sel di samping sel pertama dengan data Anda, ketik hasil yang diharapkan dan tekan Enter .
    2. Mulailah mengetik nilai yang sesuai di sel berikutnya. Setelah Excel merasakan pola dalam nilai yang Anda masukkan, itu akan menampilkan pratinjau untuk sel yang tersisa mengikuti pola yang sama.
    3. Tekan tombol Enter untuk menerima saran.

    Selesai!

    Hapus teks menggunakan rumus

    Di Microsoft Excel, banyak manipulasi data yang dilakukan dengan menggunakan fitur bawaan juga dapat dilakukan dengan rumus. Berbeda dengan metode sebelumnya, rumus tidak membuat perubahan apa pun pada data asli dan memberi Anda lebih banyak kontrol atas hasilnya.

    Cara menghapus segala sesuatu setelah karakter tertentu

    Untuk menghapus teks setelah karakter tertentu, rumus umumnya adalah:

    KIRI( sel , CARI (" char ", sel ) -1)

    Di sini, kita menggunakan fungsi SEARCH untuk mendapatkan posisi karakter dan meneruskannya ke fungsi LEFT, sehingga mengekstrak jumlah karakter yang sesuai dari awal string. Satu karakter dikurangkan dari angka yang dikembalikan oleh SEARCH untuk mengecualikan pembatas dari hasil.

    Misalnya, untuk menghapus bagian dari string setelah koma, Anda memasukkan rumus di bawah ini di B2 dan menyeretnya ke bawah melalui B7:

    =KIRI(A2, CARI(",", A2) -1)

    Cara menghapus segala sesuatu sebelum karakter tertentu

    Untuk menghapus bagian dari string teks sebelum karakter tertentu, rumus umumnya adalah:

    KANAN( sel , LEN( sel ) - CARI (" char ", sel ))

    Di sini, kita kembali menghitung posisi karakter target dengan bantuan SEARCH, menguranginya dari total panjang string yang dikembalikan oleh LEN, dan meneruskan perbedaannya ke fungsi RIGHT, sehingga menarik banyak karakter dari ujung string.

    Misalnya, untuk menghapus teks sebelum koma, rumusnya adalah:

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

    Dalam kasus kami, koma diikuti oleh karakter spasi. Untuk menghindari spasi di depan dalam hasil, kami membungkus rumus inti dalam fungsi TRIM:

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

    Catatan:

    • Kedua contoh di atas mengasumsikan bahwa hanya ada satu contoh dari pembatas dalam string asli. Jika ada beberapa kejadian, teks akan dihapus sebelum/sesudah contoh pertama .
    • Fungsi SEARCH adalah tidak peka huruf besar-kecil yang berarti tidak ada perbedaan antara karakter huruf kecil dan huruf besar. Jika karakter spesifik Anda adalah huruf dan Anda ingin membedakan kasus hurufnya, maka gunakan peka huruf besar-kecil Fungsi FIND (TEMUKAN) alih-alih SEARCH (CARI).

    Cara menghapus teks setelah kemunculan karakter ke-N

    Dalam situasi ketika string sumber berisi beberapa contoh pembatas, Anda mungkin perlu menghapus teks setelah contoh tertentu. Untuk ini, gunakan rumus berikut:

    KIRI( sel , CARI("#", SUBSTITUTE( sel , " char ", "#", n )) -1)

    Di mana n adalah kemunculan karakter setelahnya untuk menghapus teks.

    Logika internal rumus ini mengharuskan penggunaan beberapa karakter yang tidak ada di mana pun dalam data sumber, simbol hash (#) dalam kasus kita. Jika karakter ini muncul dalam kumpulan data Anda, gunakan sesuatu yang lain sebagai pengganti "#".

    Misalnya, untuk menghapus segala sesuatu setelah koma ke-2 di A2 (dan koma itu sendiri), rumusnya adalah:

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

    Bagaimana formula ini bekerja:

    Bagian kunci dari rumus ini adalah fungsi FIND yang menghitung posisi pembatas ke-n (koma dalam kasus kita). Begini caranya:

    Kita mengganti koma ke-2 di A2 dengan simbol hash (atau karakter lain yang tidak ada dalam data Anda) dengan bantuan SUBSTITUTE:

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

    String yang dihasilkan masuk ke argumen ke-2 dari FIND, sehingga menemukan posisi "#" dalam string itu:

    TEMUKAN ("#", "Emma, Desain# (102) 123-4568")

    FIND memberitahu kita bahwa "#" adalah karakter ke-13 dalam string. Untuk mengetahui jumlah karakter sebelum itu, cukup kurangi 1, dan Anda akan mendapatkan 12 sebagai hasilnya:

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

    Nomor ini langsung menuju ke num_chars argumen dari LEFT memintanya untuk menarik 12 karakter pertama dari A2:

    = KIRI (A2, 12)

    Itu saja!

    Cara menghapus teks sebelum kemunculan karakter ke-N

    Rumus umum untuk menghapus substring sebelum karakter tertentu adalah:

    KANAN(PENGGANTI( sel , " char ", "#", n ), LEN( sel ) - TEMUKAN("#", SUBSTITUTE( sel , " char ", "#", n )) -1)

    Contohnya, untuk menghapus teks sebelum koma ke-2 di A2, rumusnya adalah:

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

    Untuk menghilangkan spasi di depan, kita kembali menggunakan fungsi TRIM sebagai pembungkus:

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

    Bagaimana formula ini bekerja:

    Singkatnya, kita mencari tahu berapa banyak karakter setelah pembatas ke-n dan mengekstrak substring dengan panjang yang sesuai dari kanan. Di bawah ini adalah rincian rumusnya:

    Pertama, kita mengganti koma ke-2 dalam A2 dengan simbol hash:

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

    String yang dihasilkan masuk ke teks argumen dari KANAN:

    RIGHT("Emma, Desain# (102) 123-4568", ...

    Selanjutnya, kita perlu mendefinisikan berapa banyak karakter yang akan diekstrak dari akhir string. Untuk ini, kita menemukan posisi simbol hash dalam string di atas (yaitu 13):

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

    Dan kurangi dari total panjang string (yang sama dengan 28):

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

    Perbedaannya (15) masuk ke argumen kedua RIGHT yang menginstruksikannya untuk menarik 15 karakter terakhir dari string di argumen pertama:

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

    Outputnya adalah substring " (102) 123-4568", yang sangat dekat dengan hasil yang diinginkan, kecuali spasi di depannya. Jadi, kami menggunakan fungsi TRIM untuk menghilangkannya.

    Cara menghapus teks setelah kemunculan karakter terakhir

    Jika nilai Anda dipisahkan dengan sejumlah variabel pembatas, Anda mungkin ingin menghapus semua yang ada setelah contoh terakhir dari pembatas tersebut. Ini dapat dilakukan dengan rumus berikut:

    KIRI( sel , CARI("#", SUBSTITUTE( sel , " char ", "#", LEN( sel ) - LEN(SUBSTITUTE( sel , " char ", "")))) -1)

    Misalkan kolom A berisi berbagai informasi tentang karyawan, tetapi nilai setelah koma terakhir selalu berupa nomor telepon. Tujuan Anda adalah menghapus nomor telepon dan menyimpan semua detail lainnya.

    Untuk mencapai tujuan, Anda bisa menghapus teks setelah koma terakhir di A2 dengan rumus ini:

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

    Salin rumus ke bawah kolom, dan Anda akan mendapatkan hasil ini:

    Bagaimana formula ini bekerja:

    Inti dari rumusnya adalah kita menentukan posisi pembatas terakhir (koma) dalam string dan menarik substring dari kiri ke pembatas. Mendapatkan posisi pembatas adalah bagian yang paling sulit, dan inilah cara kita menanganinya:

    Pertama, kita cari tahu berapa banyak koma yang ada dalam string asli. Untuk ini, kita mengganti setiap koma dengan tidak ada ("") dan menyajikan string yang dihasilkan ke fungsi LEN:

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

    Untuk A2, hasilnya adalah 35, yang merupakan jumlah karakter dalam A2 tanpa koma.

    Kurangi angka di atas dari total panjang string (38 karakter):

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

    ... dan Anda akan mendapatkan 3, yang merupakan jumlah total koma dalam A2 (dan juga nomor urut koma terakhir).

    Selanjutnya, Anda menggunakan kombinasi fungsi FIND dan SUBSTITUTE yang sudah dikenal untuk mendapatkan posisi koma terakhir dalam string. Nomor contoh (koma ke-3 dalam kasus kami) dipasok oleh rumus LEN SUBSTITUTE yang disebutkan di atas:

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

    Tampaknya koma ke-3 adalah karakter ke-23 di A2, yang berarti kita perlu mengekstrak 22 karakter sebelum itu. Jadi, kita meletakkan rumus di atas dikurangi 1 di dalam num_chars argumen dari KIRI:

    KIRI (A2, 23-1)

    Cara menghapus teks sebelum kemunculan karakter terakhir

    Untuk menghapus segala sesuatu sebelum contoh terakhir dari karakter tertentu, rumus umumnya adalah:

    KANAN( sel , LEN( sel ) - TEMUKAN("#", SUBSTITUTE( sel , " char ", "#", LEN( sel ) - LEN(SUBSTITUTE( sel , " char ", "")))))

    Dalam tabel contoh kita, untuk menghapus teks sebelum koma terakhir, rumusnya mengambil bentuk ini:

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

    Sebagai sentuhan akhir, kami menyarangkannya ke dalam fungsi TRIM untuk menghilangkan spasi terdepan:

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

    Bagaimana formula ini bekerja:

    Singkatnya, kita mendapatkan posisi koma terakhir seperti yang dijelaskan dalam contoh sebelumnya dan menguranginya dari total panjang string:

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

    Hasilnya, kita mendapatkan jumlah karakter setelah koma terakhir dan meneruskannya ke fungsi RIGHT, sehingga membawa karakter sebanyak itu dari akhir string.

    Fungsi kustom untuk menghapus teks di kedua sisi karakter

    Seperti yang telah Anda lihat pada contoh di atas, Anda dapat menyelesaikan hampir semua kasus penggunaan dengan menggunakan fungsi asli Excel dalam kombinasi yang berbeda. Masalahnya adalah Anda perlu mengingat beberapa rumus yang rumit. Hmm, bagaimana jika kita menulis fungsi kita sendiri untuk mencakup semua skenario? Kedengarannya seperti ide yang bagus. Jadi, tambahkan kode VBA berikut ke buku kerja Anda (langkah-langkah mendetail untuk memasukkan VBA di Excel adalahdi sini):

    Function HapusTeks(str As String , pembatas As String , kejadian As Integer , is_after As Boolean ) Dim pembatas_num, start_num, pembatas_len As Integer Dim str_hasil As String pembatas_num = 0 start_num = 1 str_hasil = "" pembatas_len = Len(pembatas) For i = 1 To kejadian pembatas_num = InStr(start_num, str, pembatas, vbTextCompare) If 0 <delimiter_num Then start_num =delimiter_num + delimiter_len End If Next i If 0 <delimiter_num Then If True = is_after Then str_hasil = Mid(str, 1, start_num - delimiter_len - 1) Else str_hasil = Mid(str, start_num) End If End If RemoveText = str_hasil End Function

    Fungsi kita dinamai HapusTeks dan memiliki sintaksis berikut ini:

    HapusTeks(string, pembatas, kejadian, is_after)

    Di mana:

    String - adalah string teks asli. Dapat diwakili oleh referensi sel.

    Pembatas - karakter sebelum/sesudah yang akan menghapus teks.

    Kejadian - contoh dari pembatas.

    Is_after - nilai Boolean yang mengindikasikan di sisi mana dari pembatas untuk menghapus teks. Bisa berupa karakter tunggal atau urutan karakter.

    • BENAR - menghapus segala sesuatu setelah pembatas (termasuk pembatas itu sendiri).
    • FALSE - menghapus semua yang ada sebelum pembatas (termasuk pembatas itu sendiri).

    Setelah kode fungsi dimasukkan ke dalam buku kerja Anda, Anda bisa menghapus substring dari sel menggunakan rumus yang ringkas dan elegan.

    Misalnya, untuk menghapus segala sesuatu setelah koma pertama di A2, rumus di B2 adalah:

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

    Untuk menghapus semua yang ada sebelum koma pertama di A2, rumus di C2 adalah:

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

    Karena fungsi kustom kita menerima sebuah string untuk pembatas , kita menaruh koma dan spasi (", ") dalam argumen ke-2 untuk menghindari kesulitan pemangkasan spasi di depan setelahnya.

    Fungsi kustom kami bekerja dengan indah, bukan? Tetapi jika Anda berpikir bahwa itu adalah solusi komprehensif, Anda belum melihat contoh berikutnya :)

    Menghapus segala sesuatu sebelum, sesudah atau di antara karakter

    Untuk mendapatkan lebih banyak opsi untuk menghapus karakter atau teks individual dari beberapa sel, berdasarkan kecocokan atau posisi, tambahkan Ultimate Suite kami ke kotak alat Excel Anda.

    Di sini, kita akan melihat lebih dekat pada Hapus berdasarkan Posisi fitur yang terletak pada Data Ablebits tab> Teks kelompok> Hapus .

    Di bawah ini, kita akan membahas dua skenario yang paling umum.

    Menghapus segala sesuatu sebelum atau sesudah teks tertentu

    Misalkan semua string sumber Anda berisi beberapa kata atau teks yang sama dan Anda ingin menghapus semua sebelum atau sesudah teks itu. Untuk menyelesaikannya, pilih data sumber Anda, jalankan perintah Hapus berdasarkan Posisi dan mengkonfigurasinya seperti yang ditunjukkan di bawah ini:

    1. Pilih Semua karakter sebelum teks atau Semua karakter setelah teks dan ketik teks kunci (atau karakter) dalam kotak di sampingnya.
    2. Tergantung pada apakah huruf besar dan huruf kecil harus diperlakukan sebagai karakter yang berbeda atau sama, centang atau hapus centang pada Peka huruf besar-kecil kotak.
    3. Memukul Hapus .

    Dalam contoh ini, kita menghapus semua karakter yang mendahului kata "error" di sel A2:A8:

    Dan mendapatkan hasil yang persis seperti yang kita cari:

    Menghapus teks di antara dua karakter

    Dalam situasi ketika informasi yang tidak relevan berada di antara 2 karakter tertentu, berikut ini cara Anda dapat menghapusnya dengan cepat:

    1. Pilih Hapus semua substring dan ketik dua karakter dalam kotak di bawah ini.
    2. Jika karakter "between" juga harus dihilangkan, periksa Termasuk pembatas kotak.
    3. Klik Hapus .

    Sebagai contoh, kita menghapus semua yang berada di antara dua karakter tilde (~), dan mendapatkan string yang telah dibersihkan dengan sempurna sebagai hasilnya:

    Untuk mencoba fitur-fitur berguna lainnya yang disertakan dengan alat multi-fungsi ini, saya menganjurkan Anda untuk mengunduh versi evaluasi di akhir posting ini. Terima kasih telah membaca dan berharap untuk melihat Anda di blog kami minggu depan!

    Unduhan yang tersedia

    Hapus karakter pertama atau terakhir - contoh (file .xlsm)

    Ultimate Suite - versi percobaan (file .exe)

    Michael Brown adalah penggemar teknologi berdedikasi dengan hasrat untuk menyederhanakan proses kompleks menggunakan perangkat lunak. Dengan pengalaman lebih dari satu dekade di industri teknologi, dia telah mengasah keahliannya di Microsoft Excel dan Outlook, serta Google Spreadsheet dan Dokumen. Blog Michael didedikasikan untuk berbagi pengetahuan dan keahliannya dengan orang lain, memberikan tip dan tutorial yang mudah diikuti untuk meningkatkan produktivitas dan efisiensi. Apakah Anda seorang profesional berpengalaman atau pemula, blog Michael menawarkan wawasan berharga dan saran praktis untuk mendapatkan hasil maksimal dari perangkat lunak penting ini.