yet another simple blog

Pernahkah Anda mendapat tugas dari atasan untuk melakukan perhitungan yang memerlukan interpolasi data? Interpolasi data dilakukan bila terdapat data yang tidak ada (missing) dari sekumpulan dataset (series) sementara Anda diminta untuk melengkapinya. Sebagai ilustrasi, saya buatkan contoh sbb:

Perhatikan dari hasil akhir yang diinginkan, baris font yang berwarna merah adalah hasil perhitungan interpolasi.

Interpolasi dilakukan dengan cara menghitung selisih atau perbedaan antara 2 value lalu dibagi merata ke interval yang missing. Cukup mudah melakukan interpolasi ini secara manual menggunakan aplikasi Excel dengan dataset yang kecil, tetapi akan menjadi persoalan serius bila harus melakukan interpolasi dengan data yang banyak dengan interval yang berbeda-beda. Solusinya adalah menggunakan macro untuk memecahkan persoalan ini.

Berikut ini adalah alur logikanya:

1.       Hitung selisih nilai

2.       Cek tanggal, apakah ada yang missing

3.       Bila ada yang missing, insert sejumlah interval yg tidak ada.

4.       Tentukan nilai interpolasi per interval (selisih point 1/interval point 3)

5.       Tambahkan nilai interpolasi ke masing2 interval tanggal.

Script macro:

Dim num_interpolasi

Dim num_interval As Integer

i = 8

‘looping dari awal data hingga akhir

Do While Not IsEmpty(Range(“A” & i).Value)

‘menghitung jumlah interval dan interpolasi

num_interval = Range(“A” & i).Value – Range(“A” & i – 1).Value

num_interpolasi = (Range(“B” & i).Value – Range(“B” & i – 1).Value) / num_interval

‘kondisi bila ada missing tanggal

If num_interval > 1 Then

Range(“B” & i & “:B” & i + (num_interval – 2)).Select

‘Menambahkan baris kosong

Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove

‘memberi nilai tanggal dan hasil interpolasi

For j = 1 To num_interval – 1

Range(“A” & i).Value = Range(“A” & i – 1).Value + 1

Range(“B” & i).Value = Range(“B” & i – 1).Value + num_interpolasi

Range(“A” & i).Font.Color = -16776961

Range(“B” & i).Font.Color = -16776961

i = i + 1

Next j

End If

‘kondisi bila tidak ada missing tanggal

If num_interval <= 1 Then

i = i + 1

End If

Loop

Note:
-          Script ini untuk kondisi data di kolom A dan B. Bila tidak, silakan disesuaikan.
-          Letakkan data pertama di baris ke 7.

By Risnardi

About these ads

Comments on: "Interpolasi data menggunakan macro Excel" (3)

  1. Scriptnya pendek om, kenapa gak banyak, kan datanya banyak juga om.

  2. Script itu sdh meng-cover sebanyak data yang diinginkan. Dia akan melakukan looping hingga data terakhir. [risnardi]

  3. makasih banget atas ilmunya…!

    Really Nice of you to share it with other people…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: