Rabu, 13 Maret 2019

[belajar-excel] Digest Number 4732

3 Messages

Digest #4732

Messages

Wed Mar 13, 2019 3:52 am (PDT) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Wa'alaikumussalam wr wb

*Stacked Waterfall Chart*
Dahulu kala (sebelum xl2016), waterfall chart disusun dengan Stacked Column
Chart. Mulai xl2016, Waterfall Chart (yang nggak stacked), telah disediakan
built-in template-nya, tetapi *belum bisa* digunakan untuk menyusun Stacked
Waterfall Chart (semoga suatu saat nanti akan bisa, sabar ya..).
Jadi, saat ini Stacked Waterfall Chart disusun dengan chart dasarnya
waterfall chart di jaman dahulu kala, yaitu dengan Stacked Column.

Pada setiap kebutuhan chart, langkah pertama adalah *selalu* mendefinisikan
tipe chart dasar yang dibutuhkan lebih dahulu, agar bisa menyusun tabel
chart data source yang sesuai.
Kasus Stacked Waterfall Chart :
A. Nilai data menggunakan tipe chart stacked column
> mulai dari saldo, total setiap item flows (bahkan setiap elemen dari
masing-masing item flows yang akan tampilkan bertumpuk sekalipun)
> jadi, perlu mengenal tipe chart Stacked Column, misal seperti ini :
(tabel source disusun ke kanan, dengan nilai per kolom membentuk series
bertumpuk)

[image: xl042_chStWF01_StCol.gif]

* nilai kolom cb1 menjadi series cb1 berwarna abu-abu
* nilai kolom cb2 menjadi series cb2 berwarna hijau muda

B. Label nilai total tumpukan ditampilkan dengan Line yang menampilkan data
label

[image: xl042_chStWF02_StCol_LineLblTot.gif]* dibutuhkan kolom nilai Total
sebagai data point untuk label yang menggunakan tipe Line, kemudian
ditampilkan data label-nya.

C. Berdasar poin B di atas, maka Label nilai subtotal tumpukan (stacked)
berarti ditampilkan dengan Stacked Line data label,
kecuali pada xl2013 yang sudah disediakan pemilihan range teks label
untuk sebuah series data label.
> stacked line (bisa digunakan disemua versi Excel) :

[image: xl042_chStWF03_StCol_StLineLblSubTotVerAll.gif]
* dibutuhkan sebuah dataset (tabel) untuk menyusun setiap series label,
* seperti tabel Stacked Line yang berisi kolom label untuk Bali dan label
untuk subtotal DKI yang merupakan penjumlahan nilai cb1 dan cb2 (kolom
Total di sumber data)

* Series Stacked Line Bali sebagai base (penyusun letak) data point bagi
series stacked line DKI (yang dibutuhkan untuk menampilkan subtotal DKI)

> Line dengan Label From Value Range (khusus xl2013 ke atas) :

[image: xl042_chStWF03_StCol_StLineLblSubTotVerxl2013keatas.gif]
* dibutuhkan sebuah dataset (tabel) untuk menyusun series line label
(Point) beserta nilai sumber teks label (ValueFrom)

* Nilai kolom Point sebagai letak setiap titik series line

* Nilai kolom ValueFrom sebagai teks label dari setiap titik series line

D. Waterfall biasanya membutuhkan garis mendatar yang menunjukkan nilai
akhir item sebelumnya ke nilai awal item tertentu.
Tipe chart xy-scatter yang disusun seperti tangga bisa dimanfaatkan
untuk hal ini.
Chart tangga secara umum susunan tabel chart source dan hasil chart-nya
seperti ini :

[image: xl042_chStWF04_xyscatter_tangga.gif]
* Tabel chart source membutuhkan 1 (satu) kolom untuk nilai x dan
setidaknya 3 (tiga) kolom untuk nilai y agar terjadi diskontinuitas data
point

* Chart tangga hanya membutuhkan 1 (satu) series saja, tetapi berisi 3 area
sumber nilai untuk x dan 3 area sumber nilai untuk y

* Pada contoh di atas, 3 area untuk sumber nilai x adalah 3 kali pemilihan
nilai-nilai kolom x (manfaatkan CTRL dan SHIFT dalam membentuk pemilihan 3
area nilai tersebut)

* Begitu juga untuk 3 area sumber nilai y, hanya saja setiap pemilihan area
dilakukan terhadap kolom yang berbeda secara berurutan dari kolom y1, y2,
dan y3

Setelah mendefinisikan seluruh chart dasar yang dibutuhkan, barulah
menyusun solusi dari suatu kasus.
Misal kasus data dan chart yang dibutuhkan sebagai berikut : (kasus untuk
nilai saldo dan nilai yang bertambah di dalam waterfall chart)
*** nilai yang berkurang tidak dibahas dalam kasus ini, tetapi bisa
dikembangkan dengan cara yang sama.
*** perbedaannya hanyalah pada formula yang bisa menghasilkan nilai-nilai
dalam setiap kolom series yang dibutuhkan

