Tecnologia, programação e muito Visual FoxPro.

quinta-feira, 17 de setembro de 2009

]] XL-mania [[ Formula 'Net Work Days' yg bisa dipakai oleh semua kantor..

 

Fungsi NETWORKDAYS adalah sebuah fungsi yg "Oce" (oke gitu loch) & sangat beguna, yaitu dapat mengembalikan Bilangan Bulat yg menunjukkan BANYAKNYA Hari Kerja (Work Day) dalam kurun 2 tanggal; dengan mengecualikan hari Sabtu, Minggu dan (bila perlu:) Hari Libur.  Untuk melibatkan HariLibur, sebelumnya Hari Libur harus telah anda daftar dlm sebuah list.

Atetapi…, fungsi NETWORKDAYS itu punya keterbatasan yaitu hari yg akan diabaikan / di-Excluded yaitu Sabtu dan Minggu (Saturday & Sunday) telah terlanjur ditulis secara Hard-Coded di dalam coding fungsinya. Akibatnya di worksheet, tidak ada cara lagi untuk misalnya  meng-INCLUDE Sabtu dan meng-EXCLUDE Senin.

Di beberapa negara (termasuk Indonesia) walaupun saat ini sudah banyak kantor yg memberlakukan hari kerja Senin – Jumat (Sabtu Minggu = bukan hari kerja, di sini siti pakai istilah di-Excluded), tetapi masih banyak pula yg memberlakukan Sabtu = Hari Kerja.
Pernah dengar pula bahwa ada perusahaan yg memberlakukan hari kerja 4 hari (Senin – Kamis), jadi Jumat Sabtu Minggu = excluded = bukan hari kerja.
Dalam hal seperti dua kasus di atas, maka fungsi NETWORKDAYS yg di atas dikatakan sbg fungsi "yang Oce" menjadi "ndak Oce" lagi atau istilah siti es-em-pe-kampung dulu = "percum-tak-bergun".

Is there a better way ?
Jadi, bgmana dong, kalau kantor kita liburnya hanya Minggu saja atau malah Jumat,Sabtu Minggu ? Apalah lalu tidak diperbolehkan ada itung-itungan  Net Work Days (banyaknya hari kerja dlm kurun tertentu yg dibatasi dua tanggal) ??
Harus ada cara lain, kalau bisa yg sederhana, kalau bisa pula: hindari cara-cara yg tidak dapat diikuti semua orang, cara cara yg "jalan ceritaknya gag jelas", cara yg "harus kelihaan BANYAK CODE & MIKIR BERAT", padahal ada cara yg hanya perlu beberapa karakter dan MIKIR RINGAN (dengan hasil yg sama dan sesuai keperluan).

Dua Formula di bawah ini bekerja persis seperti fungsi NETWORDAYS, tetapi ada kelebihannya, yaitu: memungkinkan kita memilih hari-hari dalam pekan (Day Of Week) yg ingin kita Excluded dari  kalkulasi / itung-itungannya.

1. formula pengganti NETWORKDAYS yg dlm kalkulasinya tidak melibatkan HariLibur (Holidays)
  =SUM(--(ISNA(MATCH(WEEKDAY(ROW(INDIRECT(TglAwal&":"&TglAkhir))), HariExcluded,0))))

2. formula pengganti NETWORKDAYS yg dalam kalkulasinya dapat melibatkan HariLibur
  =IF(OR(TglAwal<=0,TglAkhir<=0,TglAwal>TglAkhir,ISNUMBER(TglAwal)=FALSE,ISNUMBER(TglAkhir)=FALSE), NA(),SUM(IF(ISERROR(MATCH(WEEKDAY(ROW(INDIRECT(TglAwal &"":""&TglAkhir))),HariExcluded,0)),
IF(ISERROR(MATCH(ROW(INDIRECT(TglAwal &"":""& TglAkhir)),Holidays,0)),1,0)),0))"

Kedua formula ini memerlukan tabel bantu (range 7 cells) yg rangenya diberi nama HariExcluded.
Di range itulah Anda mempengaruhi FORMULA dengan mengisi / mengatur hari hari apa saja yg harus diExcluded ( hari yg diabaikan dlm kalkulasi menjari banyaknya jumlah hari kerja)
Tabel tsb dapat diisi dengan nilai nilai
1 = Minggu (Sunday), 2 Senin (Monday) dst hingga  7 = Sabtu (Saturday)

Tujuan dibuatnya tabel-bantu adalah agar formulanya lebih dinamis, perubahan Hari yg akan diexcluded cukup di edit pada tabel bantu tsb (bukan di formula – formula nya)
Tetapi kalau anda tidak suka cara tabel bantu spt itu, anda dapat mengganti HariExcluded dengan Array Konstanta
ya ditulis langsung dlm formula (hardCoded).  Misal dikehendaki  Jumat Sabtu Minggu adalah bukan hari kerja array konstantanya seperti ini
  ={1,6,7}
Sehingga rumus lengkap(versi 1) menjadi spt ini
 =-SUM(-(ISNA(MATCH(WEEKDAY(ROW(INDIRECT(B4&":"&C4))),{1,6,7},0))))

TglAwal adalah Tanggal dimulainya  penghitungan HariKerja
TglAkhir adalah Tanggal terakhir dalam periode yg dihitung hari kerjanya

Kedua formula adalah array formula, jadi anda harus ber-main-main dgn tiga tombol sekaligus (Ctrl; + Shit, Enter) ketika mengenternya

bluewater; 16 sept 2009
~ctv~

hal seperti ini secara tidak langsung pernah dibahas dalam proyek membuat Kalender Abadi / milis XL-mania  posting # (0000)  Tgl (dd-mmm-yy)

__._,_.___
+-:: XL-mania ::::::::::::::::::::----------------------------------+
| THR kecil sekali akibat pindah-pindah kerja :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              |
+-------------------------------------------------------------------+
Recent Activity
Visit Your Group
Yahoo! Finance

It's Now Personal

Guides, news,

advice & more.

Yahoo! Groups

Mom Power

Community just for Moms

Join the discussion

Celebrity kids

and families

Surviving in

the spotlight

.

__,_._,___

Nenhum comentário:

Arquivo do blog