Di milis ini beberapa hari y.l. ada kasus "MENGHITUNG kemiripan dua kata"
(Karena yg diinginkan adalah MENGHITUNG maka Jawaban seharusnya = "oh..kemiripannya ada 1, ada 10
atau ada 10234" dst,
Tetapi ternyata jawaban yg logis (ingin menghitung dijawab bilangan CACAH) seperti itu ternyata sulit ditangkap artinya) Mungkin yag salah jawabannya atau mungkin juga pertanyaannya !
Diskusi nya tidak menarik, terbukti tidak ada kelanjutan berita apapun dari "sohibul hajat" Mr. rahmat hidayatullah (si pemilik maksud)..
Selain itu, kurang menariknya mungkin karena juga ada hal yg masih menggantung : "setelah ditemukankan
level (prosentasi) kemiripannya,.. LALU UNTUK APA ??" hayoo..
Nah pertanyaan bung Martin saat ini, memperjelas kegunaan UDF yg kemain susah2 dibuat tapi tak bermanfaat..
Jika sederet kata dibandingkan dengan sebuah kata (sbg kriteria-nnya), maka sederet kata tsb akan punya sederet Nilai_Kemiripan (di Excel anda boleh menyebut sebagai Array_Nilai_Kemiripan.
Siapa yg punya nilai kemiripan tertinggi dia-lah kata yg paling MIRIP dengan KRITERIA. Di sinilah masalah menjadi lebih jelas, dan harusnya "agak menarik" (bagi yg tertarik!)
Dengan demikian INDEX mapun VLOOKUP yg lemah lembut itu dapat digantikan dengan kombinasi beberapa fungsi di mana salah fungsinya adalah TextCompare (UDF buatan dalam negeri)... agar lebih galak dapat me-LOOKUP data tabel
berdasarkan LookUpValue (padahal LookupValue tsb tidak pernah ada di table_array, mekipun banyak data yg MIRIP)
Atas pertanyaan bung Martin; Rumusnya (versi diriku sendiri) kira-kira seperti ini (di tulis di sheet 2 Cell D2)
=INDEX(Sheet1!$B$2:$B$6,
MATCH(MAX(Textcompare(Sheet1!$A$2:$A$6,B5)), Textcompare(Sheet1!$A$2:$A$6,B5),0) )
Penjelasan dari rumus D2 (mencari data di Sheet1 A2:A6 yang paling MIRIP
(yg Score Kemiripannya Paling Tinggi) dengan data di B2)
1. B2 dibandingkan dengan setiap data di Sheet1 kolom A (A2:A6); lalu diberi score kemiripannya
2. Dari semua score (6 score) dicari nilai MAX nya
3. Nilai MAX tsb dicari POSISInya di Rangkaian (Array) Hasil SCORE
misal "Top Hija" akan ketemu posisinya = 5 (data ke 5 pada sumber data dianggap paling mirip)
4. Dengan fungsi INDEX; Angka Posisi itu dipakai untuk mencari data di Kolom B / Harga
(tampilkan data baris ke di kolom HARGA),
5. Selesai
Mengenai cara kerja dan karakteristik Fungsi TextCompare, jangan ditanyakan sekarang, kelamaan menjelaskannya (dipersilakan melihat sendiri di Prosedur-Fungsi-nya)
Function TextCompare(Rng As Range, S As String)
'-------------------------------------------------
' mengembalikan Bilangan yg menunjukkan
' % (Prosentasi) kemiripan 2 string
' pada revisi kali ini, UDF ditingkatkan agar dapat membandingkan
' 1 data dengan BANYAK DATA (array data) >> hasilnya array Hasil
'--------------------------------------------------
' dikutip dari Folder tersembunyi milik Yu siti
' bertanggal 22 Feb 1009
' dan disesuaikan dengan keperluan
' revisi 19 dec 2011 / iHapsari
'-------------------------------------------------
Dim MatchTbl(), ArTC(), vRng As String
Dim i As Integer, j As Integer, ii As Integer, jj As Integer
Dim yMAX As Double, xMAX As Double, r As Long
ReDim ArTC(1 To Rng.Rows.Count)
S = Trim$(StrConv(S, vbProperCase))
For r = 1 To Rng.Rows.Count ' <---loop sebanyak array yg dibandingkan
vRng = Trim$(StrConv(Rng(r, 1), vbProperCase))
ReDim MatchTbl(Len(vRng), Len(S))
For i = Len(vRng) To 1 Step -1
For j = Len(S) To 1 Step -1
If Mid$(vRng, i, 1) = Mid$(S, j, 1) Then
xMAX = 0
For ii = (i + 1) To Len(vRng)
For jj = (j + 1) To Len(S)
If MatchTbl(ii, jj) > xMAX Then
xMAX = MatchTbl(ii, jj)
End If
Next jj
Next ii
MatchTbl(i, j) = xMAX + 1
If (xMAX + 1) > xMAX Then yMAX = xMAX + 1
End If
Next j
Next i
ArTC(r) = yMAX / ((Len(vRng) + Len(S)) / 2)
Next r
TextCompare = WorksheetFunction.Transpose(ArTC)
End Function
'--------------------------------------
2011/12/15 Martin Mefril <martin_mefril2000@yahoo.com>
>
> Saya ada case seperti dibawa ini
>
> Sheet1
> A B
> 1 Nama Barang harga
> 2
> 3
> 4 Jas hujan 50.000
> 5 Celana Jeans 100.000
> 6 Kaos Oblong 30.000
> 7
> 8
>
>
> Sheet2
> A B
>
> 1 Nama Barang harga
> 2
> 3 Jas hjan
> 4 Celan Jens
> 5 Kao Oblo
> 6
> 7
>
> Bagaimana menampilkan harga yang ada dikolom B di sheet2 apabila Nama barang tidak lengkap?
> file terlampir
>
> Trims
> Martin Mefril
__._,_.___
+-:: XL-mania ::::::::::::::::::::----------------------------------+
| ayooo... coba cari XL-mania di linkedin.com |
| momods kebanyakan e-mail :(... unread di kantor 6 ribu lebih :( |
+-------------------------------------------------------------------+
| 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 |
+-------------------------------------------------------------------+
| ayooo... coba cari XL-mania di linkedin.com |
| momods kebanyakan e-mail :(... unread di kantor 6 ribu lebih :( |
+-------------------------------------------------------------------+
| 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 |
+-------------------------------------------------------------------+
MARKETPLACE
.
__,_._,___
Nenhum comentário:
Postar um comentário