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 <*rajendra.ma* 
> <http://rajendra.ma/>@*gmail.com*<http://gmail.com/>
> >
> 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>>

Kirim email ke