Saya memiliki spreadsheet Excel yang berisi daftar string. Setiap string terdiri dari beberapa kata, tetapi jumlah kata dalam setiap string berbeda.
Menggunakan fungsi Excel bawaan (tanpa VBA), apakah ada cara untuk mengisolasi kata terakhir di setiap string?
Contoh:
Apakah Anda diklasifikasikan sebagai manusia? -> manusia? Negatif, saya adalah es loli daging -> es loli Aziz! Cahaya! -> Cahaya!
excel
excel-formula
e.James
sumber
sumber
Jawaban:
Yang ini sudah diuji dan bekerja (berdasarkan posting asli Brad):
Jika string asli Anda dapat berisi pipa "|" karakter, lalu ganti keduanya di atas dengan beberapa karakter lain yang tidak akan muncul di sumber Anda. (Saya menduga asli Brad rusak karena karakter yang tidak patut dihapus dalam terjemahan).
Bonus: Cara kerjanya (dari kanan ke kiri):
LEN(A1)-LEN(SUBSTITUTE(A1," ",""))
- Hitungan spasi dalam string asliSUBSTITUTE(A1," ","|", ... )
- Mengganti hanya ruang akhir dengan a|
FIND("|", ... )
- Menemukan posisi absolut dari yang diganti|
(itu adalah ruang final)Right(A1,LEN(A1) - ... ))
- Mengembalikan semua karakter setelah itu|
EDIT: untuk menjelaskan kasus di mana teks sumber tidak mengandung spasi, tambahkan yang berikut ke awal rumus:
buat seluruh rumus sekarang:
Atau Anda dapat menggunakan
=IF(COUNTIF(A1,"* *")
sintaks versi lain.Ketika string asli mungkin berisi spasi di posisi terakhir tambahkan fungsi trim sambil menghitung semua spasi: Jadikan fungsi sebagai berikut:
sumber
Ini adalah teknik yang saya gunakan dengan sangat sukses:
Untuk mendapatkan kata pertama dalam sebuah string, cukup ubah dari KANAN ke KIRI
Juga, ganti A1 dengan sel yang memegang teks.
sumber
" "
dengan pembatas saya. Keduanya100
sepertinya membatasi hingga 100 karakter jika saya tidak salah=TRIM(SUBSTITUTE(RIGHT(SUBSTITUTE(A1, ".", REPT(".", 100)), 100), ".", ""))
Versi jawaban Jerry yang lebih kuat:
Itu bekerja terlepas dari panjang tali, ruang depan atau belakang, atau apa pun dan itu masih cukup pendek dan sederhana.
sumber
=TRIM(RIGHT(SUBSTITUTE(TRIM(A1), ".", REPT(" ", LEN(TRIM(A1)))), LEN(TRIM(A1))))
untuk mendapatkan ekstensi file.SUBSTITUTE
memungkinkan untuk bekerja untuk karakter apa pun, bukan hanya spasi.=TRIM(SUBSTITUTE(RIGHT(SUBSTITUTE(TRIM(A1),"/",REPT("/",LEN(TRIM(A1)))),LEN(TRIM(A1))),"/",""))
, di mana "/" adalah karakter pembatas." ; "
(a semi-colon dikelilingi oleh spasi) dengan nilai masukan:"Technology Sprint 24 ; Sprint 4"
ia mengembalikan:"; Sprint 4"
. Saya menggunakan solusi addapted oleh: @PProteus.TRIM(A1)
dengan:TRIM(SUBSTITUTE(A1, "strDelimeter", ";"))
di semua tempat, untuk memiliki pembatas karakter baru:";"
atau bahkan lebih baik menggunakanchar()
fungsi untuk menemukan beberapa karakter yang benar-benar tak terduga.TRIM
fungsi setelah menambahkan yang keduaSUBSTITUTE
untuk solusi karakter tunggal kasus umum. Formula memberikan hasil yang diharapkan menghilangkan bagian ini:=SUBSTITUTE(RIGHT(SUBSTITUTE(TRIM(A1),";",REPT(";",LEN(TRIM(A1)))),LEN(TRIM(A1))),";","")
Saya menemukan ini di google, diuji di Excel 2003 & itu berfungsi untuk saya:
[sunting] Saya tidak punya cukup perwakilan untuk berkomentar, jadi ini sepertinya tempat terbaik ... Jawaban BradC juga tidak bekerja dengan spasi tambahan atau sel kosong ...
[sunting ke-2] sebenarnya, itu tidak berfungsi untuk kata tunggal baik ...
sumber
Ini sangat kuat - ini berfungsi untuk kalimat tanpa spasi, spasi awal / spasi, banyak spasi, banyak spasi depan / akhir ... dan saya menggunakan char (7) untuk pembatas daripada bilah vertikal "|" kalau-kalau itu adalah item teks yang diinginkan.
sumber
Ini sangat bersih dan ringkas, dan berfungsi dengan baik.
Itu tidak kesalahan jebakan tanpa spasi atau satu kata, tapi itu mudah ditambahkan.
Sunting:
Ini menangani spasi tambahan, kata tunggal, dan skenario sel kosong. Saya belum menemukan cara untuk memecahkannya.
sumber
sumber
Untuk menambah jawaban Jerry dan Joe, jika Anda ingin menemukan teks SEBELUM kata terakhir yang dapat Anda gunakan:
Dengan 'Kucing kecil saya' di A1 akan menghasilkan 'Kucing kecil saya' (di mana Joe dan Jerry akan memberikan 'kucing'
Dengan cara yang sama seperti Jerry dan Joe mengisolasi kata terakhir, ini kemudian hanya mendapatkan segalanya di sebelah kiri itu (kemudian memotongnya kembali)
sumber
Bayangkan string bisa dibalik. Maka itu sangat mudah. Alih-alih mengerjakan string:
kamu bekerja dengan
Dengan
=LEFT(A1;FIND(" ";A1)-1)
dalam A2 Anda dapatkan"My"
dengan (1) dan"tac"
dengan (2), yang terbalik"cat"
, kata terakhir dalam (1).Ada beberapa VBA di sekitar untuk membalikkan string. Saya lebih suka fungsi VBA publik
ReverseString
.Instal di atas seperti yang dijelaskan. Kemudian dengan string Anda di A1, misalnya,
"My little cat"
dan fungsi ini di A2:Anda akan melihat
"cat"
di A2.Metode di atas mengasumsikan bahwa kata-kata dipisahkan oleh kosong. The
IF
klausul bagi sel-sel yang mengandung kata-kata tunggal = tidak ada kekosongan dalam sel. Catatan:TRIM
danCLEAN
string asli juga berguna. Pada prinsipnya itu membalik seluruh string dari A1 dan hanya menemukan kosong pertama dalam string terbalik yang di sebelah kata (terbalik) terakhir (yaitu,"tac "
).LEFT
mengambil kata ini dan pembalikan string lain menyusun kembali urutan asli kata (" cat"
). Pada-1
akhirFIND
pernyataan menghapus kosong.Idenya adalah bahwa mudah untuk mengekstrak kata pertama (!) Dalam string dengan
LEFT
danFIND
memasukkan kata pertama. Namun, untuk kata terakhir (!),RIGHT
Fungsinya adalah pilihan yang salah ketika Anda mencoba melakukan itu karena sayangnya FIND tidak memiliki bendera untuk arah yang Anda inginkan untuk menganalisis string Anda.Oleh karena itu seluruh string dibalik.
LEFT
danFIND
bekerja seperti biasa tetapi string yang diekstraksi terbalik. Tapi itu bukan masalah besar setelah Anda tahu cara membalikkan string.ReverseString
Pernyataan pertama dalam rumus melakukan pekerjaan ini.sumber
sumber
Salin ke dalam kolom, pilih kolom itu dan HOME> Editing> Temukan & Pilih, Ganti:
Replace All.
Ada spasi setelah tanda bintang.
sumber
Saya menerjemahkan ke PT-BR, karena saya juga membutuhkannya.
(Harap dicatat bahwa saya telah mengubah spasi menjadi
\
karena saya hanya memerlukan nama file dari string path.)sumber
Cara lain untuk mencapai ini adalah seperti di bawah ini
sumber
Saya juga punya tugas seperti ini dan ketika saya selesai, menggunakan metode di atas, metode baru terjadi pada saya: Mengapa Anda tidak melakukan ini:
Bagaimana ini terdengar?
sumber