Rumus untuk mencari kata dalam kalimat

Berikut ini Contoh file lembar Google https://docs.google.com/spreadsheets/d/1B0CQyFeqxg2wgYHJpFxLIzw_8Pv067p0cwacWk0Nc4o/edit?usp=sharing

Saya memiliki Lembar Excel di mana saya perlu menemukan Kata-kata Arab dan memisahkannya.

Misalnya saya punya data seperti ini:

//olyservice/GIS-TANSIQ01/Storage/46-أمانة منطقة عسير -بلدية بللحمر/حدود القري المطلوب اعتمادهاالمعتمد مسمايتها بالوزارة.rar

Saya mencari:

  • Kolom pertama: أمانة منطقة عسير
  • Kolom ke-2: بلدية بللحمر
  • Kolom ke-3: RAR

Jika tidak ada kata أمانة dan بلدية, kolomnya harus dikosongkan.

Saya mencoba metode ini, namun tidak berhasil:

=RIGHT(MID(A2,FIND("-",A2,20)+1,255),25)

Dan

=TRIM(MID(SUBSTITUTE(A2,"",REPT(" ",99)),MAX(1,FIND("-",SUBSTITUTE(A2,"",REPT(" ",99)))+21),99))

person Skorpion    schedule 07.11.2019    source sumber
comment
Situs web ini mengharuskan Anda untuk menyertakan upaya Anda sendiri juga. Lihat Cara Bertanya pertanyaan dengan contoh minimal yang dapat direproduksi.   -  person JvdV    schedule 07.11.2019
comment
Pertanyaan Anda tidak jelas bagi saya karena sepertinya ada sepuluh kata dalam bahasa Arab. Apakah Anda mencari kata-kata tertentu? Kata-kata di lokasi tertentu?   -  person Ron Rosenfeld    schedule 07.11.2019
comment
أمانة منطقة عسير -بلدية بللحمر lihat dua ini sebelum - akan muncul di 1 kolom dan setelah kolom - kata akan muncul di kolom lain   -  person Skorpion    schedule 07.11.2019
comment
Versi Excel apa yang Anda gunakan?   -  person Ron Rosenfeld    schedule 07.11.2019


Jawaban (1)


Karena Anda menentukan kata kunci tertentu untuk ditemukan, kami dapat mencari kata kunci tersebut dan kemudian pembatas yang relevan, berdasarkan contoh Anda.

Dalam contoh Anda, أمانة diikuti dengan tanda hubung, dan بلدية dengan garis miring. (diikuti oleh dalam kaitannya dengan orientasi kata-kata Arab dari kanan ke kiri).

Coba ini:

Col1: =MID(A1,FIND("أمانة",A1),FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),LEN(A1) - LEN(SUBSTITUTE(A1,"-",""))))-FIND("أمانة",A1))

Col2:  =MID(A1,FIND("بلدية",A1),FIND(CHAR(1),SUBSTITUTE(A1,"/",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))-FIND("بلدية",A1))

Col3:  =TRIM(RIGHT(SUBSTITUTE(A1,".",REPT(" ",99)),99))

Jika kata kunci tidak ditemukan, rumus akan menghasilkan Error. Jadi Anda cukup "membungkus" rumus tersebut dalam IFERROR agar rumusnya kosong jika kata kuncinya tidak ada.

Sunting:

Buku kerja sebenarnya tidak memiliki pola yang sama dengan sampel yang Anda posting. Secara khusus. Coba ini untuk data kolom 2:

=MID(A2,FIND("بلدية",A2),99)

atau dengan penekanan kesalahan:

Col1:  =IFERROR(MID(A2,FIND("أمانة",A2),FIND("-",A2,FIND("أمانة",A2))-FIND("أمانة",A2)),"")

Col2:  =IFERROR(MID(A2,FIND("بلدية",A2),99),"")

Dan, sel yang masih mengembalikan kesalahan #VALUE! tidak memiliki kata kunci tersebut di barisnya.

Misalnya:

A6: //olyservice/GIS-TANSIQ01/Storage/103-أمانة منطقة عسير -أحد رفيدة

tidak mengandung بلدية

