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:
=IF(AND(LEFT(I2,2)="IN",OR(RIGHT(I2,1)="B",RIGHT(I2,1)="1",RIGHT(I2,1)="4",RIGHT(I2,1)="6")),1,0)
Formula alternatif adalah:
=IFERROR((LEFT(I2,2)="IN")*(SEARCH(RIGHT(I2,1)," 416b")>1),0)
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 sebagai 1
dan 0
, masing-masing. Jadi, jika kedua tes itu benar hasilnya adalah 1
sebaliknya 0
.
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, atau 0
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, di Data Tools
grup, klik Text 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:
=INDEX(I2:M2,MATCH(1,D2:H2,0))
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.