[image: xl042_chStWF05_kasus.gif]

Dari tabel data seperti di atas (kolom A:F) ataupun sudah ada yang seperti
dataset sisi kanan (seperti hasil pivot table atau dengan formula atau
hasil copy paste values), stacked waterfall chart yang dibutuhkan dapat
disusun dengan langkah :
1. Menyiapkan tabel chart source seperti yang dibutuhkan oleh setiap tipe
chart dasar yang dibutuhkan (lihat hasil pendefinisian chart dasar yang
dibutuhkan untuk stacked waterfall chart di atas).
Struktur tabel chart source bisa seperti ini : (hasil copy values,
formula, atau pivot table layout, dsb, diarahkan untuk menghasilkan susunan
baris dan kolom [struktur] tersebut)
> dengan pivot table layout

[image: xl042_chStWF06_base_chtsource_pvt.gif]

> dengan formula atau copas

[image: xl042_chStWF06_base_chtsource_tbl.gif]

*** kasus ini memilih table chart source seperti gambar kedua
tersebut (hasil formula atau copy paste values)

2. menyusun kolom series untuk stacked column setiap nilai data yang perlu
ditampilkan

[image: xl042_chStWF07_series01_stcol.gif]

*** series nilai Saldo sengaja dipisah dengan series nilai-nilai transaksi
agar lebih mudah dikembangkan untuk nilai-nilai yang berkurang suatu saat
nanti

*** series pokok dalam waterfall chart adalah
> series saldo (sebagai total yang selalu menyentuh nilai 0),
> series nilai yang bertambah (nilai yang menunjukkan arah naik dari
posisi nilai terakhir item sebelumnya)

> series nilai yang berkurang (nilai yang menunjukkan arah turun dari
posisi nilai terakhir item sebelumnya)

3. series nilai-nilai selain saldo, perlu tumpuan dasar agar bisa memenuhi
kondisi waterfall, maka disusun sebuah series base untuk nilai-nilai
tersebut

[image: xl042_chStWF07_series02_stbaseup.gif]

*** Nilai untuk series base (basis tumpuan nilai yang bertambah) didapat
dengan formula.
*** Base nilai bertambah = sebesar nilai posisi terakhir item sebelumnya
ditambah 0.
Contoh : untuk item Jan, base nilai bertambah item Jan = nilai posisi
terakhir item sebelumnya (nilai Q4-2016) + 0

*** Base nilai berkurang = sebesar nilai posisi terakhir item sebelumnya
dikurangi total pengurangan nilai di item tersebut.

Contoh : misal item Jan sebesar 30 adalah nilai yang berkurang, maka
base nilai berkurang item Jan = nilai posisi terakhir item sebelumnya
(nilai Q4-2016) - nilai item Jan yang berkurang (30)

Hal ini pun nanti akan ada pemecahan nilai untuk nilai yang
ditampilkan di atas sumbu x (y positif) dengan nilai yang ditampilkan di y
negatif. Sila dikembangkan sendiri ya...

*** Hal ini bisa diformulasikan dengan berbagai cara (sila pelajari Excel
formula lebih lanjut untuk hal ini)

*** Jadi, kolom base untuk nilai bertambah terpisah dengan kolom base untuk
nilai berkurang

*** Pada kasus ini, hanya dibahas untuk nilai bertambah saja, jadi hanya
ada 1 (satu) kolom base, yaitu base untuk nilai bertambah (lift up)

*** Susunan series bisa diatur agar letak series base menjadi tumpuan untuk
series nilai data (lihat pengaturan urutan series seperti gambar terkanan),
format series pun bisa disesuaikan dengan kebutuhan (misal di set no fill
pada series base)

*** sampai langkah ini, susunan dasar stacked waterfall chart sudah tampak.
Perbaikan formula dan mungkin penambahan series perlu dilakukan agar bisa
mendapatkan susunan dasar waterfall chart yang sesuai kebutuhan

4. Langkah berikutnya adalah menambahkan asesoris, seperti label nilai
untuk total item.
> misal menggunakan stacked line (yang berlaku untuk semua versi Excel)

[image: xl042_chStWF07_series03a_lblstline.gif]*** Stacked Line juga
membutuhkan series base (lihat kolom lblBase yang nilainya sama dengan
kolom Base)

*** Series untuk label berisi nilai total item (lihat kolom lblTotal)

*** Karakteristik stacked line yang akan mengubah nilai bertipe selain
numerik menjadi 0, perlu diatur dengan format cells tab number item Custom
dengan teks format ;;; (tiga bijik karakter titik koma) [lihat area yang di
warna abu-abu di kolom lblTotal]

