Contoh kasus kali ini merupakan bentuk bantuan kepada rekan kerja yang bingung mengkonversi tanggal ke format text ketika rekan kerja sedang mengis laporan Biodata Peserta Ujian Nasioan SMK/SMA. Program yang digunakan dikirim langsung oleh pusat dibangun menggunakan visual foxpro.
Ada satu kejanggalan ketika penulis membongkar database dari program BIO UN buatan Puspendik dimana seluruh field tanggal baik tanggal lahir, maupun tanggal lainnya tidak bertipe date tetapi bertipe character dengan lebar 6 character (entah apa maksud nya programmer BIO UN menggunakan tipe ini ?) sehingga ketika seorang siswa lahir tanggal 19/03/1996 maka data diisi ke field tanggal lahir dengan format 190392, perhatikan struktur table dari database Bio UN
Program tersebut menyediakan utilitas impor dari excel masalahnya operator sekolah terlanjur mengetik tanggal lahir dan tanggal lainnya dengan format yang seharusnya yaitu format date, sehingga ketika dilakukan proses impor ke dalam program dari file excel selalu gagal ! Mau tidak mau maka tanggal harus diformat ke tipe data yang diinginkan oleh program yaitu tipe karakter dengan lebar 6, masalahnya excel tidak memiliki fungsi untuk merubah tanggal ke tipe text kalaupun menggunakan fungsi =text(value) maka akan hasilnya tidak berupa tanggal tetapi bilangan integer, perhatikan gambar dibawah bagaimana ketika tanggal dikonversi ke text dengan fungsi =text() pada excel
Sedangkan program Bio UN menginginkan kolom tanggal tampak seperti pada kolom B pada gambar dibawah ini, maka tentu tidak ada fungsi khusus yang bisa melakukan selain kita membuat formula sendiri untuk merubahnya !
Nah bagaimana membuat formulanya ?? berikut penulis ambil contoh untuk merubah tanggal tipe date pada cell A2 menjadi tipe text dengan lebar enam digit pada cell B2
=CONCATENATE((IF(LEN(DAY(A2))=1;CONCATENATE(“0”;DAY(A2));DAY(A2)));(IF(LEN(MONTH(A2))=1;CONCATENATE(“0”;MONTH(A2));MONTH(A2)));(RIGHT(YEAR(A2);2)))
Wow !! panjang ?? bagaimana logikanya ?? berikut penjelasannya :
- Formula diatas intinya mengambil tanggal dengan fungsi day, mengambil bulan dengan fungsi month dan mengambil year dengan fungsi year.
- Melakukan pengecekan panjang (LEN) karakter hasil fungsi day dan month jika day dan mont panjangnya hanya satu maka akan digabung dengan angka 0 dengan fungsi CONCATENATE jadi ketika bulan januari akan menghasilkan angka 1 dengan fungsi month karena panjangnya hanya 1 karakter maka diawalnya ditambahkan angka 0 dengan fungsi CONCATENATE begitu pula untuk fungsi day !
- Pada bagian akhir menggunakan fungsi year hasilnya akan berupa text sebanyak empat digit tahun namun kita ambil digit ke-3 dan ke-4 menggunakan fungsi right !
- Hasil fungsi day akan menghasilkan text antara 01 – 12, sedangkan fungsi month akan menghasilkan text antara 01 -31 dan year berupa tahun dengan format 2 digit digabung seluruhnya dengan fungsi CONCATENATE sehingga hasil akhir pada Cell B2 adalah 190380
Untuk bahan latihan silahkan download file contoh artikel ini !
0 comments: