dear mas HerrSoe(cakil)
Lho kemarinnya Soe-Timbul sekarang kok ganti SoeCakil to mas, he he..
Kiriman dari mas kid sebenarnya sudah cukup; ini siti sekedar ikut-ikutan saja..
1.
mencoba menyelesaikan dengan formula
(lihat sheet III (t formula)
di sini sekalian dimohonkan kepada para empu dan begawan excel
formula composser (bukan makro), untuk memberikan pencerahannya:
apa yg salah di formula tsb sehingga ada 'sepotong' array formula
yg jika dibuat terpisah (sbg kolom dummies / helper) dapat bekerja dgn baik;
tetapi ketika disatukan hasilnya Ellol...
Terima kasih.
2.
karena formula gagal dibuat megaformula maka terpaksa diselesaikan
dengan UDF (lihat sheet I / kasus)
di UDF (fungsi buatan sendiri) ada argument ExcludeDOW yg agak ribet pengisiannya
tetapi menjadikan fungsi ini gampang diatur; hari kerja dlm 1 week tidak
harus hanya Senin s/d Jumat saja
mau dibuat hari kerja dlm 1 week hanya Selasa saja juga bisa ..
UDF ini idea / algoritma-nya hasil jiplakan dari Excel-Tip ( www.cpearson.
topik "better workday"
tetapi kalau anda sempat membandingkan, akan nyata sudah banyak perubahannya.
UDF nya; seperti ini
(tidak perlu diberi comments lagi..)
'------------
Enum EnumDOW
Sunday = 1: Monday = 2: Tuesday = 4: Wednesday = 8
Thursday = 16: Friday = 32: Saturday = 64
End Enum
Function cWORKDAY(StartDate As Date, DaysReq As Long, _
ExcludeDOW As EnumDOW, Optional Holidays As Variant) As Variant
'--ctv / 22 sep 2009--
Dim n As Long, nWokD As Long, LoopLimit As Long
Dim vDate As Variant, EvalDate As Date
Dim CurDOW As EnumDOW, IsHoliday As Boolean
Select Case DaysReq
Case Is < 0: GoTo ctv_Err_Result
Case Is = 0: cWORKDAY = StartDate: Exit Function
End Select
If ExcludeDOW >= 127 Then GoTo ctv_Err_Result
LoopLimit = DaysReq * 10
Do Until nWokD = DaysReq
n = n + 1
EvalDate = StartDate + n
CurDOW = 2 ^ (Weekday(EvalDate) - 1)
If (CurDOW And ExcludeDOW) = 0 Then
IsHoliday = False
If Not IsMissing(Holidays) Then
For Each vDate In Holidays
If vDate = EvalDate Then
IsHoliday = True: Exit For
End If
Next vDate
End If
If IsHoliday = False Then nWokD = nWokD + 1
End If
If n > LoopLimit Then GoTo ctv_Err_Result
Loop
cWORKDAY = StartDate + n
Exit Function
ctv_Err_Result:
cWORKDAY = CVErr(xlErrValue)
End Function
2009/9/23 HerrSoe <herrsoe@gmail.
>
> Ysh: Moderators & para member milis XL-mania,
>
> Terima kasih, dari milis ini saya mendapat pelajaran berharga: bahwa excel dapat menghitung
> JUMLAH HARI KERJA dari tglMULAI s/d tglAKHIR dimana hari Sabtu dan Minggu = bukan hari kerja
> (diabaikan) dan Hari Libur (yg kita buat List-nya) juga tidak ikut diperhitungkan.
> Dlm Kasus spt itu dipergunakan Fungsi NETWORKDAYS.
> "Bukan-Hari-Kerja" pada fungsi NetWorkDays sudah tertentu: Sabtu+Minggu.
>
> Dlm palajaran itu juga dicontohkan FORMULA yg menyamai prinsip kerja NETWORKDAYS
> tetapi malah lebih lengkap, yaitu "Bukan-Hari-Kerja"-nya dapat diubah sesuai kehendak / keperluan kita.
> ( ref milis 17sep 09: http://tech.
>
> Saat ini kami menghadapi keperluan kalkulasi: kebalikan dari NETWORKDAYS, yaitu menentukan
> Tanggal HariKerja Terakhir bila diketahui Tanggal Awal dan JUMLAH HARI KERJA yg diperlukan.
> Sedangkan Hari Libur di kantor kami ada 2 aturan:
> 1. Karyawan level tertentu (X) Hari Kerja = Senin -sd- Jumat
> (untuk kasus satu kami sudah menemukan fungsinya : Workday)
>
> 2. Karyawan level tertentu (Y) Hari Kerja = Senin -sd- Sabtu
> 3. Bahkan nantinya direncanakan ada karyawan level tertentu (Z) yg harikerjanya = Senin -sd- Kamis
> Untuk kasus 2 dan 3 selama ini kami masih menghitungnya secara manual di lembar Kalender.
>
> Mohon bantuan dari para XL-maniawan / XL-maniawati ysh, kiranya dapat memberi formulasi
> serta jika mungkin penjelasannya. (terlampir workbook berisi kasus tsb serta tambahan ).
> Sekali lagi terima kasih.
>
> herrsoe
> (herru sucakil... :)
| Selamat Idul Fitri... Mohon maap dari momods... |
| 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 |
+-------------------------------------------------------------------+
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch format to Traditional
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe
Nenhum comentário:
Postar um comentário