*** Tipe chart untuk series label, beserta format Data label maupun format
tampilan garis line bisa diatur sesuai kebutuhan

> misal menggunakan xl2013 ke atas yang memiliki fitur teks label
mengambil dari suatu area range tertentu yang berbeda dengan range series
nilai letak point data

[image: xl042_chStWF07_series03b_lbllinefromvalrngxl2013keatas.gif]

*** Membutuhkan 2 (dua) kolom, yaitu kolom label teks (lihat kolom ValFrom)
dan kolom line data point (letak titik-titik teks label [lihat kolom
lblPoint])

*** kolom ValFrom berisi nilai yang akan ditampilkan sebagai teks label

*** kolom lblPoint berisi nilai letak (lokasi) si label akan dipasang
(dalam kasus ini, nilai lblPoint = nilai terakhir dari item tersebut
[seperti nilai terakhir item Jan adalah 80, yaitu saldo (50) + item Jan
(30)])

*** Series line disusun dengan kolom lblPoint, tipe chart dan letak bisa
diatur sesuai kebutuhan.

*** Data label bisa diformat untuk memilih jenis teks label dari opsi From
Value kemudian memilih area range teks label untuk series lblPoint tadi

*** Format untuk tampilan garis dari series lblPoint bisa disesuaikan
dengan kebutuhan

5. Membuat garis mendatar penunjuk nilai akhir item sebelumnya dengan nilai
awal item dengan xy-scatter
*** Lihat pon D diatas sana ya...
> Tahap 1 : menyusun table series untuk hal ini :

[image: xl042_chStWF07_series04a_tangga_table.gif]

*** Lihat tabel paling kanan yang disusun dengan pola seperti poin D di
atas sana

> Tahap 2 : add series dengan series values berisi 3 area range di kolom
y1, y2, dan y3 (gunakan CTRL dan SHIFT untuk hal ini) dan set tipe chart
menjadi xy-scatter

[image: xl042_chStWF07_series04b_add_series_tipe.gif]

*** Lanjutkan tahapan ke tahap 3 tanpa mempedulikan penampakan chart akibat
penambahan series ini

*** Misal series diberi nama 'Tangga (xy scatter)'

> Tahap 3 : edit series bernama 'Tangga (xy scatter)' dan set untuk
X-values merujuk ke 3 area range yang semuanya adalah rang yang sama, yaitu
kolom x dalam tabel

[image: xl042_chStWF07_series04c_edit_series_format.gif]

*** Penampakan chart sudah mulai tampak membaik, format dari setiap elemen
chart bisa dilakukan untuk mendapatkan hasil akhir

6. Format setiap elemen chart (bila perlu menambah beberapa elemen chart
yang dibutuhkan) agar terbentuk hasil akhir chart yang sesuai kebutuhan

[image: xl042_chStWF08_result.gif]

*** Dilakukan penambahan beberapa elemen yang dibutuhkan dan memformat
setiap elemen, hingga hasil akhir tercapai dan siap di-copy ke area report

Demikian kurang lebihnya.
Selamat mencoba.

Wassalamu'alaikum wr wb
Kid

On Wed, Mar 6, 2019 at 10:06 AM idz.iman@yahoo.com [belajar-excel] <
belajar-excel@yahoogroups.com> wrote:

>
>
> Dear Master Excel.
>
> Assalammualaikum Warahmatullah Wabarakatuh.
>
>
> Semangat pagi rekans.
>
>
> saya mau tanya, Bagaimana Caranya membuat waterfall dengan stacked
> (beberapa Lapis)
>
> jika ada mohon sample excelnya.
>
>
> berikut terlampir penampakan yg diinginkan
>
>
> salam
>
> Iman
>
>
>

Wed Mar 13, 2019 9:46 am (PDT) . Posted by:

"Tio Adi Bayu Adjie"

Salam Be-Exceller,
Saya membuat aplikasi untuk multi user dimana file tersebut diisi oleh beberapa user. File itu ada di server (network). Tapi terdapat kendala yaitu mengetahui apakah file sudah tertutup/tidak. Itu karena file itu digunakan oleh semua orang. Jadi saya ingin mengetahui apakah file itu sudah tertutup atau tidak. Kalau file di server itu tertutup, maka saya buka file itu dan update data di file di server tersebut. Dan setelah update data, saya tutup file kembali secepatnya karena akan digunakan user lain..
Saya sudah buat code tapi masih ada error yaitu ".....File is currently in use. Please try again". Code itu kadang-kadang error disaat open file, dan kadang-kala error di saat file itu ditutup kembali.
Code yang sudah saya buat adalah :

Dim w as long
Dim src as workbook
Dim ikonfirmasi as integer
Dim namafile as string,fname as string