BTW, rumus-rumus itu sepertinya juga berfungsi di Spreadsheet.

Sunting2:

Karena Anda juga memposting contoh di Spreadsheet, jika Anda dapat menerapkannya di Spreadsheet, Anda dapat menggunakan Ekspresi Reguler untuk memperhitungkan beberapa penghentian.

Dalam hal ini, Anda akan menggunakan:

=iferror(REGEXEXTRACT(A2,"(أمانة.*?)\s*(?:[-/\\.]|$)"),"")

or

iferror(REGEXEXTRACT(A2,"(بلدية.*?)\s*(?:[-/\\.\w]|$)"),"")

untuk kolom.

Regex mengekstrak pola yang dimulai dengan frase kunci, hingga terminator yang dapat berupa karakter apa pun dalam kumpulan -/\.A-Za-z0-9 atau akhir baris. Tampaknya hal tersebut mencakup contoh di lembar kerja contoh Anda, namun jika ada terminator lain, Anda bisa menambahkannya ke urutan.

Di Excel, ini memerlukan VBA UDF untuk mengimplementasikan mesin Regex.

masukkan deskripsi gambar di sini

person Ron Rosenfeld    schedule 07.11.2019
comment
Ini berhasil tetapi sebagian besar mendapatkan Error #Value mereka memiliki kata yang saya cari, bisakah saya membagikan file dan melihat di mana kesalahan saya?? - person Skorpion; 07.11.2019
comment
@Skorpion Apakah ini file Excel? Referensi file yang Anda posting, menurut saya, adalah file Google Sheets, dan sepertinya penanganannya dari kanan ke kiri berbeda. - person Ron Rosenfeld; 07.11.2019
comment
Ya, file Excel-nya, bisakah saya memberi Anda tautan Gdrive ?? - person Skorpion; 07.11.2019
comment
@Skorpion Ya, silakan - person Ron Rosenfeld; 07.11.2019
comment
Oke beri saya waktu sebentar - person Skorpion; 07.11.2019
comment
Silakan temukan tautan drive.google.com/ - person Skorpion; 07.11.2019
comment
Anda juga dapat mengunduh dari Google sheet, saya izinkan Anda ... - person Skorpion; 07.11.2019
comment
@Skorpion Lihat Suntingan saya - person Ron Rosenfeld; 08.11.2019
comment
sampai baris 155 baik-baik saja setelah ada masalah di Kolom R dan Di kolom P sebagian besar memiliki أمانة منطقة عسير -ب - dan kemudian satu kata - person Skorpion; 08.11.2019
comment
@Skorpion Anda memiliki banyak pola dalam data Anda yang sulit untuk dipilah. Setelah Anda menentukan semua pola yang mungkin, solusinya akan lebih sederhana. Sejauh ini satu-satunya pola pasti yang Anda tampilkan adalah frasa tersebut harus dimulai dengan بلدية atau أمانة. Namun sepertinya ungkapan tersebut dapat diakhiri dengan berbagai karakter. Anda perlu memeriksa data Anda dengan cermat untuk memastikan Anda telah memperhitungkan semua kemungkinan. Maka akan menjadi relatif sederhana untuk merancang formula yang lebih dapat diandalkan. Atau, jika ada akhiran yang tidak unik, putuskan bahwa diperlukan algoritma yang berbeda. - person Ron Rosenfeld; 08.11.2019
comment
@Skorpion Lihatlah implementasi yang berfungsi di Spreadsheet. Untuk yang setara di Excel, Anda memerlukan VBA. - person Ron Rosenfeld; 08.11.2019
comment
Terima kasih Ron Rosefeld Terima kasih - person Skorpion; 08.11.2019
comment
comment
@Skorpion Selain itu, sudahkah Anda memeriksa data asli Anda untuk memastikan bahwa rumus Spreadsheet akan berfungsi? Tahukah Anda cara menambahkan fungsi yang ditentukan pengguna ke Excel? (Anda belum menggunakan tag VBA pada pertanyaan Anda). Itu adalah hal-hal yang perlu Anda lakukan terlebih dahulu. - person Ron Rosenfeld; 08.11.2019