Kalo gak boleh pake formula MID sepertinya gak bisa deh..
Tapi kalo gak pake perantara & boleh pake formula MID bisa sih.. 
Formula sebelumnya diedit dulu dikit.. Jadinya seperti ini..

Misal : Kode akses ada di cell A1

=CEILING(SUM(MID((MOD(COLUMN($A$1:$H$1)-1,2)+1)*MID(A1
,COLUMN($A$1:$H$1),1)&0,ROW($1:$2),1)+0),10)- 
SUM(MID((MOD(COLUMN($A$1:$H$1)-1,2)+1)*MID(A1,COLUMN($A$1:$H$1),1)
&0,ROW($1:$2),1)+0) 

Jgn lupa eksekusi dgn CSE..


cheers,
VD




R M A <[email protected]> 
Sent by: [email protected]
02/24/2009 09:48 AM
Please respond to
[email protected]


To
[email protected]
cc

Subject
Re: ]] XL-mania [[ Rumus mencari Check Digit









terimakasih mas vidi dan mbak siti atas solusinya...
terutama solusi terakhir tanpa cell perantara, (maaf mbak siti, saya 
gaptek makro)
tapi, mau nambahin soal nih...
karena asset code ini, di maintain oleh semua departemen dan akhirnya di 
satuin kembali oleh GA dan dikembalikan ke finance, masalah sebenarnya 
lebih pelik.
Karena tidak semua departemen yang memaintain asset tadi mencantumkan 
asset code ini dalam 8 kolom, ada yang langsung disatukan dalam satu cell 
saja.
Cara gampang adalah dengan membuat kolom pembantu dengan formula mid
sehingga asset code yang tadinya hanya satu kolom menjadi delapan kolom 
dan baru dapat dicari check digitnya.
Nah, bagaimana formula mencari check digit ini, jika delapan digit asset 
code tadi berada dalam satu cell, tanpa menggunakan cell perantara dan 
formula mid? format cell ini ada yang text ada juga yang general....
 
Terimakasih banyak
 
 

Pada 23 Februari 2009 13:19, <[email protected]> menulis:

Tanpa perantara juga bisa kok.. Kalo pake fungsi IF jadinya emang panjang 
sih makanya butuh banyak perantara.. 
coba aja pake Array formula dibawah ini.. Jgn lupa Ctrl+Shift+Enter.. 

Kalo nilai awal kode asset dimulai di kolom genap ( B,D,F,H,.... ) misal : 
kode asset di kolom D2:K2 
=CEILING(SUM(MID((MOD(COLUMN($D2:$K2),2)+1)*$D2:$K2&0,ROW($1:$2),1)+0),10)- 

SUM(MID((MOD(COLUMN($D2:$K2),2)+1)*$D2:$K2&0,ROW($1:$2),1)+0) 

Kalo nilai awal kode asset dimulai di kolom ganjil ( A,C,E,G,.... ) 
seperti di case yg dikasih, kode asset ada di kolom C2:J2.. Maka rumusnya 
spt ini : 
=CEILING(SUM(MID((MOD(COLUMN($C2:$J2)-1
,2)+1)*$C2:$J2&0,ROW($1:$2),1)+0),10)- 
SUM(MID((MOD(COLUMN($C2:$J2)-1,2)+1)*$C2:$J2&0,ROW($1:$2),1)+0) 


cheers, 
VD





siti Vi <[email protected]> 
Sent by: [email protected] 
02/23/2009 02:27 PM 

Please respond to
[email protected]



To
[email protected] 
cc

Subject
Re: ]] XL-mania [[ Rumus mencari Check Digit











mohon maaf sudah lewat seminggu masih "nge"-thread ke topik ini;
soalnya kasusnya cukup menarik, dan dari pc isti kelihatannya baru ada 1 
tanggapan.

mas kid sebenarnya sudah menjelaskan melalui formula (yg harus banyak 
dibantu oleh 
formula perantara di cells lain.
disinggung pula, solusi lain adalah dengan udf makro (fungsi yg dibuat 
sendiri melalui makro)

coding udf-nya spt apa? 
salah satu-nya kira-kira seperti ini:

'=== versi puisi ==='
Function ChexDigit(Num As Long) As Long
  '-----------------------------------------
  '  siti Vi / mecari Nilai Digit ke 9
  '  jkt-bluewater, 21 feb 2009
  '------------------------------------------
  Dim x(1 To 8) As Integer, y(1 To 8) As Integer
  Dim z(1 To 9) As Integer, newZ As Integer
  Dim i As Byte, n As Byte
  If Len(CStr(Num)) <> 8 Then Exit Function
  For i = 1 To 8
      x(i) = CInt(Mid(Num, i, 1))
      y(i) = IIf(i Mod 2 = 0, 2, 1)
      z(i) = x(i) * y(i)
  Next i
  For i = 1 To 8
     If z(i) > 9 Then
         newZ = 0
         For n = 1 To Len(z(i))
            newZ = newZ + CInt(Mid(z(i), n, 1))
         Next n
         z(i) = newZ
     End If
     z(9) = z(9) + z(i)
  Next i
  z(9) = WorksheetFunction.Ceiling(z(9), 10) - z(9)
  ChexDigit = CLng(CStr(Num) & z(9))
End Function

----------------------------------------

'=== versi dongeng ==='
Function ChexDigit(Num As Long) As Long
  '--------------------------------------
  ' siti Vi: menebak nilai Digit ke 9
  ' jkt-bluewater, 21 feb 2009
  '--------------------------------------
  Dim x(1 To 8) As Integer   ' array data (kode aktiva) yg diurai
  Dim y(1 To 8) As Integer   ' array data pengali
  Dim z(1 To 9) As Integer   ' aray data hasil kali, (selain z(9) )
  Dim newZ      As Integer   ' penampung olahan elemen z(n)
  Dim i As Byte, n As Byte   ' counter / pencacah looping
 
  ' jika length of data BUKAN 8 digit = cuekin ajah..!
  If Len(CStr(Num)) <> 8 Then Exit Function 
  ' mengisi elemen tiap array sesuai 'aturan main'-nya
  For i = 1 To 8
     x(i) = CInt(Mid(Num, i, 1))
     y(i) = IIf(i Mod 2 = 0, 2, 1)
     z(i) = x(i) * y(i)
  Next i 
  ' komputasi lebih lanjut khusus untuk elemen z(i) yg > 9
  For i = 1 To 8
    If z(i) > 9 Then
       newZ = 0
       For n = 1 To Len(z(i))
         newZ = newZ + CInt(Mid(z(i), n, 1))
       Next n
       z(i) = newZ
    End If
    ' hasil komputasi di-akumulasikan di elemen z(9)
    z(9) = z(9) + z(i)
  Next i
  ' tendangan terakhir untuk nilai z(9)
  z(9) = WorksheetFunction.Ceiling(z(9), 10) - z(9) 
  ' array z() digabung kembali menjadi 1 bilangan 9 digit
  ' sambil diumpankan ke variable namaFungsi
  ChexDigit = CLng(CStr(Num) & z(9)) 
End Function

hasil fungsi ChexDigit di woksit, apakah benar, ataukah nguawurr, bisa 
dilihat di wokbuk lampiran
ctv 20/2/2009



2009/2/15 R M A <[email protected]> 
Mohon bantuan pakar excel semua, untuk problem terlampir
-- 
R M A 
[attachment "ctv_Problem ChekDigit.xls" deleted by Vidi 
Ardyanto/TJ0987/JOC/ID] 



-- 
R M A

http://maskokilima.wordpress.com

<<image/gif>>

<<image/gif>>

Kirim email ke