Perbaikan coding
Function SiapaJabat(RngRef As Range, Tgl As Date) As String
' siti Vi/ 17 Aug 2010 / Merdeka
' menggunakan ASUMSI II / penjelasan di sheet 1
'----------------------------------------------
Dim r As Long, n As Long, t As Long
Dim TglArr() As Date, Ada As Long
SiapaJabat = "Ketua": r = 1
Do While RngRef(r, 1) <> ""
For t = CLng(RngRef(r, 1)) To CLng(RngRef(r, 2))
n = n + 1: ReDim Preserve TglArr(1 To n)
TglArr(n) = CDate(t)
Next t
r = r + 1
Loop
On Error Resume Next
Ada = WorksheetFunction.Match(Tgl, TglArr, 0)
If Ada > 0 Then SiapaJabat = "Wakil Ketua"
End Function
'------------
Tapi sayangnya
hasilnya tidak persis sama dengan hasil array formula kiriman mas Kid;
untuk tgl-tgl di luar range misal tgl 31 Des 2009 atau 1 Mar 2010, rumus mas Kid
menghasilkan = 0 (penampakan = "Wakil Ketua") yg artinya saat itu :
Ketua TIDAK DITEMPAT / Ketua Sedang dlm Perjalanan Dinas
Satu lagi, formula ajaib dari mas Kid itu jangan di copy > pasteSpecial Value lho ya...
karena nanti hasilnya akan ber-ubah menjadi nilai 1 atau 0
cmiiw
siti
jadwalnya kok agak mendua..
dikatakan : Ketua Berangkat 1 Jan 2010 Kembali 5 Jan 2010
Kalau kata "KEMBALI" berarti "sudah di kantor lagi" maka
seharusnya keterangannya: tgl 1Jan sd tgl 4Jan = Ketua Tidak Ada
di sheet ditulisnya : tgl 1 jan sd tgl 5Jan = Ketua Tidak Ada
mana yg benar ??
Di lain tempat, di E6 = tgl 5 Jan 2010
hasil di F6 diinginkan = "Ketua" (artinya saat itu di kantor ada Ketua)?!
aku ikut seperti diinginkan
jika di E6 = tgl 5 Jan 2010 >> hasilnya di G6 = "Ketua"
kalau di E6 tgl 4 jan 2010 barulah hasil di G6 = "Wakil Ketua"
Rumusnya gampang, tulis di F6
=Siapa($A$3,E6)
rujukan ke jadwal ($A$3) hanya perlu 1 cell yaitu cell pertama pada tabal jadwal
tak peduli sampai berapa pun jumlah records /baris pada jadwal-nya;
asal tidak ada record loncat parita / baris kosong ...!!!!!
--------listing code udf Siapa(Cell1Jadwal, Tgl)---------
Function Siapa(RngRef As Range, Tgl As Date) As String
' siti Vi/ 17 Aug 2010 / Merdeka
Dim r As Long, n As Long, t As Long
Dim TglArr() As Date
r = 1
Do While RngRef(r, 1) <> ""
For t = CLng(RngRef(r, 1)) To CLng(RngRef(r, 2)) - 1
n = n + 1
ReDim Preserve TglArr(1 To n)
TglArr(n) = CDate(t)
Next t
r = r + 1
Loop
Siapa = "Ketua"
For n = 1 To UBound(TglArr)
If Tgl = TglArr(n) Then
Siapa = "Wakil Ketua"
Exit For
End If
Next n
End Function
'--------------------------
Tafsir "Al-Assal":
semua Tgl yg ada di RENTANG jadwal (kecuali tgl yg di kolom kedua) disusun kedalam
sebuah array-dinamis 1 dimensi (TglArr) .
Lalu Tgl Kriteria (misal yg ada di E6 itu) dicocokkan (samakah) dgn setiap elemen data
di TglArr, jika ada yg cocok, berarti SIAPA = "Wakil Ketua"
Kalau ndak ada tgl yang cocok ?? (ndak usah dijawab)
2010/8/17 Audra Sakti <Audrasakti@gmail.com>> Mohon bantuan dari para pakar,
> ceritanya begini, Ketua punya jadwal perjalanan dinas, misalnya dari
> tgl 1-1-10 s/d 15-1-10, dari tgl 3-2-10 s/d 10-2-10 ketua tidak ada,
> yang diinginkan misalnya pada cell E6 terisi tanggal, maka di F6 akan
> muncul Ketua apabila tanggal di E6 tidak termasuk di Jadwal Ketua.
> Untuk lebih jelasnya ada di lampiran. Saya sudah coba pakai logika,
> IF, OR dan AND. memang bisa, tapi rumusnya kepanjangan, bagaimana
> mempersingkatnya?
>
| selamat menunaikan ibadah puasa... walau perut lapar, tanya excel |
| jalan terus... malu bertanya telat pulang kantor :D :D :D |
| 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