Formula Excel Mengambil Kata Setelah Karakter Tertentu
Khususnya adalah kata (atau kalimat) setelah karakter (tertentu) yang terakhir ditemukan. Misal mengambil judul artikel dari pranala https://basangdata.com/python-menjumlahkan-baris-tertentu-pada-semua-sheet-excel menjadi python-menjumlahkan-baris-tertentu-pada-semua-sheet-excel.
setelah mempelajari file Excel ini, kita tahu delimiter (pembatas) dari tiap-tiap informasi adalah tanda / karena itu sebuah formula dapat dibuat dengan syarat mengetahui posisi terakhir tanda tersebut, lalu formula tersebut mengambil semua karakter setelah posisi tersebut.
Jika Anda tertarik bagaimana menyelesaikan ini dengan Python, silahkan gunakan Notebook ini. Pada tulisan ini kita akan menggunakan cara yang lebih portable, formula Excel (meski dapat pula diterapkan pada teknologi lain seperti Google Sheets).
Kita akan menggunakan formula yang digunakan oleh Excel University di sini. Berikut langkah kerja yang diperlukan.
#1. Mengetahui berapa jumlah tanda / pada teks, dengan begitu kita dapat menentukan tanda / keberapa yang kita tuju. Caranya adalah dengan menghitung panjang teks dikurangi panjang teks jika tanpa tanda /. Formula yang diketikkan pada C2 adalah =LEN(B2) - LEN(SUBSTITUTE(B2, "/", ""))
. Pada baris 2, formula tersebut akan menghasilkan 7, artinya terdapat tujuh tanda / dalam teks.
Langkah #1 tidak diperlukan jika teks selalu berisi 7 (atau angka berapapun) delimiter (tanda /), cukup menggunakan angka 7 pada langkah berikutnya. Kita membutuhkan langkah #1 saat tidak mengetahui ada berapa banyak delimiter dalam suatu teks.
#2. Ganti delimiter terakhir dengan karakter unik yang tidak akan muncul pada bagian lain teks, Excel University menggunakan tanda $, kita akan mengikuti karena pada teks kita tidak ada yang mengandung karakter tersebut. Gunakan formula SUBSTITUTE untuk tugas ini, pada formula tersebut terdapat parameter keempat yaitu occurence number yang dapat diisi dengan C2 atau angka 7 yang didapatkan dari langkah sebelumnya. Formula pada D2 adalah =SUBSTITUTE(B2, "/", "$", C2)
. Formula tersebut bermakna pada teks di B2 ganti tanda / menjadi $ namun hanya tanda / ketujuh saja.
#3. Cari posisi tanda $ pada teks dari langkah #2, pada E2 menggunakan formula =SEARCH("$", D2)
. Hasilnya adalah 44.
#4. Hitung panjang karakter setelah tanda $ dari langkah #2, pada F2 gunakan formula =LEN(D2) - E2
.
#5. Ambil semua teks setelah tanda $, pada G2 formulanya =RIGHT(D2, F2)
.
Langkah selanjutnya adalah menggabungkan kelima langkah tersebut, dengan urutan dikerjakan dari langkah terakhir (langkah #5), prosedur lengkapnya.
#a. Langkah #5 Ganti parameter pertama dengan teks asli di B2. Formula pada H2 =RIGHT(B2, F2)
.
#b. Ganti F2 pada langkah #a dengan langkah #4, formula pada I2 adalah =RIGHT(B2, LEN(D2) - E2)
.
#c. Ganti E2 pada langkah #b dengan langkah #3, formula pada J2 adalah =RIGHT(B2, LEN(D2) - SEARCH("$", D2))
.
#d. Ganti D2 pada langkah #c dengan langkah #2, formula pada K2 adalah =RIGHT(B2, LEN(SUBSTITUTE(B2, "/", "$", C2)) - SEARCH("$", SUBSTITUTE(B2, "/", "$", C2)))
.
#e. Ganti C2 pada langkah #d dengan langkah #1, formula pada L2 adalah =RIGHT(B2, LEN(SUBSTITUTE(B2, "/", "$", LEN(B2) - LEN(SUBSTITUTE(B2, "/", "")))) - SEARCH("$", SUBSTITUTE(B2, "/", "$", LEN(B2) - LEN(SUBSTITUTE(B2, "/", "")))))
.
Dengan demikian formula yang dapat digunakan adalah =RIGHT(B2, LEN(SUBSTITUTE(B2, "/", "$", LEN(B2) - LEN(SUBSTITUTE(B2, "/", "")))) - SEARCH("$", SUBSTITUTE(B2, "/", "$", LEN(B2) - LEN(SUBSTITUTE(B2, "/", "")))))
.
Untuk saya lebih mudah membuat kode Python sebanyak sepuluh baris ketimbang harus membuat formula yang rumit begitu. Untuk membuatnya (formula tersebut) saja saya perlu jembatan keledai sebanyak sepuluh langkah. Selain itu makin kompleks suatu algoritma, seperti formula tadi, dan sebagai bonus susah dipahami, maka makin besar kemungkinan terjadi logic error.
Tapi formula Excel tersebut menawarkan portabilitas yang tidak dimiliki Python, formula tersebut dijamin dapat dikerjakan oleh Excel (dan teknologi spreadsheet lain) tanpa perlu memasang perangkat tambahan apapun.
Pada akhirnya memang tidak ada silver bullet, satu solusi untuk semua hal. Kebenaran tidak hadir dalam satu wajah, bisa sangat variatif bergantung kondisi, pengetahuan dan lainnya.
Salam.
Update 9 Desember 2019
Karena telah belajar membuat Add-in, penulis membuat sebuah Add-in sederhana untuk mengambil kata setelah karakter tertentu. Kode VBA yang digunakan adalah.
Function Ambil_Kata(Phrase As String, Delimiter As String, n As Integer) As String
Dim Phrase_Arr() As String
Phrase_Arr() = Split(Phrase, Delimiter)
If n = -1 Then
Ambil_Kata = Phrase_Arr(UBound(Phrase_Arr))
ElseIf n = 0 Then
Ambil_Kata = Phrase_Arr(n)
Else
Ambil_Kata = Phrase_Arr(n - 1)
End If
End Function
Simpan sebagai AmbilKata.xlam kemudian penggunaannya sebagai formula adalah.
=ambil_kata(A1;"/";-1)
Penggunaan formula ambil_kata adalah ambil_kata(teks yang diambil; pemisah yang digunakan; posisi kata yang diambil). Pemisah dapat berupa spasi (” “), koma (“,”) atau seperti pada contoh, garis miring(“/”). Sedang Posisi kata, angka, yang diambil dapat menggunakan:
- n: kata ke-n
- 0: kata paling kiri/pertama
- 1: kata paling kiri/pertama
- -1: kata paling kanan/terakhir
Jika tidak berminat menulis kode VBA dan ingin langsung menggunakan, Add-in AmbilKata.xlam dapat diunduh di sini.
Cover Photo by Peter Fogden on Unsplash
Ada kontak yang bisa dihubungi mas? saya mau diskusi soal formula yang mas buat di artikel ini.
Terima kasih
Silahkan email ke ba********@gm***.com atau diskusi di Grup Excel Indonesia di Telegram https://t.me/excelid