fname = Dataku.Cells(1, 40).value
namafile ="DataGudang.xlsx"

Ulangi_Buka:
w = 0
Err.Clear
On Error Resume Next
Set src = Workbooks.Open(fname, True, False, , "1") '----------> Kadang suka error yang bunyinya : \\Folder_Server\FolderFile\DataGudang.xlsx is currently in use. Please try again later<file:///\\Folder_Server\FolderFile\DataGudang.xlsx%20is%20currently%20in%20use.%20Please%20try%20again%20later>. Catatan : password file : 1
If Err.Number <> 0 Or src Is Nothing Then
On Error GoTo 0
End If
On Error Resume Next
If src.ReadOnly Then
Err.Clear
w = w + 1
If w >= 5000 Then
ikonfirmasi = MsgBox("Saya telah cek sebanyak " & w & ". Apakah anda ingin melanjutkan ?", vbQuestion + vbYesNo, "Konfirmasi")
If ikonfirmasi = vbYes Then
GoTo Ulangi_Buka
Else
src.Close False
Exit Sub
End If
Else
Workbooks(namafile).Close False '----------> Kadang suka error yang bunyinya sama seperti diatas : : \\Folder_Server\FolderFile\DataGudang.xlsx is currently in use. Please try again later<file:///\\Folder_Server\FolderFile&#92;DataGudang.xlsx%20is%20currently%20in%20use.%20Please%20try%20again%20later>
GoTo Ulangi_Buka
End If
End If
'====
Mohon petunjuknya, bagaimana bisa mengatasi error tersebut ?

Terima kasih atas bimbingannya. Semoga Allah SWT membalas kebaikan teman-teman. Amiin...
Tio

Wed Mar 13, 2019 3:46 pm (PDT) . Posted by:

"Tio Adi Bayu Adjie"

Dear Be-Exceller,
Saya mau cek apakah file di server dibuka oleh orang lain atau dibuka dikomputer sendiri. File itu ada di server. Saya sudah bikin code nya tapi kok gak bisa ya ? Mohon bimbingannya.

Ini code saya :

Public function sFileAdaAccess(fname) as Boolean
sFileAdaAccess = True
If IsFileOpen(fname) = True Then
Set wbbook = Workbooks(fname)

If Not wbbook.ReadOnly = True Then
MsgBox "Silahkan ditutup dulu File Master", vbExclamation, "File master terbuka"
sFileAdaAccess = false
Exit Function
Else
sFileAdaAccess = True
End If
Set wbbook = Nothing
'End If

Public Function IsFileOpen(filename As String) As Boolean
Dim filenum As Integer
Dim errnum As Integer

On Error Resume Next ' Turn error checking off.

''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;
' If we were passed in an empty string,
' there is no file to test so return FALSE.
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;
If filename = vbNullString Then
IsFileOpen = False
Exit Function
End If

''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;
' If the file doesn't exist,
' it isn't open so get out now.
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;
If Dir(filename) = vbNullString Then
IsFileOpen = False
Exit Function
End If
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'
' Get a free file number.
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'
filenum = FreeFile()
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;
' Attempt to open the file
' and lock it.
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;
Err.Clear
Open filename For Input Lock Read As #filenum
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'
' Save the error number that occurred.
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'
errnum = Err.Number
On Error GoTo 0 ' Turn error checking back on.
Close #filenum ' Close the file.
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'
' Check to see which error occurred.
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'
Select Case errnum
Case 0
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;
' No error occurred.
' File is NOT already open by another user.
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;
IsFileOpen = False

Case 70
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;
' Error number for "Permission Denied."
' File is already opened by another user.
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;
IsFileOpen = True

''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;
' Another error occurred. Assume the file
' cannot be accessed.
''&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;'&#39;
Case Else
IsFileOpen = True

End Select

End Function

Kenapa tidak berhasil ? Mohon bimbingannya.
Terima kasih.
Tio
============================================================
Pojok Lowongan Kerja yang disediakan milis :
http://milis-belajar-excel.1048464.n5.nabble.com/Pojok-Lowongan-Kerja-f5725753.html
*** Posting lowongan kerja : ke link tersebut dan klik New Topic
============================================================
bergabung ke milis (subscribe), kirim mail kosong ke: belajar-excel-subscribe@yahoogroups.com
posting ke milis, kirimkan ke: belajar-excel@yahoogroups.com
berkunjung ke web milis : http://tech.groups.yahoo.com/group/belajar-excel/messages
melihat file archive / mendownload lampiran : http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di : http://milis-belajar-excel.1048464.n5.nabble.com/
menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com
keluar dari membership milis (UnSubscribe), kirim mail kosong ke : belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------

Tidak ada komentar:

Posting Komentar