Saya mencari rumus untuk mencari "kata" dengan pola huruf tertentu, seperti INNSA1
atau INMAA4
atau INPTPB
, di mana kata dimulai dengan IN
dan diakhiri dengan 4
, 1
, 6
, atau B
. Kata-katanya selalu tepat enam karakter dan huruf-hurufnya bisa huruf besar atau kecil.
Kumpulan sel Excel masing-masing berisi kalimat di mana satu atau lebih kata-kata tersebut akan ditemukan (selalu setidaknya satu). Sebagai contoh:
- Lokasi Kustom saya adalah INNSA1
- Saya bekerja di INMAA4
- Saya ingin pergi ke INDEL6
- INNSAB ADALAH LOKASI PAPAN
Kata (atau kata-kata, jika lebih dari satu), dapat berada pada posisi apa pun dalam kalimat. Kata-kata target akan selalu menjadi kata-kata yang terpisah, bukan bagian dari kata yang lebih besar.
Untuk setiap kalimat (yaitu, sel), saya ingin mencari keberadaan kata yang cocok dengan pola huruf yang dijelaskan, dan mengembalikan kata ini sebagai nilai.
IN
, dan diakhiri dengan4, 1, 6
, ataub
), yang dapat ditemukan di mana saja dalam "kalimat" tetapi dibatasi oleh ruang atau tanda baca, yang terkandung dalam satu sel? Apakah selalu berupa "kata" yang terpisah atau bisakah itu string karakter yang tertanam dalam "kata" yang lebih panjang? (lanjutan)Jawaban:
Ini hanyalah contoh yang bisa Anda adaptasi dengan skema Anda.
Dengan data dari A2 ke A26 , di B2 masukkan:
dan salin ke bawah:
Seperti yang Anda lihat, setiap item data "baik" ditandai dengan indeks berurutan sederhana.
sumber
Ada banyak cara untuk melakukan setiap bagian dari masalah, tetapi kombinasi persyaratan menunjuk pada satu pendekatan yang sederhana dan mudah, atau solusi VBA. Solusi non-VBA menggunakan kolom pembantu. Tata letak spreadsheet Anda tidak diketahui, seperti faktor-faktor lain, seperti jumlah kalimat dan jumlah hasil yang mungkin, dan bagaimana Anda perlu dan ingin menggunakan hasilnya. Jadi jawaban ini akan menjadi pedoman yang lebih umum daripada solusi spesifik.
Menggunakan fungsi, akan sulit untuk mencari kalimat yang berpotensi lebih dari satu target. Pendekatan yang lebih sederhana adalah memecah kalimat menjadi kata-kata dan kemudian memeriksa kata-kata. Cara sederhana untuk mem-parsing kalimat adalah dengan wizard Konversi Teks Ke Kolom bawaan.
Dengan asumsi kalimat dalam kolom A, biarkan beberapa kolom berikutnya kosong untuk hasil Anda. Dengan begitu, hasil Anda akan selalu berada di lokasi yang diketahui, terlihat di sebelah data Anda. Saya akan mengasumsikan maksimum dua, sehingga kolom B dan C akan berisi nilai hasil.
Gambarlah jumlah kata maksimum yang bisa ada dalam kalimat, dan cadangan bahwa banyak kolom berikutnya untuk kolom pembantu. Ini akan digunakan untuk menguji setiap kata. Katakanlah Anda mengizinkan lima kata. Kolom D: H akan berisi rumus yang masing-masing menunjuk ke kolom I: M.
Katakanlah baris 2 adalah baris data pertama Anda, jadi rumus pertama akan berada di D2, menunjuk ke I2. Rumusnya akan mirip dengan yang disarankan oleh Siswa Gary:
Formula alternatif adalah:
Itu hanya memberi Anda beberapa ide tentang bagaimana cara mengetahui apakah kata target sesuai dengan pola. Rumus kedua menggunakan SEARCH (karena tidak peka huruf besar-kecil), untuk melihat apakah karakter terakhir ada dalam daftar Anda. Menguji dua karakter pertama untuk
IN
, dan karakter terakhir, masing-masing menghasilkan True atau False, yang diperlakukan oleh Excel sebagai1
dan0
, masing-masing. Jadi, jika kedua tes itu benar hasilnya adalah1
sebaliknya0
.Dalam ekspresi SEARCH, saya mulai dengan blank dan menguji hasilnya> 1. Alasan saya melakukan ini adalah karena saya menggunakan MS Office Online untuk mengujinya, dan ia berpikir karakter paling kanan dari sel kosong ditemukan di posisi 1 dari string tes.
Jika SEARCH tidak menemukan yang cocok, itu mengembalikan kesalahan, jadi membungkus rumus di IFERROR memastikan bahwa setiap kata yang tidak cocok akan menghasilkan
0
.Jadi salah satu rumus kembali
1
jika kata itu sesuai dengan pola Anda, atau0
jika tidak (atau jika sel targetnya kosong).Masukkan salah satu rumus di D2, dan seret atau salin melintasi ke H2, dan ke bawah ke baris terakhir yang Anda butuhkan.
Untuk mengisi sel target, pilih semua data di kolom A, dan salin dan tempel ke dalam kolom I (Teks ke Kolom menimpa data dan mulai di kolom data). Pilih data di kolom I. Pada
Data
tab, diData Tools
grup, klikText to Columns
. Anda akan mendapatkan panduan yang cukup jelas.Katakan itu data dibatasi, dan pilih
space
sebagai pembatas. Ini akan memberi Anda pratinjau tentang bagaimana menurut Anda Anda ingin menguraikan kata-kata. Ketika Anda menyelesaikan wizard itu akan menempatkan setiap kata di sel berturut-turut di baris.Rumus Anda dalam D: H harus menunjukkan setidaknya satu
1
di setiap baris. Itu adalah kata-kata Anda, dan kolomnya berada pada posisi relatif yang sama dengan kata yang diurai.Untuk mendapatkan nilai kata pertama di kolom B, gunakan INDEX dan MATCH untuk menemukan yang pertama
1
di baris dalam D: H dan mengambil nilai yang sesuai dari baris yang sama di I: M. Misalnya, B2 adalah:Ini mengambil nilai dari sel di I2: M2 yang sesuai dengan tempat yang sama persis
1
ditemukan di D2: H2.Untuk mendapatkan nilai berikutnya untuk kolom C (dan seterusnya jika ada lebih dari dua), ada sejumlah solusi untuk menemukan pencocokan Nth
1
. Berikut ini tautan ke satu metode.sumber