Ada formula yang umum dipakai juga. Mungkin agak ndesit tapi mangfangat.
Misal teks di B5
=TRIM(LEFT(RIGHT(SUBSTITUTE(B5," ",REPT(" ",LEN(B5))),3*LEN(B5)),LEN(B5)))
>> SUBSTITUTE(B5," ",REPT(" ",LEN(B5)) akan membuat semua spasi berganti dengan spasi sejumlah panjang teks.
>> kemudian dikenai : fungsi Right
RIGHT(SUBSTITUTE(B5," ",REPT(" ",LEN(B5))),3*LEN(B5))
dengan 3*LEN(B5) adalah jumlah karakter yang perlu diambil. Ingin mengambil kata ke-3 dari belakang, maka Right dengan panjang 3 kali panjang teks.
>> karena isinya masih ada kata-kata berikutnya, maka fungsi Left hadir menjadi premannya dalam aksi :
LEFT(RIGHT(SUBSTITUTE(B5," ",REPT(" ",LEN(B5))),3*LEN(B5)),LEN(B5))
karena ingin mengambil 1 kata saja, maka panjang yang diambil cukup 1*LEN(B5) yang equal dengan LEN(B5)
>> pahlawan terakhir adalah fungsi Trim yang bertugas menyapu habis seluruh ranjau spasi diluar teks.
Sepaket tokoh nasional teks tersebut (Left, Right, Substitute, Trim, Rept, Len ~ si Mid dkk yang lain lagi tugas negara ditempat lain), sering digunakan dalam membantu proses parse.
Formula diatas ada batasannya, yaitu, adanya double spasi pada teks yang akan di-parse (isi cell B5), atau ketika ada penyusup seperti karakter tersembunyi.
Regards.
Kid.
mumpung bisa online dengan pc....
(1) lampiran disusulkan
(2) code diperbaiki dikitts,,
Function KataKe(S As String, i As Integer) As String
' siti Vi / 8 dec 2010
Dim ArrKata As Variant, S1 As String
S1 = Replace(Replace(Trim(S), ",", ""), ".", "")
ArrKata = Split(S1, " ")
KataKe = ArrKata(UBound(ArrKata) + 1 - i)
End Function
(3) jika tidak suka makro, pakai array formula biasa
=MID(B16,
LARGE((MID(B16,ROW(INDIRECT("1:"&LEN(B16))),1)=" ")*ROW(INDIRECT("1:"&LEN(B16))),3)+1,
LARGE((MID(B16,ROW(INDIRECT("1:"&LEN(B16))),1)=" ")*ROW(INDIRECT("1:"&LEN(B16))),2)-
LARGE((MID(B16,ROW(INDIRECT("1:"&LEN(B16))),1)=" ")*ROW(INDIRECT("1:"&LEN(B16))),3)-1)
maaf kalau tidak berkenan2010/12/8 STDEV(i) <setiyowati.devi@gmail.com>kalo tidak alergi makro UDF, formula-nya jadi sederhana ditulis di sheet begini:
=KataKe(B2; 3)
B2 adalah cel berisi 'kalimat' yg mauk diproses.
VBA-Code di module umum sbb:
Function KataKe(s As String, i As Integer) As String
Dim ArS
ArS = Split(s, " ")
KataKe = ArS( UBound(ArS) + 1 - i)
End Function
On 12/7/10, < rajab.rusly@yahoo.co.id> wrote:
> masalah dlm mengambil kata ke-3 dari balakang/akhir
kalimat, -
| momods mencari penerbit buku yang oke dan muantab.... adakah? |
| ayo silahkan coba lowongan yang momod kirim... |
| http://www.facebook.com/group.php?gid=37671048001&ref=mf |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message, melecehkan, tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan winzip jika perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/ |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau... |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html |
+-------------------------------------------------------------------+
| Message lama ada di : |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id] |
| http://www.mail-archive.com/xl-mania@yahoogroups.com |
+-------------------------------------------------------------------+
Nenhum comentário:
Postar um comentário