15 Messages
Digest #3358
3a
Bls: [belajar-excel] vlookup dengan kriteria dan average by "Krisan Flower" krisan_flower@rocketmail.com
Messages
Tue Mar 24, 2015 3:01 am (PDT) . Posted by:
"zainul_ulum[at]yahoo[dot]com" zainul_ulum
Mas Omez,
saya sharing procedure atau macro yang pernah saya buat untuk memanggil data dari database mysql dengan menggunakan query:
'program dibuat dengan menge-set object reference Microsoft activex data object (microsoft ADO)
'0. Procedure connect ke mysql
'********************************************
Function connectMysql(username As String, passwd As String, serverIP As String, db As String, conn As ADODB.Connection) As Boolean
'source :http://www.freevbcode.com/ShowCode.asp?ID=6187
conn.CursorLocation = adUseClient
conn.ConnectionString = "DRIVER={MySQL ODBC 5.2 Unicode Driver};SERVER=" & serverIP & ";UID=" & username & ";PWD=" & passwd & ";DATABASE=" & db & ";" _
& "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 163841
On Error Resume Next
conn.Open
If Err.Number Then
Err.Clear
connectMysql = False
Else
connectMysql = True
End If
End Function
'1. Prosedure membuat object recordset berdasarkan connection dan input SQL
Sub OpenRecordSets(conn As ADODB.Connection, ByVal sSQL As String, Rs As ADODB.Recordset)
Dim cRs As New ADODB.Recordset
cRs.Open sSQL, conn
Set Rs = cRs
End Sub
'2. Prosedur untuk merubah data recordset menjadi variant berdimensi
'saya lebih suka menggunakan variant berdimensi daripada menulis langsung di cell excel karena prosesnya lebih cepat.
Function RecsToVariant(Rs As ADODB.Recordset, Optional WithHeader As Boolean) As Variant()
Dim varRS() As Variant, i As Integer, j As Integer, intCol As Integer
intCol = Rs.Fields.Count
If Not WithHeader Then
i = -1
ReDim Preserve varRS(Rs.RecordCount - 1, intCol - 1)
Else
ReDim Preserve varRS(Rs.RecordCount, intCol - 1)
i = 0
For j = 0 To intCol - 1
varRS(0, j) = Rs.Fields(j).Name
Next j
End If
Rs.MoveFirst
While Not Rs.EOF
i = i + 1
For j = 0 To intCol - 1
varRS(i, j) = Rs(j).Value
Next j
Rs.MoveNext
Wend
Rs.Close
RecsToVariant = varRS
End Function
'3. procedure untuk menampilkan variant berdimensi ke sheet
Sub ViewRecordsOnSheet(rg As Range, vRecs As Variant)
With rg.Resize(UBound(vRecs, 1) + 1, UBound(vRecs, 2) + 1)
.Value = vRecs
.EntireColumn.AutoFit
End With
End Sub
'4. Cara penggunaan
Sub TamplikanQuery()
dim conn As New ADODB.Connection
If Not connectMysql(sUser, sPwd, sServer, sDb, conn) Then
MsgBox "Gagal buka database", vbCritical
exit sub
End if
dim Rs As New ADODB.Recordset
dim hasilQuery as variant
sql="SELECT acc.uraian FROM `acc`WHERE ACC.ID>1;"
OpenRecordSets conn,sql,Rs
hasilQuery= RecsToVariant(Rs, TRUE)'isikan TRUE jika akan menampilkan nama fieldnya
ViewRecordsOnSheet Range("A1"),hasilQuery
End Sub
''selamat mencoba. mohon maaf jika ada yang masih salah.
wassalam
-zainul
From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
Sent: Tuesday, March 24, 2015 4:18 PM
To: belajar-excel@yahoogroups.com
Subject: [belajar-excel] Memangil Data Di Localhost Mysql
Slemat Sore Master,,,,Saya ingin bertanya bisakah saya memangil data di
localhost mysql dan ditampilkan di sheeet excel..dengan macro,,saya
mengunakan conecctor ODBC dan sudah saya koneksikan dengan databese yg ada
di localhost dan sukses..bagaimanakah koding,a untuk memangil data tersebut
ke excle... terima kasih semoga para master bisa memberikan pencerahan
atas masalah ini.. berikut saya lampirkan
tampilanya.. koneksi222.jpg
<http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi222.jpg>
koneksi.jpg
<http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi.jpg>
MYsql.xlsx
<http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/MYsql.xlsx>
--
View this message in context: http://milis-belajar-excel.1048464.n5.nabble.com/Memangil-Data-Di-Localhost-Mysql-tp5729702.html
Sent from the Milis Belajar Excel mailing list archive at Nabble.com.
saya sharing procedure atau macro yang pernah saya buat untuk memanggil data dari database mysql dengan menggunakan query:
'program dibuat dengan menge-set object reference Microsoft activex data object (microsoft ADO)
'0. Procedure connect ke mysql
'********************************************
Function connectMysql(username As String, passwd As String, serverIP As String, db As String, conn As ADODB.Connection) As Boolean
'source :http://www.freevbcode.com/ShowCode.asp?ID=6187
conn.CursorLocation = adUseClient
conn.ConnectionString = "DRIVER={MySQL ODBC 5.2 Unicode Driver};SERVER=" & serverIP & ";UID=" & username & ";PWD=" & passwd & ";DATABASE=" & db & ";" _
& "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 163841
On Error Resume Next
conn.Open
If Err.Number Then
Err.Clear
connectMysql = False
Else
connectMysql = True
End If
End Function
'1. Prosedure membuat object recordset berdasarkan connection dan input SQL
Sub OpenRecordSets(conn As ADODB.Connection, ByVal sSQL As String, Rs As ADODB.Recordset)
Dim cRs As New ADODB.Recordset
cRs.Open sSQL, conn
Set Rs = cRs
End Sub
'2. Prosedur untuk merubah data recordset menjadi variant berdimensi
'saya lebih suka menggunakan variant berdimensi daripada menulis langsung di cell excel karena prosesnya lebih cepat.
Function RecsToVariant(Rs As ADODB.Recordset, Optional WithHeader As Boolean) As Variant()
Dim varRS() As Variant, i As Integer, j As Integer, intCol As Integer
intCol = Rs.Fields.Count
If Not WithHeader Then
i = -1
ReDim Preserve varRS(Rs.RecordCount - 1, intCol - 1)
Else
ReDim Preserve varRS(Rs.RecordCount, intCol - 1)
i = 0
For j = 0 To intCol - 1
varRS(0, j) = Rs.Fields(j).Name
Next j
End If
Rs.MoveFirst
While Not Rs.EOF
i = i + 1
For j = 0 To intCol - 1
varRS(i, j) = Rs(j).Value
Next j
Rs.MoveNext
Wend
Rs.Close
RecsToVariant = varRS
End Function
'3. procedure untuk menampilkan variant berdimensi ke sheet
Sub ViewRecordsOnSheet(rg As Range, vRecs As Variant)
With rg.Resize(UBound(vRecs, 1) + 1, UBound(vRecs, 2) + 1)
.Value = vRecs
.EntireColumn.AutoFit
End With
End Sub
'4. Cara penggunaan
Sub TamplikanQuery()
dim conn As New ADODB.Connection
If Not connectMysql(sUser, sPwd, sServer, sDb, conn) Then
MsgBox "Gagal buka database", vbCritical
exit sub
End if
dim Rs As New ADODB.Recordset
dim hasilQuery as variant
sql="SELECT acc.uraian FROM `acc`WHERE ACC.ID>1;"
OpenRecordSets conn,sql,Rs
hasilQuery= RecsToVariant(Rs, TRUE)'isikan TRUE jika akan menampilkan nama fieldnya
ViewRecordsOnSheet Range("A1"),hasilQuery
End Sub
''selamat mencoba. mohon maaf jika ada yang masih salah.
wassalam
-zainul
From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
Sent: Tuesday, March 24, 2015 4:18 PM
To: belajar-excel@yahoogroups.com
Subject: [belajar-excel] Memangil Data Di Localhost Mysql
Slemat Sore Master,,,,Saya ingin bertanya bisakah saya memangil data di
localhost mysql dan ditampilkan di sheeet excel..dengan macro,,saya
mengunakan conecctor ODBC dan sudah saya koneksikan dengan databese yg ada
di localhost dan sukses..bagaimanakah koding,a untuk memangil data tersebut
ke excle... terima kasih semoga para master bisa memberikan pencerahan
atas masalah ini.. berikut saya lampirkan
tampilanya.. koneksi222.jpg
<http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi222.jpg>
koneksi.jpg
<http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi.jpg>
MYsql.xlsx
<http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/MYsql.xlsx>
--
View this message in context: http://milis-belajar-excel.1048464.n5.nabble.com/Memangil-Data-Di-Localhost-Mysql-tp5729702.html
Sent from the Milis Belajar Excel mailing list archive at Nabble.com.
Tue Mar 24, 2015 5:40 am (PDT) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
mas Zain,
Proses nomor 2 dan nomor 3 bisa diubah begini (tapi ndak ada header)
sheets("nama sheet target").range("alamat range pojok kiri atas
target").copyfromrecordset rs, jumlah_baris, jumlah_kolom
rs -> object recordset
,jumlah_baris , jumlah kolom -> optional jika akan dibatasi jumlah baris
yang di-paste adalah tertentu atau jumlah kolomnya tertentu
selain proses copas nya yang cepat, proses paste-nya bisa langsung di-split
berdasar ruang yang disediakan.
Contoh :
query menghasilkan 36 record x 7 kolom, misalnya data series 3 tahun dengan
periode bulanan dari 2001 sampai 2003
disediakan 3 buah sheet untuk menampung per tahun. Jadi sheet thn2001 akan
menampung data 12 record tahun 2001 (dari jan sampai des dengan setiap
bulan berupa 1 record data).
hasil query disimpan di object recordset bernama rs.
paste dilakukan disetiap sheet pada range a1
proses copas dengan :
sheets("2001").range("a1").copyfromrecordset rs,12
sheets("2002").range("a1").copyfromrecordset rs,12
sheets("2003").range("a1").copyfromrecordset rs,12
akan terasa singkat dan efisien untuk penyusunan output.
pssst....
punya data 10 juta record hasil query dan akan disalin ke Excel ?
copas ke 10 sheet dengan copyfromrecordset.
kalau nama sheetnya dibuat agar mudah di-loop, berarti 3 baris kode sudah
bisa menyelesaikan proses copas nya.
paling lama 1 menit juga kelar.
;)
moga-moga menjadi bahan ide liar dalam memanfaatkan koneksi data ya...
Wassalamu'alaikum wr wb
Kid.
On Tue, Mar 24, 2015 at 9:01 PM, 'zainul_ulum[at]yahoo[dot]com'
zainul_ulum@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com> wrote:
>
>
> Mas Omez,
>
> saya sharing procedure atau macro yang pernah saya buat untuk memanggil
> data dari database mysql dengan menggunakan query:
>
>
>
> 'program dibuat dengan menge-set object reference Microsoft activex data
> object (microsoft ADO)
>
> '0. Procedure connect ke mysql
>
> '********************************************
>
> Function connectMysql(username As String, passwd As String, serverIP As
> String, db As String, conn As ADODB.Connection) As Boolean
>
> 'source :http://www.freevbcode.com/ShowCode.asp?ID=6187
>
> conn.CursorLocation = adUseClient
>
> conn.ConnectionString = "DRIVER={MySQL ODBC 5.2 Unicode
> Driver};SERVER=" & serverIP & ";UID=" & username & ";PWD=" & passwd &
> ";DATABASE=" & db & ";" _
>
> & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 163841
>
> On Error Resume Next
>
> conn.Open
>
> If Err.Number Then
>
> Err.Clear
>
> connectMysql = False
>
> Else
>
> connectMysql = True
>
> End If
>
> End Function
>
> '1. Prosedure membuat object recordset berdasarkan connection dan input
> SQL
>
> Sub OpenRecordSets(conn As ADODB.Connection, ByVal sSQL As String, Rs As
> ADODB.Recordset)
>
> Dim cRs As New ADODB.Recordset
>
> cRs.Open sSQL, conn
>
> Set Rs = cRs
>
> End Sub
>
>
>
> '2. Prosedur untuk merubah data recordset menjadi variant berdimensi
>
> 'saya lebih suka menggunakan variant berdimensi daripada menulis langsung
> di cell excel karena prosesnya lebih cepat.
>
>
>
> Function RecsToVariant(Rs As ADODB.Recordset, Optional WithHeader As
> Boolean) As Variant()
>
> Dim varRS() As Variant, i As Integer, j As Integer, intCol As Integer
>
>
>
> intCol = Rs.Fields.Count
>
> If Not WithHeader Then
>
> i = -1
>
> ReDim Preserve varRS(Rs.RecordCount - 1, intCol - 1)
>
> Else
>
> ReDim Preserve varRS(Rs.RecordCount, intCol - 1)
>
> i = 0
>
> For j = 0 To intCol - 1
>
> varRS(0, j) = Rs.Fields(j).Name
>
> Next j
>
> End If
>
> Rs.MoveFirst
>
> While Not Rs.EOF
>
> i = i + 1
>
> For j = 0 To intCol - 1
>
> varRS(i, j) = Rs(j).Value
>
> Next j
>
> Rs.MoveNext
>
> Wend
>
> Rs.Close
>
> RecsToVariant = varRS
>
> End Function
>
>
>
> '3. procedure untuk menampilkan variant berdimensi ke sheet
>
>
>
> Sub ViewRecordsOnSheet(rg As Range, vRecs As Variant)
>
> With rg.Resize(UBound(vRecs, 1) + 1, UBound(vRecs, 2) + 1)
>
> .Value = vRecs
>
> .EntireColumn.AutoFit
>
> End With
>
> End Sub
>
>
>
> '4. Cara penggunaan
>
> Sub TamplikanQuery()
>
> dim conn As New ADODB.Connection
>
> If Not connectMysql(sUser, sPwd, sServer, sDb, conn) Then
>
> MsgBox "Gagal buka database", vbCritical
>
> exit sub
>
> End if
>
> dim Rs As New ADODB.Recordset
>
> dim hasilQuery as variant
>
> sql="SELECT acc.uraian FROM `acc`WHERE ACC.ID>1;"
>
>
>
> OpenRecordSets conn,sql,Rs
>
> hasilQuery= RecsToVariant(Rs, TRUE)'isikan TRUE jika akan menampilkan nama
> fieldnya
>
> ViewRecordsOnSheet Range("A1"),hasilQuery
>
> End Sub
>
>
>
> ''selamat mencoba. mohon maaf jika ada yang masih salah.
>
>
>
> wassalam
>
> -zainul
>
>
>
> *From:* belajar-excel@yahoogroups.com [mailto:
> belajar-excel@yahoogroups.com]
> *Sent:* Tuesday, March 24, 2015 4:18 PM
> *To:* belajar-excel@yahoogroups.com
> *Subject:* [belajar-excel] Memangil Data Di Localhost Mysql
>
>
>
>
>
> Slemat Sore Master,,,,Saya ingin bertanya bisakah saya memangil data di
> localhost mysql dan ditampilkan di sheeet excel..dengan macro,,saya
> mengunakan conecctor ODBC dan sudah saya koneksikan dengan databese yg ada
> di localhost dan sukses..bagaimanakah koding,a untuk memangil data tersebut
> ke excle... terima kasih semoga para master bisa memberikan pencerahan
> atas masalah ini.. berikut saya lampirkan
> tampilanya.. koneksi222.jpg
> <
> http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi222.jpg>
>
> koneksi.jpg
> <
> http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi.jpg>
>
> MYsql.xlsx
> <http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/MYsql.xlsx>
>
>
> --
> View this message in context:
> http://milis-belajar-excel.1048464.n5.nabble.com/Memangil-Data-Di-Localhost-Mysql-tp5729702.html
> Sent from the Milis Belajar Excel mailing list archive at Nabble.com.
>
>
>
Proses nomor 2 dan nomor 3 bisa diubah begini (tapi ndak ada header)
sheets("nama sheet target").range("alamat range pojok kiri atas
target").copyfromrecordset rs, jumlah_baris, jumlah_kolom
rs -> object recordset
,jumlah_baris , jumlah kolom -> optional jika akan dibatasi jumlah baris
yang di-paste adalah tertentu atau jumlah kolomnya tertentu
selain proses copas nya yang cepat, proses paste-nya bisa langsung di-split
berdasar ruang yang disediakan.
Contoh :
query menghasilkan 36 record x 7 kolom, misalnya data series 3 tahun dengan
periode bulanan dari 2001 sampai 2003
disediakan 3 buah sheet untuk menampung per tahun. Jadi sheet thn2001 akan
menampung data 12 record tahun 2001 (dari jan sampai des dengan setiap
bulan berupa 1 record data).
hasil query disimpan di object recordset bernama rs.
paste dilakukan disetiap sheet pada range a1
proses copas dengan :
sheets("2001").range("a1").copyfromrecordset rs,12
sheets("2002").range("a1").copyfromrecordset rs,12
sheets("2003").range("a1").copyfromrecordset rs,12
akan terasa singkat dan efisien untuk penyusunan output.
pssst....
punya data 10 juta record hasil query dan akan disalin ke Excel ?
copas ke 10 sheet dengan copyfromrecordset.
kalau nama sheetnya dibuat agar mudah di-loop, berarti 3 baris kode sudah
bisa menyelesaikan proses copas nya.
paling lama 1 menit juga kelar.
;)
moga-moga menjadi bahan ide liar dalam memanfaatkan koneksi data ya...
Wassalamu'alaikum wr wb
Kid.
On Tue, Mar 24, 2015 at 9:01 PM, 'zainul_ulum[at]yahoo[dot]com'
zainul_ulum@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com> wrote:
>
>
> Mas Omez,
>
> saya sharing procedure atau macro yang pernah saya buat untuk memanggil
> data dari database mysql dengan menggunakan query:
>
>
>
> 'program dibuat dengan menge-set object reference Microsoft activex data
> object (microsoft ADO)
>
> '0. Procedure connect ke mysql
>
> '********************************************
>
> Function connectMysql(username As String, passwd As String, serverIP As
> String, db As String, conn As ADODB.Connection) As Boolean
>
> 'source :http://www.freevbcode.com/ShowCode.asp?ID=6187
>
> conn.CursorLocation = adUseClient
>
> conn.ConnectionString = "DRIVER={MySQL ODBC 5.2 Unicode
> Driver};SERVER=" & serverIP & ";UID=" & username & ";PWD=" & passwd &
> ";DATABASE=" & db & ";" _
>
> & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 163841
>
> On Error Resume Next
>
> conn.Open
>
> If Err.Number Then
>
> Err.Clear
>
> connectMysql = False
>
> Else
>
> connectMysql = True
>
> End If
>
> End Function
>
> '1. Prosedure membuat object recordset berdasarkan connection dan input
> SQL
>
> Sub OpenRecordSets(conn As ADODB.Connection, ByVal sSQL As String, Rs As
> ADODB.Recordset)
>
> Dim cRs As New ADODB.Recordset
>
> cRs.Open sSQL, conn
>
> Set Rs = cRs
>
> End Sub
>
>
>
> '2. Prosedur untuk merubah data recordset menjadi variant berdimensi
>
> 'saya lebih suka menggunakan variant berdimensi daripada menulis langsung
> di cell excel karena prosesnya lebih cepat.
>
>
>
> Function RecsToVariant(Rs As ADODB.Recordset, Optional WithHeader As
> Boolean) As Variant()
>
> Dim varRS() As Variant, i As Integer, j As Integer, intCol As Integer
>
>
>
> intCol = Rs.Fields.Count
>
> If Not WithHeader Then
>
> i = -1
>
> ReDim Preserve varRS(Rs.RecordCount - 1, intCol - 1)
>
> Else
>
> ReDim Preserve varRS(Rs.RecordCount, intCol - 1)
>
> i = 0
>
> For j = 0 To intCol - 1
>
> varRS(0, j) = Rs.Fields(j).Name
>
> Next j
>
> End If
>
> Rs.MoveFirst
>
> While Not Rs.EOF
>
> i = i + 1
>
> For j = 0 To intCol - 1
>
> varRS(i, j) = Rs(j).Value
>
> Next j
>
> Rs.MoveNext
>
> Wend
>
> Rs.Close
>
> RecsToVariant = varRS
>
> End Function
>
>
>
> '3. procedure untuk menampilkan variant berdimensi ke sheet
>
>
>
> Sub ViewRecordsOnSheet(rg As Range, vRecs As Variant)
>
> With rg.Resize(UBound(vRecs, 1) + 1, UBound(vRecs, 2) + 1)
>
> .Value = vRecs
>
> .EntireColumn.AutoFit
>
> End With
>
> End Sub
>
>
>
> '4. Cara penggunaan
>
> Sub TamplikanQuery()
>
> dim conn As New ADODB.Connection
>
> If Not connectMysql(sUser, sPwd, sServer, sDb, conn) Then
>
> MsgBox "Gagal buka database", vbCritical
>
> exit sub
>
> End if
>
> dim Rs As New ADODB.Recordset
>
> dim hasilQuery as variant
>
> sql="SELECT acc.uraian FROM `acc`WHERE ACC.ID>1;"
>
>
>
> OpenRecordSets conn,sql,Rs
>
> hasilQuery= RecsToVariant(Rs, TRUE)'isikan TRUE jika akan menampilkan nama
> fieldnya
>
> ViewRecordsOnSheet Range("A1"),hasilQuery
>
> End Sub
>
>
>
> ''selamat mencoba. mohon maaf jika ada yang masih salah.
>
>
>
> wassalam
>
> -zainul
>
>
>
> *From:* belajar-excel@yahoogroups.com [mailto:
> belajar-excel@yahoogroups.com]
> *Sent:* Tuesday, March 24, 2015 4:18 PM
> *To:* belajar-excel@yahoogroups.com
> *Subject:* [belajar-excel] Memangil Data Di Localhost Mysql
>
>
>
>
>
> Slemat Sore Master,,,,Saya ingin bertanya bisakah saya memangil data di
> localhost mysql dan ditampilkan di sheeet excel..dengan macro,,saya
> mengunakan conecctor ODBC dan sudah saya koneksikan dengan databese yg ada
> di localhost dan sukses..bagaimanakah koding,a untuk memangil data tersebut
> ke excle... terima kasih semoga para master bisa memberikan pencerahan
> atas masalah ini.. berikut saya lampirkan
> tampilanya.. koneksi222.jpg
> <
> http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi222.jpg>
>
> koneksi.jpg
> <
> http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi.jpg>
>
> MYsql.xlsx
> <http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/MYsql.xlsx>
>
>
> --
> View this message in context:
> http://milis-belajar-excel.1048464.n5.nabble.com/Memangil-Data-Di-Localhost-Mysql-tp5729702.html
> Sent from the Milis Belajar Excel mailing list archive at Nabble.com.
>
>
>
Tue Mar 24, 2015 5:58 am (PDT) . Posted by:
zainul_ulum
Maturnuw Mas Kid,
jadi pingin buat coding lagi...
+zainul
-----Original Message-----
From: "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]"
Sent: 24/03/2015, 19:40
To: BeExcel
Subject: Re: [belajar-excel] Memangil Data Di Localhost Mysql
mas Zain,
Proses nomor 2 dan nomor 3 bisa diubah begini (tapi ndak ada header)
sheets("nama sheet target").range("alamat range pojok kiri atas
target").copyfromrecordset rs, jumlah_baris, jumlah_kolom
rs -> object recordset
,jumlah_baris , jumlah kolom -> optional jika akan dibatasi jumlah baris
yang di-paste adalah tertentu atau jumlah kolomnya tertentu
selain proses copas nya yang cepat, proses paste-nya bisa langsung di-split
berdasar ruang yang disediakan.
Contoh :
query menghasilkan 36 record x 7 kolom, misalnya data series 3 tahun dengan
periode bulanan dari 2001 sampai 2003
disediakan 3 buah sheet untuk menampung per tahun. Jadi sheet thn2001 akan
menampung data 12 record tahun 2001 (dari jan sampai des dengan setiap
bulan berupa 1 record data).
hasil query disimpan di object recordset bernama rs.
paste dilakukan disetiap sheet pada range a1
proses copas dengan :
sheets("2001").range("a1").copyfromrecordset rs,12
sheets("2002").range("a1").copyfromrecordset rs,12
sheets("2003").range("a1").copyfromrecordset rs,12
akan terasa singkat dan efisien untuk penyusunan output.
pssst....
punya data 10 juta record hasil query dan akan disalin ke Excel ?
copas ke 10 sheet dengan copyfromrecordset.
kalau nama sheetnya dibuat agar mudah di-loop, berarti 3 baris kode sudah
bisa menyelesaikan proses copas nya.
paling lama 1 menit juga kelar.
;)
moga-moga menjadi bahan ide liar dalam memanfaatkan koneksi data ya...
Wassalamu'alaikum wr wb
Kid.
On Tue, Mar 24, 2015 at 9:01 PM, 'zainul_ulum[at]yahoo[dot]com'
zainul_ulum@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com> wrote:
>
>
> Mas Omez,
>
> saya sharing procedure atau macro yang pernah saya buat untuk memanggil
> data dari database mysql dengan menggunakan query:
>
>
>
> 'program dibuat dengan menge-set object reference Microsoft activex data
> object (microsoft ADO)
>
> '0. Procedure connect ke mysql
>
> '********************************************
>
> Function connectMysql(username As String, passwd As String, serverIP As
> String, db As String, conn As ADODB.Connection) As Boolean
>
> 'source :http://www.freevbcode.com/ShowCode.asp?ID=6187
>
> conn.CursorLocation = adUseClient
>
> conn.ConnectionString = "DRIVER={MySQL ODBC 5.2 Unicode
> Driver};SERVER=" & serverIP & ";UID=" & username & ";PWD=" & passwd &
> ";DATABASE=" & db & ";" _
>
> & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 163841
>
> On Error Resume Next
>
> conn.Open
>
> If Err.Number Then
>
> Err.Clear
>
> connectMysql = False
>
> Else
>
> connectMysql = True
>
> End If
>
> End Function
>
> '1. Prosedure membuat object recordset berdasarkan connection dan input
> SQL
>
> Sub OpenRecordSets(conn As ADODB.Connection, ByVal sSQL As String, Rs As
> ADODB.Recordset)
>
> Dim cRs As New ADODB.Recordset
>
> cRs.Open sSQL, conn
>
> Set Rs = cRs
>
> End Sub
>
>
>
> '2. Prosedur untuk merubah data recordset menjadi variant berdimensi
>
> 'saya lebih suka menggunakan variant berdimensi daripada menulis langsung
> di cell excel karena prosesnya lebih cepat.
>
>
>
> Function RecsToVariant(Rs As ADODB.Recordset, Optional WithHeader As
> Boolean) As Variant()
>
> Dim varRS() As Variant, i As Integer, j As Integer, intCol As Integer
>
>
>
> intCol = Rs.Fields.Count
>
> If Not WithHeader Then
>
> i = -1
>
> ReDim Preserve varRS(Rs.RecordCount - 1, intCol - 1)
>
> Else
>
> ReDim Preserve varRS(Rs.RecordCount, intCol - 1)
>
> i = 0
>
> For j = 0 To intCol - 1
>
> varRS(0, j) = Rs.Fields(j).Name
>
> Next j
>
> End If
>
> Rs.MoveFirst
>
> While Not Rs.EOF
>
> i = i + 1
>
> For j = 0 To intCol - 1
>
> varRS(i, j) = Rs(j).Value
>
> Next j
>
> Rs.MoveNext
>
> Wend
>
> Rs.Close
>
> RecsToVariant = varRS
>
> End Function
>
>
>
> '3. procedure untuk menampilkan variant berdimensi ke sheet
>
>
>
> Sub ViewRecordsOnSheet(rg As Range, vRecs As Variant)
>
> With rg.Resize(UBound(vRecs, 1) + 1, UBound(vRecs, 2) + 1)
>
> .Value = vRecs
>
> .EntireColumn.AutoFit
>
> End With
>
> End Sub
>
>
>
> '4. Cara penggunaan
>
> Sub TamplikanQuery()
>
> dim conn As New ADODB.Connection
>
> If Not connectMysql(sUser, sPwd, sServer, sDb, conn) Then
>
> MsgBox "Gagal buka database", vbCritical
>
> exit sub
>
> End if
>
> dim Rs As New ADODB.Recordset
>
> dim hasilQuery as variant
>
> sql="SELECT acc.uraian FROM `acc`WHERE ACC.ID>1;"
>
>
>
> OpenRecordSets conn,sql,Rs
>
> hasilQuery= RecsToVariant(Rs, TRUE)'isikan TRUE jika akan menampilkan nama
> fieldnya
>
> ViewRecordsOnSheet Range("A1"),hasilQuery
>
> End Sub
>
>
>
> ''selamat mencoba. mohon maaf jika ada yang masih salah.
>
>
>
> wassalam
>
> -zainul
>
>
>
> *From:* belajar-excel@yahoogroups.com [mailto:
> belajar-excel@yahoogroups.com]
> *Sent:* Tuesday, March 24, 2015 4:18 PM
> *To:* belajar-excel@yahoogroups.com
> *Subject:* [belajar-excel] Memangil Data Di Localhost Mysql
>
>
>
>
>
> Slemat Sore Master,,,,Saya ingin bertanya bisakah saya memangil data di
> localhost mysql dan ditampilkan di sheeet excel..dengan macro,,saya
> mengunakan conecctor ODBC dan sudah saya koneksikan dengan databese yg ada
> di localhost dan sukses..bagaimanakah koding,a untuk memangil data tersebut
> ke excle... terima kasih semoga para master bisa memberikan pencerahan
> atas masalah ini.. berikut saya lampirkan
> tampilanya.. koneksi222.jpg
> <
> http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi222.jpg>
>
> koneksi.jpg
> <
> http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi.jpg>
>
> MYsql.xlsx
> <http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/MYsql.xlsx>
>
>
> --
> View this message in context:
> http://milis-belajar-excel.1048464.n5.nabble.com/Memangil-Data-Di-Localhost-Mysql-tp5729702.html
> Sent from the Milis Belajar Excel mailing list archive at Nabble.com.
>
>
>
jadi pingin buat coding lagi...
+zainul
-----Original Message-----
From: "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]"
Sent: 24/03/2015, 19:40
To: BeExcel
Subject: Re: [belajar-excel] Memangil Data Di Localhost Mysql
mas Zain,
Proses nomor 2 dan nomor 3 bisa diubah begini (tapi ndak ada header)
sheets("nama sheet target").range("alamat range pojok kiri atas
target").copyfromrecordset rs, jumlah_baris, jumlah_kolom
rs -> object recordset
,jumlah_baris , jumlah kolom -> optional jika akan dibatasi jumlah baris
yang di-paste adalah tertentu atau jumlah kolomnya tertentu
selain proses copas nya yang cepat, proses paste-nya bisa langsung di-split
berdasar ruang yang disediakan.
Contoh :
query menghasilkan 36 record x 7 kolom, misalnya data series 3 tahun dengan
periode bulanan dari 2001 sampai 2003
disediakan 3 buah sheet untuk menampung per tahun. Jadi sheet thn2001 akan
menampung data 12 record tahun 2001 (dari jan sampai des dengan setiap
bulan berupa 1 record data).
hasil query disimpan di object recordset bernama rs.
paste dilakukan disetiap sheet pada range a1
proses copas dengan :
sheets("2001").range("a1").copyfromrecordset rs,12
sheets("2002").range("a1").copyfromrecordset rs,12
sheets("2003").range("a1").copyfromrecordset rs,12
akan terasa singkat dan efisien untuk penyusunan output.
pssst....
punya data 10 juta record hasil query dan akan disalin ke Excel ?
copas ke 10 sheet dengan copyfromrecordset.
kalau nama sheetnya dibuat agar mudah di-loop, berarti 3 baris kode sudah
bisa menyelesaikan proses copas nya.
paling lama 1 menit juga kelar.
;)
moga-moga menjadi bahan ide liar dalam memanfaatkan koneksi data ya...
Wassalamu'alaikum wr wb
Kid.
On Tue, Mar 24, 2015 at 9:01 PM, 'zainul_ulum[at]yahoo[dot]com'
zainul_ulum@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com> wrote:
>
>
> Mas Omez,
>
> saya sharing procedure atau macro yang pernah saya buat untuk memanggil
> data dari database mysql dengan menggunakan query:
>
>
>
> 'program dibuat dengan menge-set object reference Microsoft activex data
> object (microsoft ADO)
>
> '0. Procedure connect ke mysql
>
> '********************************************
>
> Function connectMysql(username As String, passwd As String, serverIP As
> String, db As String, conn As ADODB.Connection) As Boolean
>
> 'source :http://www.freevbcode.com/ShowCode.asp?ID=6187
>
> conn.CursorLocation = adUseClient
>
> conn.ConnectionString = "DRIVER={MySQL ODBC 5.2 Unicode
> Driver};SERVER=" & serverIP & ";UID=" & username & ";PWD=" & passwd &
> ";DATABASE=" & db & ";" _
>
> & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 163841
>
> On Error Resume Next
>
> conn.Open
>
> If Err.Number Then
>
> Err.Clear
>
> connectMysql = False
>
> Else
>
> connectMysql = True
>
> End If
>
> End Function
>
> '1. Prosedure membuat object recordset berdasarkan connection dan input
> SQL
>
> Sub OpenRecordSets(conn As ADODB.Connection, ByVal sSQL As String, Rs As
> ADODB.Recordset)
>
> Dim cRs As New ADODB.Recordset
>
> cRs.Open sSQL, conn
>
> Set Rs = cRs
>
> End Sub
>
>
>
> '2. Prosedur untuk merubah data recordset menjadi variant berdimensi
>
> 'saya lebih suka menggunakan variant berdimensi daripada menulis langsung
> di cell excel karena prosesnya lebih cepat.
>
>
>
> Function RecsToVariant(Rs As ADODB.Recordset, Optional WithHeader As
> Boolean) As Variant()
>
> Dim varRS() As Variant, i As Integer, j As Integer, intCol As Integer
>
>
>
> intCol = Rs.Fields.Count
>
> If Not WithHeader Then
>
> i = -1
>
> ReDim Preserve varRS(Rs.RecordCount - 1, intCol - 1)
>
> Else
>
> ReDim Preserve varRS(Rs.RecordCount, intCol - 1)
>
> i = 0
>
> For j = 0 To intCol - 1
>
> varRS(0, j) = Rs.Fields(j).Name
>
> Next j
>
> End If
>
> Rs.MoveFirst
>
> While Not Rs.EOF
>
> i = i + 1
>
> For j = 0 To intCol - 1
>
> varRS(i, j) = Rs(j).Value
>
> Next j
>
> Rs.MoveNext
>
> Wend
>
> Rs.Close
>
> RecsToVariant = varRS
>
> End Function
>
>
>
> '3. procedure untuk menampilkan variant berdimensi ke sheet
>
>
>
> Sub ViewRecordsOnSheet(rg As Range, vRecs As Variant)
>
> With rg.Resize(UBound(vRecs, 1) + 1, UBound(vRecs, 2) + 1)
>
> .Value = vRecs
>
> .EntireColumn.AutoFit
>
> End With
>
> End Sub
>
>
>
> '4. Cara penggunaan
>
> Sub TamplikanQuery()
>
> dim conn As New ADODB.Connection
>
> If Not connectMysql(sUser, sPwd, sServer, sDb, conn) Then
>
> MsgBox "Gagal buka database", vbCritical
>
> exit sub
>
> End if
>
> dim Rs As New ADODB.Recordset
>
> dim hasilQuery as variant
>
> sql="SELECT acc.uraian FROM `acc`WHERE ACC.ID>1;"
>
>
>
> OpenRecordSets conn,sql,Rs
>
> hasilQuery= RecsToVariant(Rs, TRUE)'isikan TRUE jika akan menampilkan nama
> fieldnya
>
> ViewRecordsOnSheet Range("A1"),hasilQuery
>
> End Sub
>
>
>
> ''selamat mencoba. mohon maaf jika ada yang masih salah.
>
>
>
> wassalam
>
> -zainul
>
>
>
> *From:* belajar-excel@yahoogroups.com [mailto:
> belajar-excel@yahoogroups.com]
> *Sent:* Tuesday, March 24, 2015 4:18 PM
> *To:* belajar-excel@yahoogroups.com
> *Subject:* [belajar-excel] Memangil Data Di Localhost Mysql
>
>
>
>
>
> Slemat Sore Master,,,,Saya ingin bertanya bisakah saya memangil data di
> localhost mysql dan ditampilkan di sheeet excel..dengan macro,,saya
> mengunakan conecctor ODBC dan sudah saya koneksikan dengan databese yg ada
> di localhost dan sukses..bagaimanakah koding,a untuk memangil data tersebut
> ke excle... terima kasih semoga para master bisa memberikan pencerahan
> atas masalah ini.. berikut saya lampirkan
> tampilanya.. koneksi222.jpg
> <
> http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi222.jpg>
>
> koneksi.jpg
> <
> http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi.jpg>
>
> MYsql.xlsx
> <http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/MYsql.xlsx>
>
>
> --
> View this message in context:
> http://milis-belajar-excel.1048464.n5.nabble.com/Memangil-Data-Di-Localhost-Mysql-tp5729702.html
> Sent from the Milis Belajar Excel mailing list archive at Nabble.com.
>
>
>
Tue Mar 24, 2015 6:06 am (PDT) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
wkwkwkkwk....
sip
met berkreasi
moga2 ada yang bisa di-share dimari
2015-03-24 23:57 GMT+11:00 zainul_ulum@yahoo.com [belajar-excel] <
belajar-excel@yahoogroups.com>:
>
>
> Maturnuw Mas Kid,
> jadi pingin buat coding lagi...
> +zainul
>
> -----Original Message-----
> From: "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]"
> Sent: 24/03/2015, 19:40
> To: BeExcel
> Subject: Re: [belajar-excel] Memangil Data Di Localhost Mysql
>
> mas Zain,
>
> Proses nomor 2 dan nomor 3 bisa diubah begini (tapi ndak ada header)
> sheets("nama sheet target").range("alamat range pojok kiri atas
> target").copyfromrecordset rs, jumlah_baris, jumlah_kolom
>
> rs -> object recordset
> ,jumlah_baris , jumlah kolom -> optional jika akan dibatasi jumlah baris
> yang di-paste adalah tertentu atau jumlah kolomnya tertentu
>
> selain proses copas nya yang cepat, proses paste-nya bisa langsung di-split
> berdasar ruang yang disediakan.
>
> Contoh :
> query menghasilkan 36 record x 7 kolom, misalnya data series 3 tahun dengan
> periode bulanan dari 2001 sampai 2003
> disediakan 3 buah sheet untuk menampung per tahun. Jadi sheet thn2001 akan
> menampung data 12 record tahun 2001 (dari jan sampai des dengan setiap
> bulan berupa 1 record data).
>
> hasil query disimpan di object recordset bernama rs.
> paste dilakukan disetiap sheet pada range a1
>
> proses copas dengan :
> sheets("2001").range("a1").copyfromrecordset rs,12
> sheets("2002").range("a1").copyfromrecordset rs,12
> sheets("2003").range("a1").copyfromrecordset rs,12
>
> akan terasa singkat dan efisien untuk penyusunan output.
>
> pssst....
> punya data 10 juta record hasil query dan akan disalin ke Excel ?
> copas ke 10 sheet dengan copyfromrecordset.
> kalau nama sheetnya dibuat agar mudah di-loop, berarti 3 baris kode sudah
> bisa menyelesaikan proses copas nya.
> paling lama 1 menit juga kelar.
>
> ;)
> moga-moga menjadi bahan ide liar dalam memanfaatkan koneksi data ya...
>
> Wassalamu'alaikum wr wb
> Kid.
>
> On Tue, Mar 24, 2015 at 9:01 PM, 'zainul_ulum[at]yahoo[dot]com'
> zainul_ulum@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com>
> wrote:
>
> >
> >
> > Mas Omez,
> >
> > saya sharing procedure atau macro yang pernah saya buat untuk memanggil
> > data dari database mysql dengan menggunakan query:
> >
> >
> >
> > 'program dibuat dengan menge-set object reference Microsoft activex data
> > object (microsoft ADO)
> >
> > '0. Procedure connect ke mysql
> >
> > '********************************************
> >
> > Function connectMysql(username As String, passwd As String, serverIP As
> > String, db As String, conn As ADODB.Connection) As Boolean
> >
> > 'source :http://www.freevbcode.com/ShowCode.asp?ID=6187
> >
> > conn.CursorLocation = adUseClient
> >
> > conn.ConnectionString = "DRIVER={MySQL ODBC 5.2 Unicode
> > Driver};SERVER=" & serverIP & ";UID=" & username & ";PWD=" & passwd &
> > ";DATABASE=" & db & ";" _
> >
> > & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 163841
> >
> > On Error Resume Next
> >
> > conn.Open
> >
> > If Err.Number Then
> >
> > Err.Clear
> >
> > connectMysql = False
> >
> > Else
> >
> > connectMysql = True
> >
> > End If
> >
> > End Function
> >
> > '1. Prosedure membuat object recordset berdasarkan connection dan input
> > SQL
> >
> > Sub OpenRecordSets(conn As ADODB.Connection, ByVal sSQL As String, Rs As
> > ADODB.Recordset)
> >
> > Dim cRs As New ADODB.Recordset
> >
> > cRs.Open sSQL, conn
> >
> > Set Rs = cRs
> >
> > End Sub
> >
> >
> >
> > '2. Prosedur untuk merubah data recordset menjadi variant berdimensi
> >
> > 'saya lebih suka menggunakan variant berdimensi daripada menulis langsung
> > di cell excel karena prosesnya lebih cepat.
> >
> >
> >
> > Function RecsToVariant(Rs As ADODB.Recordset, Optional WithHeader As
> > Boolean) As Variant()
> >
> > Dim varRS() As Variant, i As Integer, j As Integer, intCol As Integer
> >
> >
> >
> > intCol = Rs.Fields.Count
> >
> > If Not WithHeader Then
> >
> > i = -1
> >
> > ReDim Preserve varRS(Rs.RecordCount - 1, intCol - 1)
> >
> > Else
> >
> > ReDim Preserve varRS(Rs.RecordCount, intCol - 1)
> >
> > i = 0
> >
> > For j = 0 To intCol - 1
> >
> > varRS(0, j) = Rs.Fields(j).Name
> >
> > Next j
> >
> > End If
> >
> > Rs.MoveFirst
> >
> > While Not Rs.EOF
> >
> > i = i + 1
> >
> > For j = 0 To intCol - 1
> >
> > varRS(i, j) = Rs(j).Value
> >
> > Next j
> >
> > Rs.MoveNext
> >
> > Wend
> >
> > Rs.Close
> >
> > RecsToVariant = varRS
> >
> > End Function
> >
> >
> >
> > '3. procedure untuk menampilkan variant berdimensi ke sheet
> >
> >
> >
> > Sub ViewRecordsOnSheet(rg As Range, vRecs As Variant)
> >
> > With rg.Resize(UBound(vRecs, 1) + 1, UBound(vRecs, 2) + 1)
> >
> > .Value = vRecs
> >
> > .EntireColumn.AutoFit
> >
> > End With
> >
> > End Sub
> >
> >
> >
> > '4. Cara penggunaan
> >
> > Sub TamplikanQuery()
> >
> > dim conn As New ADODB.Connection
> >
> > If Not connectMysql(sUser, sPwd, sServer, sDb, conn) Then
> >
> > MsgBox "Gagal buka database", vbCritical
> >
> > exit sub
> >
> > End if
> >
> > dim Rs As New ADODB.Recordset
> >
> > dim hasilQuery as variant
> >
> > sql="SELECT acc.uraian FROM `acc`WHERE ACC.ID>1;"
> >
> >
> >
> > OpenRecordSets conn,sql,Rs
> >
> > hasilQuery= RecsToVariant(Rs, TRUE)'isikan TRUE jika akan menampilkan
> nama
> > fieldnya
> >
> > ViewRecordsOnSheet Range("A1"),hasilQuery
> >
> > End Sub
> >
> >
> >
> > ''selamat mencoba. mohon maaf jika ada yang masih salah.
> >
> >
> >
> > wassalam
> >
> > -zainul
> >
> >
> >
> > *From:* belajar-excel@yahoogroups.com [mailto:
> > belajar-excel@yahoogroups.com]
> > *Sent:* Tuesday, March 24, 2015 4:18 PM
> > *To:* belajar-excel@yahoogroups.com
> > *Subject:* [belajar-excel] Memangil Data Di Localhost Mysql
> >
> >
> >
> >
> >
> > Slemat Sore Master,,,,Saya ingin bertanya bisakah saya memangil data di
> > localhost mysql dan ditampilkan di sheeet excel..dengan macro,,saya
> > mengunakan conecctor ODBC dan sudah saya koneksikan dengan databese yg
> ada
> > di localhost dan sukses..bagaimanakah koding,a untuk memangil data
> tersebut
> > ke excle... terima kasih semoga para master bisa memberikan pencerahan
> > atas masalah ini.. berikut saya lampirkan
> > tampilanya.. koneksi222.jpg
> > <
> >
> http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi222.jpg
> >
> >
> > koneksi.jpg
> > <
> >
> http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi.jpg
> >
> >
> > MYsql.xlsx
> > <
> http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/MYsql.xlsx>
> >
> >
> > --
> > View this message in context:
> >
> http://milis-belajar-excel.1048464.n5.nabble.com/Memangil-Data-Di-Localhost-Mysql-tp5729702.html
> > Sent from the Milis Belajar Excel mailing list archive at Nabble.com.
> >
> >
> >
>
>
>
sip
met berkreasi
moga2 ada yang bisa di-share dimari
2015-03-24 23:57 GMT+11:00 zainul_ulum@yahoo.com [belajar-excel] <
belajar-excel@yahoogroups.com>:
>
>
> Maturnuw Mas Kid,
> jadi pingin buat coding lagi...
> +zainul
>
> -----Original Message-----
> From: "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]"
> Sent: 24/03/2015, 19:40
> To: BeExcel
> Subject: Re: [belajar-excel] Memangil Data Di Localhost Mysql
>
> mas Zain,
>
> Proses nomor 2 dan nomor 3 bisa diubah begini (tapi ndak ada header)
> sheets("nama sheet target").range("alamat range pojok kiri atas
> target").copyfromrecordset rs, jumlah_baris, jumlah_kolom
>
> rs -> object recordset
> ,jumlah_baris , jumlah kolom -> optional jika akan dibatasi jumlah baris
> yang di-paste adalah tertentu atau jumlah kolomnya tertentu
>
> selain proses copas nya yang cepat, proses paste-nya bisa langsung di-split
> berdasar ruang yang disediakan.
>
> Contoh :
> query menghasilkan 36 record x 7 kolom, misalnya data series 3 tahun dengan
> periode bulanan dari 2001 sampai 2003
> disediakan 3 buah sheet untuk menampung per tahun. Jadi sheet thn2001 akan
> menampung data 12 record tahun 2001 (dari jan sampai des dengan setiap
> bulan berupa 1 record data).
>
> hasil query disimpan di object recordset bernama rs.
> paste dilakukan disetiap sheet pada range a1
>
> proses copas dengan :
> sheets("2001").range("a1").copyfromrecordset rs,12
> sheets("2002").range("a1").copyfromrecordset rs,12
> sheets("2003").range("a1").copyfromrecordset rs,12
>
> akan terasa singkat dan efisien untuk penyusunan output.
>
> pssst....
> punya data 10 juta record hasil query dan akan disalin ke Excel ?
> copas ke 10 sheet dengan copyfromrecordset.
> kalau nama sheetnya dibuat agar mudah di-loop, berarti 3 baris kode sudah
> bisa menyelesaikan proses copas nya.
> paling lama 1 menit juga kelar.
>
> ;)
> moga-moga menjadi bahan ide liar dalam memanfaatkan koneksi data ya...
>
> Wassalamu'alaikum wr wb
> Kid.
>
> On Tue, Mar 24, 2015 at 9:01 PM, 'zainul_ulum[at]yahoo[dot]com'
> zainul_ulum@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com>
> wrote:
>
> >
> >
> > Mas Omez,
> >
> > saya sharing procedure atau macro yang pernah saya buat untuk memanggil
> > data dari database mysql dengan menggunakan query:
> >
> >
> >
> > 'program dibuat dengan menge-set object reference Microsoft activex data
> > object (microsoft ADO)
> >
> > '0. Procedure connect ke mysql
> >
> > '********************************************
> >
> > Function connectMysql(username As String, passwd As String, serverIP As
> > String, db As String, conn As ADODB.Connection) As Boolean
> >
> > 'source :http://www.freevbcode.com/ShowCode.asp?ID=6187
> >
> > conn.CursorLocation = adUseClient
> >
> > conn.ConnectionString = "DRIVER={MySQL ODBC 5.2 Unicode
> > Driver};SERVER=" & serverIP & ";UID=" & username & ";PWD=" & passwd &
> > ";DATABASE=" & db & ";" _
> >
> > & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 163841
> >
> > On Error Resume Next
> >
> > conn.Open
> >
> > If Err.Number Then
> >
> > Err.Clear
> >
> > connectMysql = False
> >
> > Else
> >
> > connectMysql = True
> >
> > End If
> >
> > End Function
> >
> > '1. Prosedure membuat object recordset berdasarkan connection dan input
> > SQL
> >
> > Sub OpenRecordSets(conn As ADODB.Connection, ByVal sSQL As String, Rs As
> > ADODB.Recordset)
> >
> > Dim cRs As New ADODB.Recordset
> >
> > cRs.Open sSQL, conn
> >
> > Set Rs = cRs
> >
> > End Sub
> >
> >
> >
> > '2. Prosedur untuk merubah data recordset menjadi variant berdimensi
> >
> > 'saya lebih suka menggunakan variant berdimensi daripada menulis langsung
> > di cell excel karena prosesnya lebih cepat.
> >
> >
> >
> > Function RecsToVariant(Rs As ADODB.Recordset, Optional WithHeader As
> > Boolean) As Variant()
> >
> > Dim varRS() As Variant, i As Integer, j As Integer, intCol As Integer
> >
> >
> >
> > intCol = Rs.Fields.Count
> >
> > If Not WithHeader Then
> >
> > i = -1
> >
> > ReDim Preserve varRS(Rs.RecordCount - 1, intCol - 1)
> >
> > Else
> >
> > ReDim Preserve varRS(Rs.RecordCount, intCol - 1)
> >
> > i = 0
> >
> > For j = 0 To intCol - 1
> >
> > varRS(0, j) = Rs.Fields(j).Name
> >
> > Next j
> >
> > End If
> >
> > Rs.MoveFirst
> >
> > While Not Rs.EOF
> >
> > i = i + 1
> >
> > For j = 0 To intCol - 1
> >
> > varRS(i, j) = Rs(j).Value
> >
> > Next j
> >
> > Rs.MoveNext
> >
> > Wend
> >
> > Rs.Close
> >
> > RecsToVariant = varRS
> >
> > End Function
> >
> >
> >
> > '3. procedure untuk menampilkan variant berdimensi ke sheet
> >
> >
> >
> > Sub ViewRecordsOnSheet(rg As Range, vRecs As Variant)
> >
> > With rg.Resize(UBound(vRecs, 1) + 1, UBound(vRecs, 2) + 1)
> >
> > .Value = vRecs
> >
> > .EntireColumn.AutoFit
> >
> > End With
> >
> > End Sub
> >
> >
> >
> > '4. Cara penggunaan
> >
> > Sub TamplikanQuery()
> >
> > dim conn As New ADODB.Connection
> >
> > If Not connectMysql(sUser, sPwd, sServer, sDb, conn) Then
> >
> > MsgBox "Gagal buka database", vbCritical
> >
> > exit sub
> >
> > End if
> >
> > dim Rs As New ADODB.Recordset
> >
> > dim hasilQuery as variant
> >
> > sql="SELECT acc.uraian FROM `acc`WHERE ACC.ID>1;"
> >
> >
> >
> > OpenRecordSets conn,sql,Rs
> >
> > hasilQuery= RecsToVariant(Rs, TRUE)'isikan TRUE jika akan menampilkan
> nama
> > fieldnya
> >
> > ViewRecordsOnSheet Range("A1"),hasilQuery
> >
> > End Sub
> >
> >
> >
> > ''selamat mencoba. mohon maaf jika ada yang masih salah.
> >
> >
> >
> > wassalam
> >
> > -zainul
> >
> >
> >
> > *From:* belajar-excel@yahoogroups.com [mailto:
> > belajar-excel@yahoogroups.com]
> > *Sent:* Tuesday, March 24, 2015 4:18 PM
> > *To:* belajar-excel@yahoogroups.com
> > *Subject:* [belajar-excel] Memangil Data Di Localhost Mysql
> >
> >
> >
> >
> >
> > Slemat Sore Master,,,,Saya ingin bertanya bisakah saya memangil data di
> > localhost mysql dan ditampilkan di sheeet excel..dengan macro,,saya
> > mengunakan conecctor ODBC dan sudah saya koneksikan dengan databese yg
> ada
> > di localhost dan sukses..bagaimanakah koding,a untuk memangil data
> tersebut
> > ke excle... terima kasih semoga para master bisa memberikan pencerahan
> > atas masalah ini.. berikut saya lampirkan
> > tampilanya.. koneksi222.jpg
> > <
> >
> http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi222.jpg
> >
> >
> > koneksi.jpg
> > <
> >
> http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/koneksi.jpg
> >
> >
> > MYsql.xlsx
> > <
> http://milis-belajar-excel.1048464.n5.nabble.com/file/n5729702/MYsql.xlsx>
> >
> >
> > --
> > View this message in context:
> >
> http://milis-belajar-excel.1048464.n5.nabble.com/Memangil-Data-Di-Localhost-Mysql-tp5729702.html
> > Sent from the Milis Belajar Excel mailing list archive at Nabble.com.
> >
> >
> >
>
>
>
Tue Mar 24, 2015 9:41 pm (PDT) . Posted by:
"omeza" icat_omez@ymail.com
Maz Zain+ koq gambarnya..kosong ya mas..bsa di uplod ulang mas zain..terima
kasih slm Omez
--
View this message in context: http://milis-belajar-excel.1048464.n5.nabble.com/Memangil-Data-Di-Localhost-Mysql-tp5729702p5729709.html
Sent from the Milis Belajar Excel mailing list archive at Nabble.com.
kasih slm Omez
--
View this message in context: http://milis-belajar-excel.1048464.n5.nabble.com/Memangil-Data-Di-Localhost-Mysql-tp5729702p5729709.html
Sent from the Milis Belajar Excel mailing list archive at Nabble.com.
Tue Mar 24, 2015 3:16 pm (PDT) . Posted by:
semenjana
Dear Para Master Exceller
Assalamualaikum Wr.Wb.
Saya punya permasalahan dengan file terlampir yang dimaksud, mohon kiranya para master exceller berkenan membantu dimana dalam case yang terlampir yaitu perubahan tanda titik (.) dan tanda koma (,)
Demikian disampaikan, terima kasih atas perhatiannya
Assalamualaikum Wr.Wb.
Saya punya permasalahan dengan file terlampir yang dimaksud, mohon kiranya para master exceller berkenan membantu dimana dalam case yang terlampir yaitu perubahan tanda titik (.) dan tanda koma (,)
Demikian disampaikan, terima kasih atas perhatiannya
Tue Mar 24, 2015 7:02 pm (PDT) . Posted by:
"Rian Wijaya" oh_sepinya
Walaikum Salam Wr.Wb
sebenarnya cukup ganti setinggan pada excel mas Semenjana aja,
1. pilih MS Office di bagian kiri atas (khusus 2007 dan bisa dicoba di 2010)
2. pilih excel options, maka akan muncul di bagian kiri, Advanced
3. use system separators,
salam
On 3/25/15, semenjana@yahoo.co.id [belajar-excel]
<belajar-excel@yahoogroups.com> wrote:
> Dear Para Master Exceller
>
> Assalamualaikum Wr.Wb.
> Saya punya permasalahan dengan file terlampir yang dimaksud, mohon kiranya
> para master exceller berkenan membantu dimana dalam case yang terlampir
> yaitu perubahan tanda titik (.) dan tanda koma (,)
>
>
>
>
>
> Demikian disampaikan, terima kasih atas perhatiannya
>
sebenarnya cukup ganti setinggan pada excel mas Semenjana aja,
1. pilih MS Office di bagian kiri atas (khusus 2007 dan bisa dicoba di 2010)
2. pilih excel options, maka akan muncul di bagian kiri, Advanced
3. use system separators,
salam
On 3/25/15, semenjana@yahoo.co.id [belajar-excel]
<belajar-excel@yahoogroups.com> wrote:
> Dear Para Master Exceller
>
> Assalamualaikum Wr.Wb.
> Saya punya permasalahan dengan file terlampir yang dimaksud, mohon kiranya
> para master exceller berkenan membantu dimana dalam case yang terlampir
> yaitu perubahan tanda titik (.) dan tanda koma (,)
>
>
>
>
>
> Demikian disampaikan, terima kasih atas perhatiannya
>
Tue Mar 24, 2015 9:41 pm (PDT) . Posted by:
"Krisan Flower" krisan_flower@rocketmail.com
Dear Pak Dede,
Setelah saya coba akhirnya bisa juga, hehe :), klo boleh tau kenapa harus ada tanda kurung kurawal itu pak dede, padahal saya sudah ketik kurung kurawal manual tapi tetep gak bisa setelah saya pakai ctrl + shift + enter bru bisa. Suwun sekali pak Dede.
Dear Mr. Kid,
Makasi atas referensinya saya sudah simpan di arsip saya :)
Krisan.
Pada Selasa, 24 Maret 2015 15:40, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:
hehehe...
Sering menggunakan fungsi Sum ?
-> menjumlahkan nilai-nilai numerik suatu range
-> contoh : total nilai penjualan (kolom A) =Sum( a1:a100 )
Pernah kenal SumIF ?
-> menjumlahkan nilai-nilai numerik berdasar 1 (SATU) kriteria
-> contoh : total penjualan (kolom A) untuk produk (kolom B) mobil =SumIF( b1:b100 , "mobil" , a1:a100 )
Pernah dengar SumIFs ?
-> menjumlahkan nilai-nilai numerik berdasar BANYAK kriteria (minimal 1 (SATU) kriteria)
-> contoh : Total penjualan (kolom A) untuk bulan Agustus 1945 (kolom C bertipe datetime berdata tanggal)
=SumIFs( a1:a100 , c1:c100 , ">=" & 1* "1945-08-01" , c1:c100 , "<=" & 1* "1945-08-31" )
Cara pakai Average mirip dengan cara pakai Sum bukan ? Hanya nama fungsinya yang berbeda.
Cara pakai AverageIF juga sama dengan cara pakai SumIF.
Jadi cara pakai AverageIFs sama dengan SumIFs.
Kenapa ?
Contoh referensi untuk averageif dan averageIFs (sayangnya memang ndak ada di google... untungnya ada di microsoft)
https://support.office.com/en-za/article/AVERAGEIF-function-ff3c70f9-5afe-4d3e-87d4-717187f98c20?ui=en-US&rs=en-ZA&ad=ZA
https://support.office.com/en-us/article/AVERAGEIFS-function-4cca2550-dab3-41c4-bcd2-648e17f20553?ui=en-US&rs=en-US&ad=US
;) untungnya, google bisa nyariin jalan untuk ketemu dengan microsoft
Sebenarnya kalau punya Excel Help yang bisa dibuka offline di komputer akan lebih enak, karena ndak usah repot cari jaringan internet dan cari link ke microsoft.
Wassalam,
Kid
2015-03-24 17:31 GMT+11:00 Krisan Flower krisan_flower@rocketmail.com [belajar-excel] <belajar-excel@yahoogroups.com>:
Dear Pak Uharyanto,
Salam
Setelah saya pakai hasilnya masih 0 Pak, mohon pencerahan.
Dear Mr. Kid,
saya mencoba menggunakan rumus tersebut tapi masih bingung dalam penentuan criterianya (nilai tidak keluar). saya coba cek di google gak ada literatur tentang AVERAGEIF yang ada cuman average atau if saja. mohon penjelasannya.
Terimakasih,
Krisan,
Pada Selasa, 24 Maret 2015 13:24, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:
di xl2007 ke atas ada fungsi Average, AverageIF, dan AverageIFs loh...
;)
2015-03-24 14:29 GMT+11:00 uharyanto uharyanto@gmail.com [belajar-excel] <belajar-excel@yahoogroups.com>:
Coba pake array formula
{=AVERAGE(IF($B$5:$B$20>=F6,IF($B$5:$B$20<=G6,$C$5:$C$20)))}
Terima kasih.
On 24/03/2015 9:11 AM, Krisan Flower krisan_flower@rocketmail.com [belajar-excel] wrote:
Dear Para Master,
Salam,
Saya kesulitan dalam mengambil nilai average dari kriteria di sebuah sheet, berikut saya lampirkan contoh kasusnya, Mungkin ada banyak dari rekan2 yang punya persoalan yang sama dengan saya. Makasi sebelumnya.
Krisan.
#yiv4254360759 #yiv4254360759 -- #yiv4254360759ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv4254360759 #yiv4254360759ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv4254360759 #yiv4254360759ygrp-mkp #yiv4254360759hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv4254360759 #yiv4254360759ygrp-mkp #yiv4254360759ads {margin-bottom:10px;}#yiv4254360759 #yiv4254360759ygrp-mkp .yiv4254360759ad {padding:0 0;}#yiv4254360759 #yiv4254360759ygrp-mkp .yiv4254360759ad p {margin:0;}#yiv4254360759 #yiv4254360759ygrp-mkp .yiv4254360759ad a {color:#0000ff;text-decoration:none;}#yiv4254360759 #yiv4254360759ygrp-sponsor #yiv4254360759ygrp-lc {font-family:Arial;}#yiv4254360759 #yiv4254360759ygrp-sponsor #yiv4254360759ygrp-lc #yiv4254360759hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv4254360759 #yiv4254360759ygrp-sponsor #yiv4254360759ygrp-lc .yiv4254360759ad {margin-bottom:10px;padding:0 0;}#yiv4254360759 #yiv4254360759actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv4254360759 #yiv4254360759activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv4254360759 #yiv4254360759activity span {font-weight:700;}#yiv4254360759 #yiv4254360759activity span:first-child {text-transform:uppercase;}#yiv4254360759 #yiv4254360759activity span a {color:#5085b6;text-decoration:none;}#yiv4254360759 #yiv4254360759activity span span {color:#ff7900;}#yiv4254360759 #yiv4254360759activity span .yiv4254360759underline {text-decoration:underline;}#yiv4254360759 .yiv4254360759attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv4254360759 .yiv4254360759attach div a {text-decoration:none;}#yiv4254360759 .yiv4254360759attach img {border:none;padding-right:5px;}#yiv4254360759 .yiv4254360759attach label {display:block;margin-bottom:5px;}#yiv4254360759 .yiv4254360759attach label a {text-decoration:none;}#yiv4254360759 blockquote {margin:0 0 0 4px;}#yiv4254360759 .yiv4254360759bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv4254360759 .yiv4254360759bold a {text-decoration:none;}#yiv4254360759 dd.yiv4254360759last p a {font-family:Verdana;font-weight:700;}#yiv4254360759 dd.yiv4254360759last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv4254360759 dd.yiv4254360759last p span.yiv4254360759yshortcuts {margin-right:0;}#yiv4254360759 div.yiv4254360759attach-table div div a {text-decoration:none;}#yiv4254360759 div.yiv4254360759attach-table {width:400px;}#yiv4254360759 div.yiv4254360759file-title a, #yiv4254360759 div.yiv4254360759file-title a:active, #yiv4254360759 div.yiv4254360759file-title a:hover, #yiv4254360759 div.yiv4254360759file-title a:visited {text-decoration:none;}#yiv4254360759 div.yiv4254360759photo-title a, #yiv4254360759 div.yiv4254360759photo-title a:active, #yiv4254360759 div.yiv4254360759photo-title a:hover, #yiv4254360759 div.yiv4254360759photo-title a:visited {text-decoration:none;}#yiv4254360759 div#yiv4254360759ygrp-mlmsg #yiv4254360759ygrp-msg p a span.yiv4254360759yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv4254360759 .yiv4254360759green {color:#628c2a;}#yiv4254360759 .yiv4254360759MsoNormal {margin:0 0 0 0;}#yiv4254360759 o {font-size:0;}#yiv4254360759 #yiv4254360759photos div {float:left;width:72px;}#yiv4254360759 #yiv4254360759photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv4254360759 #yiv4254360759photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv4254360759 #yiv4254360759reco-category {font-size:77%;}#yiv4254360759 #yiv4254360759reco-desc {font-size:77%;}#yiv4254360759 .yiv4254360759replbq {margin:4px;}#yiv4254360759 #yiv4254360759ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv4254360759 #yiv4254360759ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv4254360759 #yiv4254360759ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv4254360759 #yiv4254360759ygrp-mlmsg select, #yiv4254360759 input, #yiv4254360759 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv4254360759 #yiv4254360759ygrp-mlmsg pre, #yiv4254360759 code {font:115% monospace;}#yiv4254360759 #yiv4254360759ygrp-mlmsg * {line-height:1.22em;}#yiv4254360759 #yiv4254360759ygrp-mlmsg #yiv4254360759logo {padding-bottom:10px;}#yiv4254360759 #yiv4254360759ygrp-msg p a {font-family:Verdana;}#yiv4254360759 #yiv4254360759ygrp-msg p#yiv4254360759attach-count span {color:#1E66AE;font-weight:700;}#yiv4254360759 #yiv4254360759ygrp-reco #yiv4254360759reco-head {color:#ff7900;font-weight:700;}#yiv4254360759 #yiv4254360759ygrp-reco {margin-bottom:20px;padding:0px;}#yiv4254360759 #yiv4254360759ygrp-sponsor #yiv4254360759ov li a {font-size:130%;text-decoration:none;}#yiv4254360759 #yiv4254360759ygrp-sponsor #yiv4254360759ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv4254360759 #yiv4254360759ygrp-sponsor #yiv4254360759ov ul {margin:0;padding:0 0 0 8px;}#yiv4254360759 #yiv4254360759ygrp-text {font-family:Georgia;}#yiv4254360759 #yiv4254360759ygrp-text p {margin:0 0 1em 0;}#yiv4254360759 #yiv4254360759ygrp-text tt {font-size:120%;}#yiv4254360759 #yiv4254360759ygrp-vital ul li:last-child {border-right:none !important;}#yiv4254360759
Setelah saya coba akhirnya bisa juga, hehe :), klo boleh tau kenapa harus ada tanda kurung kurawal itu pak dede, padahal saya sudah ketik kurung kurawal manual tapi tetep gak bisa setelah saya pakai ctrl + shift + enter bru bisa. Suwun sekali pak Dede.
Dear Mr. Kid,
Makasi atas referensinya saya sudah simpan di arsip saya :)
Krisan.
Pada Selasa, 24 Maret 2015 15:40, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:
hehehe...
Sering menggunakan fungsi Sum ?
-> menjumlahkan nilai-nilai numerik suatu range
-> contoh : total nilai penjualan (kolom A) =Sum( a1:a100 )
Pernah kenal SumIF ?
-> menjumlahkan nilai-nilai numerik berdasar 1 (SATU) kriteria
-> contoh : total penjualan (kolom A) untuk produk (kolom B) mobil =SumIF( b1:b100 , "mobil" , a1:a100 )
Pernah dengar SumIFs ?
-> menjumlahkan nilai-nilai numerik berdasar BANYAK kriteria (minimal 1 (SATU) kriteria)
-> contoh : Total penjualan (kolom A) untuk bulan Agustus 1945 (kolom C bertipe datetime berdata tanggal)
=SumIFs( a1:a100 , c1:c100 , ">=" & 1* "1945-08-01" , c1:c100 , "<=" & 1* "1945-08-31" )
Cara pakai Average mirip dengan cara pakai Sum bukan ? Hanya nama fungsinya yang berbeda.
Cara pakai AverageIF juga sama dengan cara pakai SumIF.
Jadi cara pakai AverageIFs sama dengan SumIFs.
Kenapa ?
Contoh referensi untuk averageif dan averageIFs (sayangnya memang ndak ada di google... untungnya ada di microsoft)
https://support.office.com/en-za/article/AVERAGEIF-function-ff3c70f9-5afe-4d3e-87d4-717187f98c20?ui=en-US&rs=en-ZA&ad=ZA
https://support.office.com/en-us/article/AVERAGEIFS-function-4cca2550-dab3-41c4-bcd2-648e17f20553?ui=en-US&rs=en-US&ad=US
;) untungnya, google bisa nyariin jalan untuk ketemu dengan microsoft
Sebenarnya kalau punya Excel Help yang bisa dibuka offline di komputer akan lebih enak, karena ndak usah repot cari jaringan internet dan cari link ke microsoft.
Wassalam,
Kid
2015-03-24 17:31 GMT+11:00 Krisan Flower krisan_flower@rocketmail.com [belajar-excel] <belajar-excel@yahoogroups.com>:
Dear Pak Uharyanto,
Salam
Setelah saya pakai hasilnya masih 0 Pak, mohon pencerahan.
Dear Mr. Kid,
saya mencoba menggunakan rumus tersebut tapi masih bingung dalam penentuan criterianya (nilai tidak keluar). saya coba cek di google gak ada literatur tentang AVERAGEIF yang ada cuman average atau if saja. mohon penjelasannya.
Terimakasih,
Krisan,
Pada Selasa, 24 Maret 2015 13:24, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:
di xl2007 ke atas ada fungsi Average, AverageIF, dan AverageIFs loh...
;)
2015-03-24 14:29 GMT+11:00 uharyanto uharyanto@gmail.com [belajar-excel] <belajar-excel@yahoogroups.com>:
Coba pake array formula
{=AVERAGE(IF($B$5:$B$20>=F6,IF($B$5:$B$20<=G6,$C$5:$C$20)))}
Terima kasih.
On 24/03/2015 9:11 AM, Krisan Flower krisan_flower@rocketmail.com [belajar-excel] wrote:
Dear Para Master,
Salam,
Saya kesulitan dalam mengambil nilai average dari kriteria di sebuah sheet, berikut saya lampirkan contoh kasusnya, Mungkin ada banyak dari rekan2 yang punya persoalan yang sama dengan saya. Makasi sebelumnya.
Krisan.
#yiv4254360759 #yiv4254360759 -- #yiv4254360759ygrp-
Tue Mar 24, 2015 11:27 pm (PDT) . Posted by:
"uharyanto" uharyanto@ymail.com
Coba search pada subject email array formula yang terakhir dibahas pada
tanggal 22 maret 2015, disana ada penjelasan dari mr.kid, berikut adalah
kutipannya :
/Wa'alaikumussalam wr wb//
//
/
/met malem mas Fahmi,//
//
//0. Mhn maaf sblmnya Mr. Saya masih newbie masih kurang disana sini
tapi saya berkemauan bisa. Apalagi kalau saya dpet melampaui mr.kid
hehehe :D//
/
/> Amin setulus-tulusnya Amin dan penuh semangat Amin nya. //
//> Semoga tidak cuma mas Fahmi yang berkemauan keras menjadi lebih baik
dari newbie seperti saya... //
//(udah 15 tahun [lebihnya ndak usah disebut yak] tetep saja newbie
nih... soalnya masih buanyak bingitz seluk beluk Excel yang belum
dipahami... pokoke terus belajar. Yuk belajar bersama)//
/
/
/
/--- Insya Allah bermanfaat buat yang penuh semangat belajar ---//
/
/[perlahan saja dan ndak perlu dibaca sampai selesai dalam satu waktu.
Satu bagian per satu bagian secara bertahap saja]//
//
/
/1. array formula adalah formula yg bkerja u/ input sbuah array atau
mengkalkulasi setiap item array. //
/
/> Jadi, suatu formula yang ketika diberi inputan berupa array lalu
di-enter tidak menghasilkan nilai yang benar berarti formula tersebut
mengerjakan (memproses atau setidaknya melakukan proses penyusunan)
setiap item array [asumsinya susunan formula sudah sesuai alur proses
loh]. Hal ini mengindikasikan adanya fungsi dalam formula tersebut yang
pada dasarnya tidak dapat menerima suatu inputan berupa array.//
//
/
/> Jadi, bingung deh...//
//
/
/> Pakai bahasa sederhananya ://
/
/Kalau suatu formula ditulis lalu di-Enter dengan ENTER kok kliru
hasilnya, dan ketika di-Enter dengan CTRL SHIFT ENTER kok benar
hasilnya, maka itulah array formula.//
/
/
/
/> Formula harus jadi array formula (alias di-Enter dengan CTRL SHIFT
ENTER) ketika ada inputan berupa array dan fungsi yang menerimanya tidak
bisa menerima data berupa array//
/
/ Contoh : fungsi Len. Kalau dimasukkan Len(A1:A5) hasilnya akan
mengolah Len(A1) saja. Supaya langsung mengolah
Len(A1);Len(A2);Len(A3);Len(A4);Len(A5) sekaligus maka harus dijadikan
array formula.//
//
/
/2. Untuk formula ://
//=sum( (len(//*A2:A18*//)>0) / countif(A2:A18;//*A2:A18*//) )//
/
/
/
/> inputan berupa array adalah ://
////*A2:A18*//(//yang biru doang yak//) -> di-input-ken ke fungsi Len
dan bagian kriteria dari fungsi CountIF //
/
/> fungsi Len dan CountIF tidak bisa menerima inputan berupa array
tersebut.//
/
/> fungsi sum //*tidak bisa mengolah inputan agar terbentuk array*//.
Jadi fungsi Sum hanya bisa terima jadi saja. Kalau ada inputan berupa
array nilai yang akan di-sum, maka fungsi sum tahunya sudah ada array
yang akan di-sum tersebut. Sum tidak mau disuruh membentuk si array.//
/
/ Contoh ://
/
/ =Sum( {1,2,3,4} ) -> bisa diterima si Sum karena Sum ndak
perlu membentuk array nilai dari 1 sampai 4 alias sudah disediakan
berupa array oleh bunyi {1,2,3,4}/
/ =Sum( Row(1:4) ) -> tidak mau diterima si Sum karena si Sum
harus menyusun array dari hasil-hasil fungsi Row.//
/
/Jadi, terhadap inputan dengan Len dan CountIF di atas, si Sum juga ndak
mau diminta membentuknya menjadi suatu array.//
/
/> Karena Sum diberi inputan berupa array (tapi belum siap pakai), maka
Sum tidak bisa bekerja ketika di-Enter dengan ENTER. Berarti si Sum
harus diminta bekerja sebagai array formula, yaitu harus di-Enter dengan
CTRL SHIFT ENTER//
/
/
/
/*Simpulan :
=sum( (len(A2:A18)>0) / countif(*//*A2:A18;A2:A18) )
*/
/*Array formula, pastikan enter dengan CTRL SHIFT ENTER*//
/
/*** sampai sini dah ok ya...//
//
/
/3. Formula berikutnya ://
//=SUMPRODUCT//((len(*A2:A18*)>0)/countif(A2:A18;*A2:A18*))//
/
/> inputan berupa array adalah ://
////*A2:A18*//(//yang biru doang yak//) -> di-input-ken ke fungsi Len
dan bagian kriteria dari fungsi CountIF //
/
/> fungsi Len dan CountIF tidak bisa menerima inputan berupa array
tersebut.//
/
/> fungsi SumProduct //*mampu mengolah data agar terbentuk suatu
array*//. Berarti, inputan dengan fungsi Len yang diberi inputan array
akan diolah oleh si SumProduct (si SumProduct akan menghitungkan Len
dari setiap inputan ke fungsi Len) dan fungsi Len bersedia dikomando
oleh si SumProduct.//
/
/> begitu pula sikap SumProduct terhadap fungsi CountIF dan sikap
CountIF yang juga diberi inputan array di bagian kriterianya terhadap
SumProduct.//
/
/> berhubung dari fungsi terdalam sampai fungsi terluar sudah terbentuk
kesepakatan bahwa masalah array dan pembentukan array inputan akan
diselesaikan secara internal oleh formula itu sendiri, maka formula itu
tidak perlu di-input sebagai array formula. Jadi formulanya bukan array
formula.//
/
/> Meskipun formulanya bukan array formula, proses didalamnya ada proses
pengerjaan sebagai suatu komputasi array, yaitu pada saat memproses
fungsi Len dan juga fungsi CountIF, yang proses tersebut di-handle oleh
si fungsi SumProduct.//
//
/
/*Simpulan :
*/
/*=SUMPRODUCT((len(A2:A18)>0)/countif(A2:A18;A2:A18))
*/
/*formula biasa alias bukan array formula alias cukup di-enter dengan
ENTER saja
*/
/*** sampai disini dah ok juga ya...//
/
/
/
/4. Ada lagi begini ://
//=SUMPRODUCT//( *IF(*(len(*A2:A18*)>0)*,1,0**) * /
countif(A2:A18;*A2:A18*) )//
/
/(yang//dilatar kuning //adalah perbedaan dengan formula di nomor 3 di
atas)//
/
/
//> inputan berupa array adalah ://
////*A2:A18*//(//yang biru doang yak//) -> di-input-ken ke fungsi Len
dan bagian kriteria dari fungsi CountIF //
//> fungsi Len dan CountIF tidak bisa menerima inputan berupa array
tersebut.//
/
/> fungsi IF tidak bisa menerima inputan berupa array, maka fungsi Len
yang ada dalam fungsi IF harus bekerja sendiri membentuk array dari
inputan yang datang kepadanya (si fungsi Len).//
/
///*Sampai disini, ada masalah pembentukan array yang tidak bisa
diselesaikan secara internal oleh formula itu sendiri.
*/
/> Fungsi SumProduct memiliki kontrak kerja langsung dengan fungsi IF
dan fungsi CountIF. si Len adalah pihak ke-3 yang disewa oleh si IF.
Jadi, fungsi Len bukan diarea wewenang si SumProduct, sehingga si
SumProduct hanya bisa duduk manyun meratapi ketidakmampuannya untuk
campur tangan dalam masalah internal si IF dengan si Len.//
/
/* :( *//kasihan si SumProduct, karena dia yang dapet masalah dari
konflik internal yang ada dalam IF.//
/
/> Karena sampai fungsi terluarnya tetap ada masalah internal terhadap
inputan array (berupa membentuk array nilai dari data array yang
di-input-ken), maka formula di atas harus diubah menjadi array formula,
yaitu dengan meng-Enter-nya dengan menekan bersamaan tombol-tombol CTRL
SHIFT ENTER//*
*//
/
/*Simpulan :
*/
/*=SUMPRODUCT( IF( (len(A2:A18)>0) ,1,0) / countif(A2:A18;A2:A18) )*/
/*adalah array formula alias harus di-Enter dengan CTRL SHIFT ENTER
*/
/*** Sampai disini tetap ok kan ya...//
//
/
/5. :( mode bingung masih on ya ?//
/
/> jadi....//
/
/a. Array formula atau bukan array formula bisa diketahui jika dilakukan
pelacakan seperti langkah-langkah di atas.//
/
/b. Fungsi-fungsi bawaan Excel memiliki banyak karakteristik. Antara
lain ://
// > Ada fungsi bawaan Excel yang bisa menerima inputan berupa array
jadi dan ada yang tidak bisa menerima inputan array jadi sekalipun.
Contohnya, Sum bisa menerima inputan berupa array jadi. Fungsi Len tidak
bisa menerima inputan array jadi sekalipun.//
/
/ > Ada fungsi bawaan Excel yang bisa membentuk array dari inputan
berupa array. Contohnya SumProduct, Index, LookUp//
/
/ > Ada fungsi bawaan Excel yang bisanya hanya menerima inputan
berupa array (sudah jadi atau harus dibentuk lebih dulu) tapi tetap ogah
mengerjakannya sendiri (alias harus tetap di-Enter sebagai array
formula). Contohnya Frequency//
/
/ >Ada fungsi bawaan Excel yang bisanya menerima inputan bukan array
walau dipaksa-paksa dijadikan array formula sekalipun. Contohnya fungsi N//
/
/c. Array formula dibentuk dengan cara meng-enter melalui penekanan
tombol-tombol CTRL SHIFT ENTER secara bersamaan.//
/
/d. Array formula berisi proses terhadap suatu data array.//
/
/e. Formula biasa (bukan array formula) yang menggunakan fungsi-fungsi
yang mampu membentuk array seperti SumProduct, Index, LookUp bisa jadi
berisi proses terhadap suatu array walau tidak dibentuk sebagai array
formula.//
/
/f. Tidak selalu formula yang menggunakan SumProduct, Index, atau LookUp
cukup di-Enter sebagai formula biasa, karena keberadaan fungsi-fungsi
yang memiliki karakteristik seperti IF akan menuntut pembentukan array
formula.//
/
/g. Hindari penggunaan fungsi-fungsi yang anti terhadap inputan ataupun
proses array dalam suatu array formula. Contohnya tidak menggunakan
fungsi N dalam menyusun suatu array formula//
/
/*
;)
*/
/met belajar//
/
/*
*/
/Wassalamu'alaikum wr wb//
/
/Kid/
On 25/03/2015 8:52 AM, Krisan Flower krisan_flower@rocketmail.com
[belajar-excel] wrote:
> Dear Pak Dede,
>
> Setelah saya coba akhirnya bisa juga, hehe :), klo boleh tau kenapa
> harus ada tanda kurung kurawal itu pak dede, padahal saya sudah ketik
> kurung kurawal manual tapi tetep gak bisa setelah saya pakai ctrl +
> shift + enter bru bisa. Suwun sekali pak Dede.
>
> Dear Mr. Kid,
>
> Makasi atas referensinya saya sudah simpan di arsip saya :)
>
> Krisan.
>
>
>
> Pada Selasa, 24 Maret 2015 15:40, "'Mr. Kid' mr.nmkid@gmail.com
> [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:
>
>
> hehehe...
>
> Sering menggunakan fungsi Sum ?
> -> menjumlahkan nilai-nilai numerik suatu range
> -> contoh : total nilai penjualan (kolom A) =Sum( a1:a100 )
>
> Pernah kenal SumIF ?
> -> menjumlahkan nilai-nilai numerik berdasar 1 (SATU) kriteria
> -> contoh : total penjualan (kolom A) untuk produk (kolom B) mobil
> =SumIF( b1:b100 , "mobil" , a1:a100 )
>
> Pernah dengar SumIFs ?
> -> menjumlahkan nilai-nilai numerik berdasar BANYAK kriteria (minimal
> 1 (SATU) kriteria)
> -> contoh : Total penjualan (kolom A) untuk bulan Agustus 1945 (kolom
> C bertipe datetime berdata tanggal)
> =SumIFs( a1:a100 , c1:c100 , ">=" & 1*
> "1945-08-01" , c1:c100 , "<=" & 1* "1945-08-31" )
>
> Cara pakai Average mirip dengan cara pakai Sum bukan ? Hanya nama
> fungsinya yang berbeda.
> Cara pakai AverageIF juga sama dengan cara pakai SumIF.
> Jadi cara pakai AverageIFs sama dengan SumIFs.
> Kenapa ?
>
> Contoh referensi untuk averageif dan averageIFs (sayangnya memang ndak
> ada di google... untungnya ada di microsoft)
> https://support.office.com/en-za/article/AVERAGEIF-function-ff3c70f9-5afe-4d3e-87d4-717187f98c20?ui=en-US&rs=en-ZA&ad=ZA
> https://support.office.com/en-us/article/AVERAGEIFS-function-4cca2550-dab3-41c4-bcd2-648e17f20553?ui=en-US&rs=en-US&ad=US
> ;) untungnya, google bisa nyariin jalan untuk ketemu dengan microsoft
>
> Sebenarnya kalau punya Excel Help yang bisa dibuka offline di komputer
> akan lebih enak, karena ndak usah repot cari jaringan internet dan
> cari link ke microsoft.
>
> Wassalam,
> Kid
>
>
>
>
>
>
>
>
> 2015-03-24 17:31 GMT+11:00 Krisan Flower krisan_flower@rocketmail.com
> <mailto:krisan_flower@rocketmail.com> [belajar-excel]
> <belajar-excel@yahoogroups.com <mailto:belajar-excel@yahoogroups.com>>:
>
> Dear Pak Uharyanto,
>
> Salam
>
> Setelah saya pakai hasilnya masih 0 Pak, mohon pencerahan.
>
> Dear Mr. Kid,
>
> saya mencoba menggunakan rumus tersebut tapi masih bingung dalam
> penentuan criterianya (nilai tidak keluar). saya coba cek di
> google gak ada literatur tentang AVERAGEIF yang ada cuman average
> atau if saja. mohon penjelasannya.
>
> Terimakasih,
>
> Krisan,
>
>
>
>
> Pada Selasa, 24 Maret 2015 13:24, "'Mr. Kid' mr.nmkid@gmail.com
> <mailto:mr.nmkid@gmail.com> [belajar-excel]"
> <belajar-excel@yahoogroups.com
> <mailto:belajar-excel@yahoogroups.com>> menulis:
>
>
> di xl2007 ke atas ada fungsi Average, AverageIF, dan AverageIFs loh...
>
> ;)
>
>
> 2015-03-24 14:29 GMT+11:00 uharyanto uharyanto@gmail.com
> <mailto:uharyanto@gmail.com> [belajar-excel]
> <belajar-excel@yahoogroups.com
> <mailto:belajar-excel@yahoogroups.com>>:
>
> Coba pake array formula
> {=AVERAGE(IF($B$5:$B$20>=F6,IF($B$5:$B$20<=G6,$C$5:$C$20)))}
>
> Terima kasih.
>
>
> On 24/03/2015 9:11 AM, Krisan Flower
> krisan_flower@rocketmail.com
> <mailto:krisan_flower@rocketmail.com> [belajar-excel] wrote:
>> Dear Para Master,
>>
>> Salam,
>>
>> Saya kesulitan dalam mengambil nilai average dari kriteria di
>> sebuah sheet,
>> berikut saya lampirkan contoh kasusnya, Mungkin ada banyak
>> dari rekan2 yang punya persoalan yang sama dengan saya.
>> Makasi sebelumnya.
>>
>> Krisan.
>
>
>
>
>
>
>
>
tanggal 22 maret 2015, disana ada penjelasan dari mr.kid, berikut adalah
kutipannya :
/Wa'alaikumussalam wr wb//
//
/
/met malem mas Fahmi,//
//
//0. Mhn maaf sblmnya Mr. Saya masih newbie masih kurang disana sini
tapi saya berkemauan bisa. Apalagi kalau saya dpet melampaui mr.kid
hehehe :D//
/
/> Amin setulus-tulusnya Amin dan penuh semangat Amin nya. //
//> Semoga tidak cuma mas Fahmi yang berkemauan keras menjadi lebih baik
dari newbie seperti saya... //
//(udah 15 tahun [lebihnya ndak usah disebut yak] tetep saja newbie
nih... soalnya masih buanyak bingitz seluk beluk Excel yang belum
dipahami... pokoke terus belajar. Yuk belajar bersama)//
/
/
/
/--- Insya Allah bermanfaat buat yang penuh semangat belajar ---//
/
/[perlahan saja dan ndak perlu dibaca sampai selesai dalam satu waktu.
Satu bagian per satu bagian secara bertahap saja]//
//
/
/1. array formula adalah formula yg bkerja u/ input sbuah array atau
mengkalkulasi setiap item array. //
/
/> Jadi, suatu formula yang ketika diberi inputan berupa array lalu
di-enter tidak menghasilkan nilai yang benar berarti formula tersebut
mengerjakan (memproses atau setidaknya melakukan proses penyusunan)
setiap item array [asumsinya susunan formula sudah sesuai alur proses
loh]. Hal ini mengindikasikan adanya fungsi dalam formula tersebut yang
pada dasarnya tidak dapat menerima suatu inputan berupa array.//
//
/
/> Jadi, bingung deh...//
//
/
/> Pakai bahasa sederhananya ://
/
/Kalau suatu formula ditulis lalu di-Enter dengan ENTER kok kliru
hasilnya, dan ketika di-Enter dengan CTRL SHIFT ENTER kok benar
hasilnya, maka itulah array formula.//
/
/
/
/> Formula harus jadi array formula (alias di-Enter dengan CTRL SHIFT
ENTER) ketika ada inputan berupa array dan fungsi yang menerimanya tidak
bisa menerima data berupa array//
/
/ Contoh : fungsi Len. Kalau dimasukkan Len(A1:A5) hasilnya akan
mengolah Len(A1) saja. Supaya langsung mengolah
Len(A1);Len(A2);Len(A3);Len(A4);Len(A5) sekaligus maka harus dijadikan
array formula.//
//
/
/2. Untuk formula ://
//=sum( (len(//*A2:A18*//)>0) / countif(A2:A18;//*A2:A18*//) )//
/
/
/
/> inputan berupa array adalah ://
////*A2:A18*//(//yang biru doang yak//) -> di-input-ken ke fungsi Len
dan bagian kriteria dari fungsi CountIF //
/
/> fungsi Len dan CountIF tidak bisa menerima inputan berupa array
tersebut.//
/
/> fungsi sum //*tidak bisa mengolah inputan agar terbentuk array*//.
Jadi fungsi Sum hanya bisa terima jadi saja. Kalau ada inputan berupa
array nilai yang akan di-sum, maka fungsi sum tahunya sudah ada array
yang akan di-sum tersebut. Sum tidak mau disuruh membentuk si array.//
/
/ Contoh ://
/
/ =Sum( {1,2,3,4} ) -> bisa diterima si Sum karena Sum ndak
perlu membentuk array nilai dari 1 sampai 4 alias sudah disediakan
berupa array oleh bunyi {1,2,3,4}/
/ =Sum( Row(1:4) ) -> tidak mau diterima si Sum karena si Sum
harus menyusun array dari hasil-hasil fungsi Row.//
/
/Jadi, terhadap inputan dengan Len dan CountIF di atas, si Sum juga ndak
mau diminta membentuknya menjadi suatu array.//
/
/> Karena Sum diberi inputan berupa array (tapi belum siap pakai), maka
Sum tidak bisa bekerja ketika di-Enter dengan ENTER. Berarti si Sum
harus diminta bekerja sebagai array formula, yaitu harus di-Enter dengan
CTRL SHIFT ENTER//
/
/
/
/*Simpulan :
=sum( (len(A2:A18)>0) / countif(*//*A2:A18;A2:A18) )
*/
/*Array formula, pastikan enter dengan CTRL SHIFT ENTER*//
/
/*** sampai sini dah ok ya...//
//
/
/3. Formula berikutnya ://
//=SUMPRODUCT//((len(*A2:A18*)>0)/countif(A2:A18;*A2:A18*))//
/
/> inputan berupa array adalah ://
////*A2:A18*//(//yang biru doang yak//) -> di-input-ken ke fungsi Len
dan bagian kriteria dari fungsi CountIF //
/
/> fungsi Len dan CountIF tidak bisa menerima inputan berupa array
tersebut.//
/
/> fungsi SumProduct //*mampu mengolah data agar terbentuk suatu
array*//. Berarti, inputan dengan fungsi Len yang diberi inputan array
akan diolah oleh si SumProduct (si SumProduct akan menghitungkan Len
dari setiap inputan ke fungsi Len) dan fungsi Len bersedia dikomando
oleh si SumProduct.//
/
/> begitu pula sikap SumProduct terhadap fungsi CountIF dan sikap
CountIF yang juga diberi inputan array di bagian kriterianya terhadap
SumProduct.//
/
/> berhubung dari fungsi terdalam sampai fungsi terluar sudah terbentuk
kesepakatan bahwa masalah array dan pembentukan array inputan akan
diselesaikan secara internal oleh formula itu sendiri, maka formula itu
tidak perlu di-input sebagai array formula. Jadi formulanya bukan array
formula.//
/
/> Meskipun formulanya bukan array formula, proses didalamnya ada proses
pengerjaan sebagai suatu komputasi array, yaitu pada saat memproses
fungsi Len dan juga fungsi CountIF, yang proses tersebut di-handle oleh
si fungsi SumProduct.//
//
/
/*Simpulan :
*/
/*=SUMPRODUCT((len(A2:A18)>0)/countif(A2:A18;A2:A18))
*/
/*formula biasa alias bukan array formula alias cukup di-enter dengan
ENTER saja
*/
/*** sampai disini dah ok juga ya...//
/
/
/
/4. Ada lagi begini ://
//=SUMPRODUCT//( *IF(*(len(*A2:A18*)>0)*,1,0**) * /
countif(A2:A18;*A2:A18*) )//
/
/(yang//dilatar kuning //adalah perbedaan dengan formula di nomor 3 di
atas)//
/
/
//> inputan berupa array adalah ://
////*A2:A18*//(//yang biru doang yak//) -> di-input-ken ke fungsi Len
dan bagian kriteria dari fungsi CountIF //
//> fungsi Len dan CountIF tidak bisa menerima inputan berupa array
tersebut.//
/
/> fungsi IF tidak bisa menerima inputan berupa array, maka fungsi Len
yang ada dalam fungsi IF harus bekerja sendiri membentuk array dari
inputan yang datang kepadanya (si fungsi Len).//
/
///*Sampai disini, ada masalah pembentukan array yang tidak bisa
diselesaikan secara internal oleh formula itu sendiri.
*/
/> Fungsi SumProduct memiliki kontrak kerja langsung dengan fungsi IF
dan fungsi CountIF. si Len adalah pihak ke-3 yang disewa oleh si IF.
Jadi, fungsi Len bukan diarea wewenang si SumProduct, sehingga si
SumProduct hanya bisa duduk manyun meratapi ketidakmampuannya untuk
campur tangan dalam masalah internal si IF dengan si Len.//
/
/* :( *//kasihan si SumProduct, karena dia yang dapet masalah dari
konflik internal yang ada dalam IF.//
/
/> Karena sampai fungsi terluarnya tetap ada masalah internal terhadap
inputan array (berupa membentuk array nilai dari data array yang
di-input-ken), maka formula di atas harus diubah menjadi array formula,
yaitu dengan meng-Enter-nya dengan menekan bersamaan tombol-tombol CTRL
SHIFT ENTER//*
*//
/
/*Simpulan :
*/
/*=SUMPRODUCT( IF( (len(A2:A18)>0) ,1,0) / countif(A2:A18;A2:A18) )*/
/*adalah array formula alias harus di-Enter dengan CTRL SHIFT ENTER
*/
/*** Sampai disini tetap ok kan ya...//
//
/
/5. :( mode bingung masih on ya ?//
/
/> jadi....//
/
/a. Array formula atau bukan array formula bisa diketahui jika dilakukan
pelacakan seperti langkah-langkah di atas.//
/
/b. Fungsi-fungsi bawaan Excel memiliki banyak karakteristik. Antara
lain ://
// > Ada fungsi bawaan Excel yang bisa menerima inputan berupa array
jadi dan ada yang tidak bisa menerima inputan array jadi sekalipun.
Contohnya, Sum bisa menerima inputan berupa array jadi. Fungsi Len tidak
bisa menerima inputan array jadi sekalipun.//
/
/ > Ada fungsi bawaan Excel yang bisa membentuk array dari inputan
berupa array. Contohnya SumProduct, Index, LookUp//
/
/ > Ada fungsi bawaan Excel yang bisanya hanya menerima inputan
berupa array (sudah jadi atau harus dibentuk lebih dulu) tapi tetap ogah
mengerjakannya sendiri (alias harus tetap di-Enter sebagai array
formula). Contohnya Frequency//
/
/ >Ada fungsi bawaan Excel yang bisanya menerima inputan bukan array
walau dipaksa-paksa dijadikan array formula sekalipun. Contohnya fungsi N//
/
/c. Array formula dibentuk dengan cara meng-enter melalui penekanan
tombol-tombol CTRL SHIFT ENTER secara bersamaan.//
/
/d. Array formula berisi proses terhadap suatu data array.//
/
/e. Formula biasa (bukan array formula) yang menggunakan fungsi-fungsi
yang mampu membentuk array seperti SumProduct, Index, LookUp bisa jadi
berisi proses terhadap suatu array walau tidak dibentuk sebagai array
formula.//
/
/f. Tidak selalu formula yang menggunakan SumProduct, Index, atau LookUp
cukup di-Enter sebagai formula biasa, karena keberadaan fungsi-fungsi
yang memiliki karakteristik seperti IF akan menuntut pembentukan array
formula.//
/
/g. Hindari penggunaan fungsi-fungsi yang anti terhadap inputan ataupun
proses array dalam suatu array formula. Contohnya tidak menggunakan
fungsi N dalam menyusun suatu array formula//
/
/*
;)
*/
/met belajar//
/
/*
*/
/Wassalamu'alaikum wr wb//
/
/Kid/
On 25/03/2015 8:52 AM, Krisan Flower krisan_flower@rocketmail.com
[belajar-excel] wrote:
> Dear Pak Dede,
>
> Setelah saya coba akhirnya bisa juga, hehe :), klo boleh tau kenapa
> harus ada tanda kurung kurawal itu pak dede, padahal saya sudah ketik
> kurung kurawal manual tapi tetep gak bisa setelah saya pakai ctrl +
> shift + enter bru bisa. Suwun sekali pak Dede.
>
> Dear Mr. Kid,
>
> Makasi atas referensinya saya sudah simpan di arsip saya :)
>
> Krisan.
>
>
>
> Pada Selasa, 24 Maret 2015 15:40, "'Mr. Kid' mr.nmkid@gmail.com
> [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:
>
>
> hehehe...
>
> Sering menggunakan fungsi Sum ?
> -> menjumlahkan nilai-nilai numerik suatu range
> -> contoh : total nilai penjualan (kolom A) =Sum( a1:a100 )
>
> Pernah kenal SumIF ?
> -> menjumlahkan nilai-nilai numerik berdasar 1 (SATU) kriteria
> -> contoh : total penjualan (kolom A) untuk produk (kolom B) mobil
> =SumIF( b1:b100 , "mobil" , a1:a100 )
>
> Pernah dengar SumIFs ?
> -> menjumlahkan nilai-nilai numerik berdasar BANYAK kriteria (minimal
> 1 (SATU) kriteria)
> -> contoh : Total penjualan (kolom A) untuk bulan Agustus 1945 (kolom
> C bertipe datetime berdata tanggal)
> =SumIFs( a1:a100 , c1:c100 , ">=" & 1*
> "1945-08-01" , c1:c100 , "<=" & 1* "1945-08-31" )
>
> Cara pakai Average mirip dengan cara pakai Sum bukan ? Hanya nama
> fungsinya yang berbeda.
> Cara pakai AverageIF juga sama dengan cara pakai SumIF.
> Jadi cara pakai AverageIFs sama dengan SumIFs.
> Kenapa ?
>
> Contoh referensi untuk averageif dan averageIFs (sayangnya memang ndak
> ada di google... untungnya ada di microsoft)
> https://support.office.com/en-za/article/AVERAGEIF-function-ff3c70f9-5afe-4d3e-87d4-717187f98c20?ui=en-US&rs=en-ZA&ad=ZA
> https://support.office.com/en-us/article/AVERAGEIFS-function-4cca2550-dab3-41c4-bcd2-648e17f20553?ui=en-US&rs=en-US&ad=US
> ;) untungnya, google bisa nyariin jalan untuk ketemu dengan microsoft
>
> Sebenarnya kalau punya Excel Help yang bisa dibuka offline di komputer
> akan lebih enak, karena ndak usah repot cari jaringan internet dan
> cari link ke microsoft.
>
> Wassalam,
> Kid
>
>
>
>
>
>
>
>
> 2015-03-24 17:31 GMT+11:00 Krisan Flower krisan_flower@rocketmail.com
> <mailto:krisan_flower@rocketmail.com> [belajar-excel]
> <belajar-excel@yahoogroups.com <mailto:belajar-excel@yahoogroups.com>>:
>
> Dear Pak Uharyanto,
>
> Salam
>
> Setelah saya pakai hasilnya masih 0 Pak, mohon pencerahan.
>
> Dear Mr. Kid,
>
> saya mencoba menggunakan rumus tersebut tapi masih bingung dalam
> penentuan criterianya (nilai tidak keluar). saya coba cek di
> google gak ada literatur tentang AVERAGEIF yang ada cuman average
> atau if saja. mohon penjelasannya.
>
> Terimakasih,
>
> Krisan,
>
>
>
>
> Pada Selasa, 24 Maret 2015 13:24, "'Mr. Kid' mr.nmkid@gmail.com
> <mailto:mr.nmkid@gmail.com> [belajar-excel]"
> <belajar-excel@yahoogroups.com
> <mailto:belajar-excel@yahoogroups.com>> menulis:
>
>
> di xl2007 ke atas ada fungsi Average, AverageIF, dan AverageIFs loh...
>
> ;)
>
>
> 2015-03-24 14:29 GMT+11:00 uharyanto uharyanto@gmail.com
> <mailto:uharyanto@gmail.com> [belajar-excel]
> <belajar-excel@yahoogroups.com
> <mailto:belajar-excel@yahoogroups.com>>:
>
> Coba pake array formula
> {=AVERAGE(IF($B$5:$B$20>=F6,IF($B$5:$B$20<=G6,$C$5:$C$20)))}
>
> Terima kasih.
>
>
> On 24/03/2015 9:11 AM, Krisan Flower
> krisan_flower@rocketmail.com
> <mailto:krisan_flower@rocketmail.com> [belajar-excel] wrote:
>> Dear Para Master,
>>
>> Salam,
>>
>> Saya kesulitan dalam mengambil nilai average dari kriteria di
>> sebuah sheet,
>> berikut saya lampirkan contoh kasusnya, Mungkin ada banyak
>> dari rekan2 yang punya persoalan yang sama dengan saya.
>> Makasi sebelumnya.
>>
>> Krisan.
>
>
>
>
>
>
>
>
Tue Mar 24, 2015 9:41 pm (PDT) . Posted by:
priska_christusy
Dear all,
Mohon bantuan, saya ingin membuat peringkat (ranking) pada data siswa Laki-laki dan Perempuan.
saya punya data Jenis Kelamin beisi (L/P) dan nilai, saya ingin meranking anak Laki-laki (L) memisahkan data mereka dalam database berbeda.
JK Nilai rank
L 9 1
P 8 -
L 10 2
P 7 -
ini hasil rank yang saya harapkan jadi akan mengabaikan nilai anak perempuan dan menghitung ranking pada murid laki-laki saja.
mohon bantuan para suhu
terima kasih
Mohon bantuan, saya ingin membuat peringkat (ranking) pada data siswa Laki-laki dan Perempuan.
saya punya data Jenis Kelamin beisi (L/P) dan nilai, saya ingin meranking anak Laki-laki (L) memisahkan data mereka dalam database berbeda.
JK Nilai rank
L 9 1
P 8 -
L 10 2
P 7 -
ini hasil rank yang saya harapkan jadi akan mengabaikan nilai anak perempuan dan menghitung ranking pada murid laki-laki saja.
mohon bantuan para suhu
terima kasih
Tue Mar 24, 2015 11:17 pm (PDT) . Posted by:
"hendrik karnadi" hendrikkarnadi
Hai PriskaRangkingnya berdasarkan nilai atau urutan ?
Salam,HK
From: "priska_christusy@yahoo.com [belajar-excel]" <belajar-excel@yahoogroups.com>
To: belajar-excel@yahoogroups.com
Sent: Wednesday, 25 March 2015, 10:44
Subject: [belajar-excel] membuat peringkat dengan syarat tertentu
Dear all,
Mohon bantuan, saya ingin membuat peringkat (ranking) pada data siswa Laki-laki dan Perempuan.
saya punya data Jenis Kelamin beisi (L/P) dan nilai, saya ingin meranking anak Laki-laki (L) memisahkan data mereka dalam database berbeda.
JK Nilai rank
L 9 1
P 8 -
L 10 2
P 7 -
ini hasil rank yang saya harapkan jadi akan mengabaikan nilai anak perempuan dan menghitung ranking pada murid laki-laki saja.
mohon bantuan para suhu
terima kasih
#yiv3158791483 #yiv3158791483 -- #yiv3158791483ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv3158791483 #yiv3158791483ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv3158791483 #yiv3158791483ygrp-mkp #yiv3158791483hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv3158791483 #yiv3158791483ygrp-mkp #yiv3158791483ads {margin-bottom:10px;}#yiv3158791483 #yiv3158791483ygrp-mkp .yiv3158791483ad {padding:0 0;}#yiv3158791483 #yiv3158791483ygrp-mkp .yiv3158791483ad p {margin:0;}#yiv3158791483 #yiv3158791483ygrp-mkp .yiv3158791483ad a {color:#0000ff;text-decoration:none;}#yiv3158791483 #yiv3158791483ygrp-sponsor #yiv3158791483ygrp-lc {font-family:Arial;}#yiv3158791483 #yiv3158791483ygrp-sponsor #yiv3158791483ygrp-lc #yiv3158791483hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv3158791483 #yiv3158791483ygrp-sponsor #yiv3158791483ygrp-lc .yiv3158791483ad {margin-bottom:10px;padding:0 0;}#yiv3158791483 #yiv3158791483actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv3158791483 #yiv3158791483activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv3158791483 #yiv3158791483activity span {font-weight:700;}#yiv3158791483 #yiv3158791483activity span:first-child {text-transform:uppercase;}#yiv3158791483 #yiv3158791483activity span a {color:#5085b6;text-decoration:none;}#yiv3158791483 #yiv3158791483activity span span {color:#ff7900;}#yiv3158791483 #yiv3158791483activity span .yiv3158791483underline {text-decoration:underline;}#yiv3158791483 .yiv3158791483attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv3158791483 .yiv3158791483attach div a {text-decoration:none;}#yiv3158791483 .yiv3158791483attach img {border:none;padding-right:5px;}#yiv3158791483 .yiv3158791483attach label {display:block;margin-bottom:5px;}#yiv3158791483 .yiv3158791483attach label a {text-decoration:none;}#yiv3158791483 blockquote {margin:0 0 0 4px;}#yiv3158791483 .yiv3158791483bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv3158791483 .yiv3158791483bold a {text-decoration:none;}#yiv3158791483 dd.yiv3158791483last p a {font-family:Verdana;font-weight:700;}#yiv3158791483 dd.yiv3158791483last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv3158791483 dd.yiv3158791483last p span.yiv3158791483yshortcuts {margin-right:0;}#yiv3158791483 div.yiv3158791483attach-table div div a {text-decoration:none;}#yiv3158791483 div.yiv3158791483attach-table {width:400px;}#yiv3158791483 div.yiv3158791483file-title a, #yiv3158791483 div.yiv3158791483file-title a:active, #yiv3158791483 div.yiv3158791483file-title a:hover, #yiv3158791483 div.yiv3158791483file-title a:visited {text-decoration:none;}#yiv3158791483 div.yiv3158791483photo-title a, #yiv3158791483 div.yiv3158791483photo-title a:active, #yiv3158791483 div.yiv3158791483photo-title a:hover, #yiv3158791483 div.yiv3158791483photo-title a:visited {text-decoration:none;}#yiv3158791483 div#yiv3158791483ygrp-mlmsg #yiv3158791483ygrp-msg p a span.yiv3158791483yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv3158791483 .yiv3158791483green {color:#628c2a;}#yiv3158791483 .yiv3158791483MsoNormal {margin:0 0 0 0;}#yiv3158791483 o {font-size:0;}#yiv3158791483 #yiv3158791483photos div {float:left;width:72px;}#yiv3158791483 #yiv3158791483photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv3158791483 #yiv3158791483photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv3158791483 #yiv3158791483reco-category {font-size:77%;}#yiv3158791483 #yiv3158791483reco-desc {font-size:77%;}#yiv3158791483 .yiv3158791483replbq {margin:4px;}#yiv3158791483 #yiv3158791483ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv3158791483 #yiv3158791483ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv3158791483 #yiv3158791483ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv3158791483 #yiv3158791483ygrp-mlmsg select, #yiv3158791483 input, #yiv3158791483 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv3158791483 #yiv3158791483ygrp-mlmsg pre, #yiv3158791483 code {font:115% monospace;}#yiv3158791483 #yiv3158791483ygrp-mlmsg * {line-height:1.22em;}#yiv3158791483 #yiv3158791483ygrp-mlmsg #yiv3158791483logo {padding-bottom:10px;}#yiv3158791483 #yiv3158791483ygrp-msg p a {font-family:Verdana;}#yiv3158791483 #yiv3158791483ygrp-msg p#yiv3158791483attach-count span {color:#1E66AE;font-weight:700;}#yiv3158791483 #yiv3158791483ygrp-reco #yiv3158791483reco-head {color:#ff7900;font-weight:700;}#yiv3158791483 #yiv3158791483ygrp-reco {margin-bottom:20px;padding:0px;}#yiv3158791483 #yiv3158791483ygrp-sponsor #yiv3158791483ov li a {font-size:130%;text-decoration:none;}#yiv3158791483 #yiv3158791483ygrp-sponsor #yiv3158791483ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv3158791483 #yiv3158791483ygrp-sponsor #yiv3158791483ov ul {margin:0;padding:0 0 0 8px;}#yiv3158791483 #yiv3158791483ygrp-text {font-family:Georgia;}#yiv3158791483 #yiv3158791483ygrp-text p {margin:0 0 1em 0;}#yiv3158791483 #yiv3158791483ygrp-text tt {font-size:120%;}#yiv3158791483 #yiv3158791483ygrp-vital ul li:last-child {border-right:none !important;}#yiv3158791483
Salam,HK
From: "priska_christusy@yahoo.com [belajar-excel]" <belajar-excel@yahoogroups.com>
To: belajar-excel@yahoogroups.com
Sent: Wednesday, 25 March 2015, 10:44
Subject: [belajar-excel] membuat peringkat dengan syarat tertentu
Dear all,
Mohon bantuan, saya ingin membuat peringkat (ranking) pada data siswa Laki-laki dan Perempuan.
saya punya data Jenis Kelamin beisi (L/P) dan nilai, saya ingin meranking anak Laki-laki (L) memisahkan data mereka dalam database berbeda.
JK Nilai rank
L 9 1
P 8 -
L 10 2
P 7 -
ini hasil rank yang saya harapkan jadi akan mengabaikan nilai anak perempuan dan menghitung ranking pada murid laki-laki saja.
mohon bantuan para suhu
terima kasih
#yiv3158791483 #yiv3158791483 -- #yiv3158791483ygrp-
Wed Mar 25, 2015 12:02 am (PDT) . Posted by:
"hendrik karnadi" hendrikkarnadi
Kalau berdasarkan urutan (sesuai permintaan) maka file terlampir adalah jawabannya.
Salam,HK
----- Forwarded Message -----
From: hendrik karnadi <hendrikkarnadi@yahoo.com>
To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
Sent: Wednesday, 25 March 2015, 13:16
Subject: Re: [belajar-excel] membuat peringkat dengan syarat tertentu
Hai PriskaRangkingnya berdasarkan nilai atau urutan ?
Salam,HK
From: "priska_christusy@yahoo.com [belajar-excel]" <belajar-excel@yahoogroups.com>
To: belajar-excel@yahoogroups.com
Sent: Wednesday, 25 March 2015, 10:44
Subject: [belajar-excel] membuat peringkat dengan syarat tertentu
Dear all,
Mohon bantuan, saya ingin membuat peringkat (ranking) pada data siswa Laki-laki dan Perempuan.
saya punya data Jenis Kelamin beisi (L/P) dan nilai, saya ingin meranking anak Laki-laki (L) memisahkan data mereka dalam database berbeda.
JK Nilai rank
L 9 1
P 8 -
L 10 2
P 7 -
ini hasil rank yang saya harapkan jadi akan mengabaikan nilai anak perempuan dan menghitung ranking pada murid laki-laki saja.
mohon bantuan para suhu
terima kasih
#yiv3208178837 -- #yiv3208178837ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv3208178837 #yiv3208178837ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv3208178837 #yiv3208178837ygrp-mkp #yiv3208178837hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv3208178837 #yiv3208178837ygrp-mkp #yiv3208178837ads {margin-bottom:10px;}#yiv3208178837 #yiv3208178837ygrp-mkp .yiv3208178837ad {padding:0 0;}#yiv3208178837 #yiv3208178837ygrp-mkp .yiv3208178837ad p {margin:0;}#yiv3208178837 #yiv3208178837ygrp-mkp .yiv3208178837ad a {color:#0000ff;text-decoration:none;}#yiv3208178837 #yiv3208178837ygrp-sponsor #yiv3208178837ygrp-lc {font-family:Arial;}#yiv3208178837 #yiv3208178837ygrp-sponsor #yiv3208178837ygrp-lc #yiv3208178837hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv3208178837 #yiv3208178837ygrp-sponsor #yiv3208178837ygrp-lc .yiv3208178837ad {margin-bottom:10px;padding:0 0;}#yiv3208178837 #yiv3208178837actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv3208178837 #yiv3208178837activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv3208178837 #yiv3208178837activity span {font-weight:700;}#yiv3208178837 #yiv3208178837activity span:first-child {text-transform:uppercase;}#yiv3208178837 #yiv3208178837activity span a {color:#5085b6;text-decoration:none;}#yiv3208178837 #yiv3208178837activity span span {color:#ff7900;}#yiv3208178837 #yiv3208178837activity span .yiv3208178837underline {text-decoration:underline;}#yiv3208178837 .yiv3208178837attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv3208178837 .yiv3208178837attach div a {text-decoration:none;}#yiv3208178837 .yiv3208178837attach img {border:none;padding-right:5px;}#yiv3208178837 .yiv3208178837attach label {display:block;margin-bottom:5px;}#yiv3208178837 .yiv3208178837attach label a {text-decoration:none;}#yiv3208178837 blockquote {margin:0 0 0 4px;}#yiv3208178837 .yiv3208178837bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv3208178837 .yiv3208178837bold a {text-decoration:none;}#yiv3208178837 dd.yiv3208178837last p a {font-family:Verdana;font-weight:700;}#yiv3208178837 dd.yiv3208178837last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv3208178837 dd.yiv3208178837last p span.yiv3208178837yshortcuts {margin-right:0;}#yiv3208178837 div.yiv3208178837attach-table div div a {text-decoration:none;}#yiv3208178837 div.yiv3208178837attach-table {width:400px;}#yiv3208178837 div.yiv3208178837file-title a, #yiv3208178837 div.yiv3208178837file-title a:active, #yiv3208178837 div.yiv3208178837file-title a:hover, #yiv3208178837 div.yiv3208178837file-title a:visited {text-decoration:none;}#yiv3208178837 div.yiv3208178837photo-title a, #yiv3208178837 div.yiv3208178837photo-title a:active, #yiv3208178837 div.yiv3208178837photo-title a:hover, #yiv3208178837 div.yiv3208178837photo-title a:visited {text-decoration:none;}#yiv3208178837 div#yiv3208178837ygrp-mlmsg #yiv3208178837ygrp-msg p a span.yiv3208178837yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv3208178837 .yiv3208178837green {color:#628c2a;}#yiv3208178837 .yiv3208178837MsoNormal {margin:0 0 0 0;}#yiv3208178837 o {font-size:0;}#yiv3208178837 #yiv3208178837photos div {float:left;width:72px;}#yiv3208178837 #yiv3208178837photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv3208178837 #yiv3208178837photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv3208178837 #yiv3208178837reco-category {font-size:77%;}#yiv3208178837 #yiv3208178837reco-desc {font-size:77%;}#yiv3208178837 .yiv3208178837replbq {margin:4px;}#yiv3208178837 #yiv3208178837ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv3208178837 #yiv3208178837ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv3208178837 #yiv3208178837ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv3208178837 #yiv3208178837ygrp-mlmsg select, #yiv3208178837 input, #yiv3208178837 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv3208178837 #yiv3208178837ygrp-mlmsg pre, #yiv3208178837 code {font:115% monospace;}#yiv3208178837 #yiv3208178837ygrp-mlmsg * {line-height:1.22em;}#yiv3208178837 #yiv3208178837ygrp-mlmsg #yiv3208178837logo {padding-bottom:10px;}#yiv3208178837 #yiv3208178837ygrp-msg p a {font-family:Verdana;}#yiv3208178837 #yiv3208178837ygrp-msg p#yiv3208178837attach-count span {color:#1E66AE;font-weight:700;}#yiv3208178837 #yiv3208178837ygrp-reco #yiv3208178837reco-head {color:#ff7900;font-weight:700;}#yiv3208178837 #yiv3208178837ygrp-reco {margin-bottom:20px;padding:0px;}#yiv3208178837 #yiv3208178837ygrp-sponsor #yiv3208178837ov li a {font-size:130%;text-decoration:none;}#yiv3208178837 #yiv3208178837ygrp-sponsor #yiv3208178837ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv3208178837 #yiv3208178837ygrp-sponsor #yiv3208178837ov ul {margin:0;padding:0 0 0 8px;}#yiv3208178837 #yiv3208178837ygrp-text {font-family:Georgia;}#yiv3208178837 #yiv3208178837ygrp-text p {margin:0 0 1em 0;}#yiv3208178837 #yiv3208178837ygrp-text tt {font-size:120%;}#yiv3208178837 #yiv3208178837ygrp-vital ul li:last-child {border-right:none !important;}#yiv3208178837
Salam,HK
----- Forwarded Message -----
From: hendrik karnadi <hendrikkarnadi@yahoo.com>
To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
Sent: Wednesday, 25 March 2015, 13:16
Subject: Re: [belajar-excel] membuat peringkat dengan syarat tertentu
Hai PriskaRangkingnya berdasarkan nilai atau urutan ?
Salam,HK
From: "priska_christusy@yahoo.com [belajar-excel]" <belajar-excel@yahoogroups.com>
To: belajar-excel@yahoogroups.com
Sent: Wednesday, 25 March 2015, 10:44
Subject: [belajar-excel] membuat peringkat dengan syarat tertentu
Dear all,
Mohon bantuan, saya ingin membuat peringkat (ranking) pada data siswa Laki-laki dan Perempuan.
saya punya data Jenis Kelamin beisi (L/P) dan nilai, saya ingin meranking anak Laki-laki (L) memisahkan data mereka dalam database berbeda.
JK Nilai rank
L 9 1
P 8 -
L 10 2
P 7 -
ini hasil rank yang saya harapkan jadi akan mengabaikan nilai anak perempuan dan menghitung ranking pada murid laki-laki saja.
mohon bantuan para suhu
terima kasih
#yiv3208178837 -- #yiv3208178837ygrp-
Tue Mar 24, 2015 11:37 pm (PDT) . Posted by:
"Hendrik Karnadi" hendrikkarnadi
Hai Krisan,
Ikutan jawab ya....
Tanda "{}" (tanpa aposthrop) ditulis oleh komputer pada saat kita menekan tombol Ctrl Alt Del secara bersamaan, yang menandakan bahwa formula tsb adalah array formula.
Salam,
HK
Sent from Samsung Mobile
<div>-------- Original message --------</div><div>From: "Krisan Flower krisan_flower@rocketmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> </div><div>Date:25/03/2015 08:52 (GMT+07:00) </div><div>To: belajar-excel@yahoogroups.com </div><div>Subject: Bls: [belajar-excel] vlookup dengan kriteria dan average </div><div>
</div>Dear Pak Dede,
Setelah saya coba akhirnya bisa juga, hehe :), klo boleh tau kenapa harus ada tanda kurung kurawal itu pak dede, padahal saya sudah ketik kurung kurawal manual tapi tetep gak bisa setelah saya pakai ctrl + shift + enter bru bisa. Suwun sekali pak Dede.
Dear Mr. Kid,
Makasi atas referensinya saya sudah simpan di arsip saya :)
Krisan.
Pada Selasa, 24 Maret 2015 15:40, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:
hehehe...
Sering menggunakan fungsi Sum ?
-> menjumlahkan nilai-nilai numerik suatu range
-> contoh : total nilai penjualan (kolom A) =Sum( a1:a100 )
Pernah kenal SumIF ?
-> menjumlahkan nilai-nilai numerik berdasar 1 (SATU) kriteria
-> contoh : total penjualan (kolom A) untuk produk (kolom B) mobil =SumIF( b1:b100 , "mobil" , a1:a100 )
Pernah dengar SumIFs ?
-> menjumlahkan nilai-nilai numerik berdasar BANYAK kriteria (minimal 1 (SATU) kriteria)
-> contoh : Total penjualan (kolom A) untuk bulan Agustus 1945 (kolom C bertipe datetime berdata tanggal)
=SumIFs( a1:a100 , c1:c100 , ">=" & 1* "1945-08-01" , c1:c100 , "<=" & 1* "1945-08-31" )
Cara pakai Average mirip dengan cara pakai Sum bukan ? Hanya nama fungsinya yang berbeda.
Cara pakai AverageIF juga sama dengan cara pakai SumIF.
Jadi cara pakai AverageIFs sama dengan SumIFs.
Kenapa ?
Contoh referensi untuk averageif dan averageIFs (sayangnya memang ndak ada di google... untungnya ada di microsoft)
https://support.office.com/en-za/article/AVERAGEIF-function-ff3c70f9-5afe-4d3e-87d4-717187f98c20?ui=en-US&rs=en-ZA&ad=ZA
https://support.office.com/en-us/article/AVERAGEIFS-function-4cca2550-dab3-41c4-bcd2-648e17f20553?ui=en-US&rs=en-US&ad=US
;) untungnya, google bisa nyariin jalan untuk ketemu dengan microsoft
Sebenarnya kalau punya Excel Help yang bisa dibuka offline di komputer akan lebih enak, karena ndak usah repot cari jaringan internet dan cari link ke microsoft.
Wassalam,
Kid
2015-03-24 17:31 GMT+11:00 Krisan Flower krisan_flower@rocketmail.com [belajar-excel] <belajar-excel@yahoogroups.com>:
Dear Pak Uharyanto,
Salam
Setelah saya pakai hasilnya masih 0 Pak, mohon pencerahan.
Dear Mr. Kid,
saya mencoba menggunakan rumus tersebut tapi masih bingung dalam penentuan criterianya (nilai tidak keluar). saya coba cek di google gak ada literatur tentang AVERAGEIF yang ada cuman average atau if saja. mohon penjelasannya.
Terimakasih,
Krisan,
Pada Selasa, 24 Maret 2015 13:24, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:
di xl2007 ke atas ada fungsi Average, AverageIF, dan AverageIFs loh...
;)
2015-03-24 14:29 GMT+11:00 uharyanto uharyanto@gmail.com [belajar-excel] <belajar-excel@yahoogroups.com>:
Coba pake array formula
{=AVERAGE(IF($B$5:$B$20>=F6,IF($B$5:$B$20<=G6,$C$5:$C$20)))}
Terima kasih.
On 24/03/2015 9:11 AM, Krisan Flower krisan_flower@rocketmail.com [belajar-excel] wrote:
Dear Para Master,
Salam,
Saya kesulitan dalam mengambil nilai average dari kriteria di sebuah sheet,
berikut saya lampirkan contoh kasusnya, Mungkin ada banyak dari rekan2 yang punya persoalan yang sama dengan saya. Makasi sebelumnya.
Krisan.
Ikutan jawab ya....
Tanda "{}" (tanpa aposthrop) ditulis oleh komputer pada saat kita menekan tombol Ctrl Alt Del secara bersamaan, yang menandakan bahwa formula tsb adalah array formula.
Salam,
HK
Sent from Samsung Mobile
<div>-------- Original message --------</div><div>From: "Krisan Flower krisan_flower@rocketmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> </div><div>Date:25/03/2015 08:52 (GMT+07:00) </div><div>To: belajar-excel@yahoogroups.com </div><div>Subject: Bls: [belajar-excel] vlookup dengan kriteria dan average </div><div>
</div>Dear Pak Dede,
Setelah saya coba akhirnya bisa juga, hehe :), klo boleh tau kenapa harus ada tanda kurung kurawal itu pak dede, padahal saya sudah ketik kurung kurawal manual tapi tetep gak bisa setelah saya pakai ctrl + shift + enter bru bisa. Suwun sekali pak Dede.
Dear Mr. Kid,
Makasi atas referensinya saya sudah simpan di arsip saya :)
Krisan.
Pada Selasa, 24 Maret 2015 15:40, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:
hehehe...
Sering menggunakan fungsi Sum ?
-> menjumlahkan nilai-nilai numerik suatu range
-> contoh : total nilai penjualan (kolom A) =Sum( a1:a100 )
Pernah kenal SumIF ?
-> menjumlahkan nilai-nilai numerik berdasar 1 (SATU) kriteria
-> contoh : total penjualan (kolom A) untuk produk (kolom B) mobil =SumIF( b1:b100 , "mobil" , a1:a100 )
Pernah dengar SumIFs ?
-> menjumlahkan nilai-nilai numerik berdasar BANYAK kriteria (minimal 1 (SATU) kriteria)
-> contoh : Total penjualan (kolom A) untuk bulan Agustus 1945 (kolom C bertipe datetime berdata tanggal)
=SumIFs( a1:a100 , c1:c100 , ">=" & 1* "1945-08-01" , c1:c100 , "<=" & 1* "1945-08-31" )
Cara pakai Average mirip dengan cara pakai Sum bukan ? Hanya nama fungsinya yang berbeda.
Cara pakai AverageIF juga sama dengan cara pakai SumIF.
Jadi cara pakai AverageIFs sama dengan SumIFs.
Kenapa ?
Contoh referensi untuk averageif dan averageIFs (sayangnya memang ndak ada di google... untungnya ada di microsoft)
https://support.office.com/en-za/article/AVERAGEIF-function-ff3c70f9-5afe-4d3e-87d4-717187f98c20?ui=en-US&rs=en-ZA&ad=ZA
https://support.office.com/en-us/article/AVERAGEIFS-function-4cca2550-dab3-41c4-bcd2-648e17f20553?ui=en-US&rs=en-US&ad=US
;) untungnya, google bisa nyariin jalan untuk ketemu dengan microsoft
Sebenarnya kalau punya Excel Help yang bisa dibuka offline di komputer akan lebih enak, karena ndak usah repot cari jaringan internet dan cari link ke microsoft.
Wassalam,
Kid
2015-03-24 17:31 GMT+11:00 Krisan Flower krisan_flower@rocketmail.com [belajar-excel] <belajar-excel@yahoogroups.com>:
Dear Pak Uharyanto,
Salam
Setelah saya pakai hasilnya masih 0 Pak, mohon pencerahan.
Dear Mr. Kid,
saya mencoba menggunakan rumus tersebut tapi masih bingung dalam penentuan criterianya (nilai tidak keluar). saya coba cek di google gak ada literatur tentang AVERAGEIF yang ada cuman average atau if saja. mohon penjelasannya.
Terimakasih,
Krisan,
Pada Selasa, 24 Maret 2015 13:24, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:
di xl2007 ke atas ada fungsi Average, AverageIF, dan AverageIFs loh...
;)
2015-03-24 14:29 GMT+11:00 uharyanto uharyanto@gmail.com [belajar-excel] <belajar-excel@yahoogroups.com>:
Coba pake array formula
{=AVERAGE(IF($B$5:$B$20>=F6,IF($B$5:$B$20<=G6,$C$5:$C$20)))}
Terima kasih.
On 24/03/2015 9:11 AM, Krisan Flower krisan_flower@rocketmail.com [belajar-excel] wrote:
Dear Para Master,
Salam,
Saya kesulitan dalam mengambil nilai average dari kriteria di sebuah sheet,
berikut saya lampirkan contoh kasusnya, Mungkin ada banyak dari rekan2 yang punya persoalan yang sama dengan saya. Makasi sebelumnya.
Krisan.
Wed Mar 25, 2015 12:23 am (PDT) . Posted by:
"Bagus"
Assalamu'alaykum..
Minta tolong kepada be-exceller untuk kasus terlampir.
bagaimana ketika ketemu nomor satu yang kedua dan seterusnya maka akan
insert row.
Matur nuwun;
Wassalam
Bagus
Minta tolong kepada be-exceller untuk kasus terlampir.
bagaimana ketika ketemu nomor satu yang kedua dan seterusnya maka akan
insert row.
Matur nuwun;
Wassalam
Bagus
Wed Mar 25, 2015 1:17 am (PDT) . Posted by:
"hendrik karnadi" hendrikkarnadi
Mas Bagus,Ini adalah warisan mbak Siti Vi, yang saya modifikasi sedikit.Macronya seperti ini:Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'siti v, edited by hk Dim Rng As Range, r As Long Set Rng = Cells(1).CurrentRegion For r = Rng.Rows.Count + 1 To 2 Step -1 If Rng(r - 1, 1).Value = 1 Then Rng(r - 1, 1).EntireRow.Insert Shift:=xlDown End If Next r Rows("2:2").EntireRow.Delete Cancel = TrueEnd Subdi copas ke VBE (sheet1(data))
Salam,HK
From: "Bagus bagus4bls@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com>
To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
Sent: Wednesday, 25 March 2015, 14:23
Subject: [belajar-excel] Insert row [1 Attachment]
Assalamu'alaykum..
Minta tolong kepada be-exceller untuk kasus terlampir.
bagaimana ketika ketemu nomor satu yang kedua dan seterusnya maka akan insert row.
Matur nuwun;
Wassalam
Bagus
#yiv1244355864 #yiv1244355864 -- #yiv1244355864ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv1244355864 #yiv1244355864ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv1244355864 #yiv1244355864ygrp-mkp #yiv1244355864hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv1244355864 #yiv1244355864ygrp-mkp #yiv1244355864ads {margin-bottom:10px;}#yiv1244355864 #yiv1244355864ygrp-mkp .yiv1244355864ad {padding:0 0;}#yiv1244355864 #yiv1244355864ygrp-mkp .yiv1244355864ad p {margin:0;}#yiv1244355864 #yiv1244355864ygrp-mkp .yiv1244355864ad a {color:#0000ff;text-decoration:none;}#yiv1244355864 #yiv1244355864ygrp-sponsor #yiv1244355864ygrp-lc {font-family:Arial;}#yiv1244355864 #yiv1244355864ygrp-sponsor #yiv1244355864ygrp-lc #yiv1244355864hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv1244355864 #yiv1244355864ygrp-sponsor #yiv1244355864ygrp-lc .yiv1244355864ad {margin-bottom:10px;padding:0 0;}#yiv1244355864 #yiv1244355864actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv1244355864 #yiv1244355864activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv1244355864 #yiv1244355864activity span {font-weight:700;}#yiv1244355864 #yiv1244355864activity span:first-child {text-transform:uppercase;}#yiv1244355864 #yiv1244355864activity span a {color:#5085b6;text-decoration:none;}#yiv1244355864 #yiv1244355864activity span span {color:#ff7900;}#yiv1244355864 #yiv1244355864activity span .yiv1244355864underline {text-decoration:underline;}#yiv1244355864 .yiv1244355864attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv1244355864 .yiv1244355864attach div a {text-decoration:none;}#yiv1244355864 .yiv1244355864attach img {border:none;padding-right:5px;}#yiv1244355864 .yiv1244355864attach label {display:block;margin-bottom:5px;}#yiv1244355864 .yiv1244355864attach label a {text-decoration:none;}#yiv1244355864 blockquote {margin:0 0 0 4px;}#yiv1244355864 .yiv1244355864bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv1244355864 .yiv1244355864bold a {text-decoration:none;}#yiv1244355864 dd.yiv1244355864last p a {font-family:Verdana;font-weight:700;}#yiv1244355864 dd.yiv1244355864last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv1244355864 dd.yiv1244355864last p span.yiv1244355864yshortcuts {margin-right:0;}#yiv1244355864 div.yiv1244355864attach-table div div a {text-decoration:none;}#yiv1244355864 div.yiv1244355864attach-table {width:400px;}#yiv1244355864 div.yiv1244355864file-title a, #yiv1244355864 div.yiv1244355864file-title a:active, #yiv1244355864 div.yiv1244355864file-title a:hover, #yiv1244355864 div.yiv1244355864file-title a:visited {text-decoration:none;}#yiv1244355864 div.yiv1244355864photo-title a, #yiv1244355864 div.yiv1244355864photo-title a:active, #yiv1244355864 div.yiv1244355864photo-title a:hover, #yiv1244355864 div.yiv1244355864photo-title a:visited {text-decoration:none;}#yiv1244355864 div#yiv1244355864ygrp-mlmsg #yiv1244355864ygrp-msg p a span.yiv1244355864yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv1244355864 .yiv1244355864green {color:#628c2a;}#yiv1244355864 .yiv1244355864MsoNormal {margin:0 0 0 0;}#yiv1244355864 o {font-size:0;}#yiv1244355864 #yiv1244355864photos div {float:left;width:72px;}#yiv1244355864 #yiv1244355864photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv1244355864 #yiv1244355864photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv1244355864 #yiv1244355864reco-category {font-size:77%;}#yiv1244355864 #yiv1244355864reco-desc {font-size:77%;}#yiv1244355864 .yiv1244355864replbq {margin:4px;}#yiv1244355864 #yiv1244355864ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv1244355864 #yiv1244355864ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv1244355864 #yiv1244355864ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv1244355864 #yiv1244355864ygrp-mlmsg select, #yiv1244355864 input, #yiv1244355864 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv1244355864 #yiv1244355864ygrp-mlmsg pre, #yiv1244355864 code {font:115% monospace;}#yiv1244355864 #yiv1244355864ygrp-mlmsg * {line-height:1.22em;}#yiv1244355864 #yiv1244355864ygrp-mlmsg #yiv1244355864logo {padding-bottom:10px;}#yiv1244355864 #yiv1244355864ygrp-msg p a {font-family:Verdana;}#yiv1244355864 #yiv1244355864ygrp-msg p#yiv1244355864attach-count span {color:#1E66AE;font-weight:700;}#yiv1244355864 #yiv1244355864ygrp-reco #yiv1244355864reco-head {color:#ff7900;font-weight:700;}#yiv1244355864 #yiv1244355864ygrp-reco {margin-bottom:20px;padding:0px;}#yiv1244355864 #yiv1244355864ygrp-sponsor #yiv1244355864ov li a {font-size:130%;text-decoration:none;}#yiv1244355864 #yiv1244355864ygrp-sponsor #yiv1244355864ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv1244355864 #yiv1244355864ygrp-sponsor #yiv1244355864ov ul {margin:0;padding:0 0 0 8px;}#yiv1244355864 #yiv1244355864ygrp-text {font-family:Georgia;}#yiv1244355864 #yiv1244355864ygrp-text p {margin:0 0 1em 0;}#yiv1244355864 #yiv1244355864ygrp-text tt {font-size:120%;}#yiv1244355864 #yiv1244355864ygrp-vital ul li:last-child {border-right:none !important;}#yiv1244355864
Salam,HK
From: "Bagus bagus4bls@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com>
To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
Sent: Wednesday, 25 March 2015, 14:23
Subject: [belajar-excel] Insert row [1 Attachment]
Assalamu'
Minta tolong kepada be-exceller untuk kasus terlampir.
bagaimana ketika ketemu nomor satu yang kedua dan seterusnya maka akan insert row.
Matur nuwun;
Wassalam
Bagus
#yiv1244355864 #yiv1244355864 -- #yiv1244355864ygrp-
============================================================
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
---------------------------------------------------------------------
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