[belajar-excel] Mengubah text dengan delimeter koma (,) menjadi angka dalam empat kolom

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[belajar-excel] Mengubah text dengan delimeter koma (,) menjadi angka dalam empat kolom

Herry Sutjipto
Dear all,
 
Saya mencoba mengubah hasil pengukuran posisi (dulu saat saya masih sekolah pakai teodolite tetapi sekarang bukan) dalam bentuk ASCI code untuk: no titik, northing, easting, ketinggian (level), dan identifikasi target, saya ubah menjadi angka.
Rumusnya kok jadinya puanjang banget ....... (worksheet terlampir).
Adakah yang bisa kasih ide lain, sehingga rumusnya pendek (boleh pakai makroh).
 
Regards
Herry Sutjipto

Hasil pengukuran Keruing#1 di transfer ke Angka.xls (132K) Download Attachment
Kid
Reply | Threaded
Open this post in threaded view
|

Re: [belajar-excel] Mengubah text dengan delimeter koma (,) menjadi angka dalam empat kolom

Kid
Administrator
Karena delimiternya adalah comma, maka pemisah desimal adalah titik atau
source-nya selalu dengan regional setting EN.
Memisahkan setiap item dengan jarak yang cukup lebar dan konstan, akan
memudahkan parse.
Umumnya menggunakan fungsi Substitute. Yang disubstitute adalah delimiter,
diganti dengan spasi yang panjaaaang buangeti..
contoh :
SUBSTITUTE($B5,",",REPT(" ",99))
setelah dapat data :
item1
item2
item3                             itemx
akan lebih mudah membayangkan mana yang akan diambil.
Ujung kiri dengan left sepanjang 99 (karena substitute diganti spasi
sebanyak 99 char)
ujung kanan pakai right sebanyak 99 char juga
tengahnya pakai Mid dengan titik start adalah kelipatan 99 dengan 99 pertama
adalah ujung kiri.

Untuk regional setting ID, atau yang suka dengan pemisah desimal berupa
tanda koma, maka perlu substitute sekali lagi, yaitu substitute hasil
pengambilan item. Yang disubstitute adalah karakter titik diganti menjadi
karakter koma.
Substitute( Mid( substitute( $b5, "," , Rept( " " , 99 ) ) , 1*99 , 99 ) ,
"." , *","* )

Kalau tidak yakin dengan regional setting yang digunakannya, maka bagian
yang di-bold diganti dengan :
Text( 0 , "." )

Oh iya, penentuan 99 tergantung panjang data. Biasanya 99 masih bisa
meng-handle sampai 105 karakter data (kira2 rerata loh, stdev-nya bisa lebar
banget)

Regards.
Kid.


2011/4/29 Herry Sutjipto <[hidden email]>

>
>
> Dear all,
>
> Saya mencoba mengubah hasil pengukuran posisi (dulu saat saya masih sekolah
> pakai teodolite tetapi sekarang bukan) dalam bentuk ASCI code untuk: no
> titik, northing, easting, ketinggian (level), dan identifikasi target, saya
> ubah menjadi angka.
> Rumusnya kok jadinya puanjang banget ....... (worksheet terlampir).
> Adakah yang bisa kasih ide lain, sehingga rumusnya pendek (boleh pakai
> makroh).
>
> Regards
> Herry Sutjipto
>
>  
>

re-Hasil pengukuran Keruing#1 di transfer ke Angka.xls (125K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [belajar-excel] Mengubah text dengan delimeter koma (,) menjadi angka dalam empat kolom

Herry Sutjipto
Dear Mr Kid,

Jumlah digit tidak selalu sama, terutama ketinggian titik (level), juga no titik dan identifikasi titiknya tidak konsisten jumlah digitnya.

Regards
Herry Sutjipto

Herry Sutjipto - 081399320035

PT. KALIMANTAN KUTAI ENERGI
Wisma Barito Pacific, Tower B, Lt. 6,
Jl. Let. Jend. S. Parman Kav. 62-63,
Jakarta 11410

-----> Send from my iPhone 3GS powered by Telkomsel <-----

On 29 Apr 2011, at 20:32, "Mr. Kid" <[hidden email]> wrote:

> Karena delimiternya adalah comma, maka pemisah desimal adalah titik atau source-nya selalu dengan regional setting EN.
> Memisahkan setiap item dengan jarak yang cukup lebar dan konstan, akan memudahkan parse.
> Umumnya menggunakan fungsi Substitute. Yang disubstitute adalah delimiter, diganti dengan spasi yang panjaaaang buangeti..
> contoh :
> SUBSTITUTE($B5,",",REPT(" ",99))
> setelah dapat data :
> item1                                          item2                                                item3                             itemx
> akan lebih mudah membayangkan mana yang akan diambil.
> Ujung kiri dengan left sepanjang 99 (karena substitute diganti spasi sebanyak 99 char)
> ujung kanan pakai right sebanyak 99 char juga
> tengahnya pakai Mid dengan titik start adalah kelipatan 99 dengan 99 pertama adalah ujung kiri.
>
> Untuk regional setting ID, atau yang suka dengan pemisah desimal berupa tanda koma, maka perlu substitute sekali lagi, yaitu substitute hasil pengambilan item. Yang disubstitute adalah karakter titik diganti menjadi karakter koma.
> Substitute( Mid( substitute( $b5, "," , Rept( " " , 99 ) ) , 1*99 , 99 ) , "." , "," )
>
> Kalau tidak yakin dengan regional setting yang digunakannya, maka bagian yang di-bold diganti dengan :
> Text( 0 , "." )
>
> Oh iya, penentuan 99 tergantung panjang data. Biasanya 99 masih bisa meng-handle sampai 105 karakter data (kira2 rerata loh, stdev-nya bisa lebar banget)
>
> Regards.
> Kid.
>
>
> 2011/4/29 Herry Sutjipto <[hidden email]>
>  
> Dear all,
>  
> Saya mencoba mengubah hasil pengukuran posisi (dulu saat saya masih sekolah pakai teodolite tetapi sekarang bukan) dalam bentuk ASCI code untuk: no titik, northing, easting, ketinggian (level), dan identifikasi target, saya ubah menjadi angka.
> Rumusnya kok jadinya puanjang banget ....... (worksheet terlampir).
> Adakah yang bisa kasih ide lain, sehingga rumusnya pendek (boleh pakai makroh).
>  
> Regards
> Herry Sutjipto
>
>
> <re-Hasil pengukuran Keruing#1 di transfer ke Angka.xls>
Reply | Threaded
Open this post in threaded view
|

Re: [belajar-excel] Mengubah text dengan delimeter koma (,) menjadi angka dalam empat kolom

siti Vi
Administrator
Yg menjadi masalah sebenarnya apanya ya ?? (he he ketinggalan pembicaraan
nih..)

Sekilas saya lihat tabel pak Herry sudah seperti yg diinginkan sendiri.

Seandainya masalahnya hanya *Text-Formula = kepanjangan*, mungkin dapat
diganti
saja dengan UDF; sehingga nantinya sintaks rumusnya cukup seperti ini
dijelaskan di bawah ini

*--1--*
Kita anggap data yg ada di kholom pertama (sebagai input)
Kita anggap data keluarannya adalah 5 data  (dalam dua versi)
Kita anggap 5 data itu ada indexnya ( 1 sampai 5) ( parameter Index)
Kita anggap keluaran (output) yg diinginkan ada dua "Macem" / dua versi
  yaitu seperti yg ada di tabel kolom D:G dan tabel kolom I:L
Untuk membedakan, keluaran yg mana y gdikehendaki, kita ciptakan parameter
UNIT
  jika Unit = "MM" atau "mm";  maka  outputnya adalah versi 1 (seperti tabel
D:G )
  jika Unit = "M" atau "m";  maka  outputnya adalah versi 2 (seperti tabel
I:L )

*--2--*
Rumusnya
bentuk formal (sintaks) nya
=KonversiX(DataYgDirujuk,Unit,Index)
argument#1 = string, argument#2 = string, argument#3 bilangan asli

rumus dalm bentuk nyata
=KonversiX($B6,"mm",2)
menghasilkan  data kedua  versi 1 (Unit "mm")

=KonversiX($B6,"M",4)
menghasilkan  data keempat  versi 2 (unit "M")

Jika 5 nomor Index (1 a/d 5) sudah ditulis di cell berjajar sebaris, maka
kita dapat
merujuknya , agar pembentukan Tabel Utuh (5 kolom) hanya perlu 1(satu) Rumus
Universal
sbb

=KonversiX($B6,"m",J$5)
tinggal mengkopy ke cells kanan dan bawahnya

*komment siti sendiri*
UDF itu terlalu sembrono, karena menganggap
** setting symbol Pemisah Argument harus "," koma
** setting symbol Pemisah Desimal  harus "." (TITIK)
** setting symbol Pemisah Pertengkaran harus  ^_~  (TITIK KAMAL)


' ----- sekrip / vba code --------
Function KonversiX(S As String, Unit As String, Index As Integer)
   ' siti Vi ** 8 Apr 2011
   ' milis belajar-excel; case
   ' http://tech.groups.yahoo.com/group/belajar-excel/message/9936
   '---------------------------------------------------
   Dim Dvsr As Integer, i As Integer, U As String
   Dim ArrDat, ArrHas() As Double

   S = Replace(Replace(S, ",", "\"), ".", "")
   ArrDat = Split(S, "\"):  U = LCase(Unit)
   ReDim ArrHas(1 To UBound(ArrDat))
   If U = "mm" Then Dvsr = 1
   If U = "m" Then Dvsr = 1000
   ' jika tetap mengunakan ArrDat, tidak dapat di-konversi menjadi Numbers

   ArrHas(1) = Val(ArrDat(0))
   ArrHas(2) = Val(ArrDat(1)) / Dvsr
   ArrHas(3) = Val(ArrDat(2)) / Dvsr
   ArrHas(4) = Val(ArrDat(3)) / Dvsr

   KonversiX = ArrDat(Index - 1)
   If Index <= UBound(ArrDat) Then KonversiX = ArrHas(Index)

End Function
'------------


2011/4/30 Herry Sutjipto <[hidden email]>

> Dear Mr Kid,
> Jumlah digit tidak selalu sama, terutama ketinggian titik (level), juga no
> titik dan identifikasi titiknya tidak konsisten jumlah digitnya.
>
> Regards
> Herry Sutjipto
>
>
> On 29 Apr 2011, at 20:32, "Mr. Kid" <[hidden email]> wrote:
>
> Karena delimiternya adalah comma, maka pemisah desimal adalah titik atau
> source-nya selalu dengan regional setting EN.
> Memisahkan setiap item dengan jarak yang cukup lebar dan konstan, akan
> memudahkan parse.
> Umumnya menggunakan fungsi Substitute. Yang disubstitute adalah delimiter,
> diganti dengan spasi yang panjaaaang buangeti..
> contoh :
> SUBSTITUTE($B5,",",REPT(" ",99))
> setelah dapat data :
> item1
> item2
> item3                             itemx
> akan lebih mudah membayangkan mana yang akan diambil.
> Ujung kiri dengan left sepanjang 99 (karena substitute diganti spasi
> sebanyak 99 char)
> ujung kanan pakai right sebanyak 99 char juga
> tengahnya pakai Mid dengan titik start adalah kelipatan 99 dengan 99
> pertama adalah ujung kiri.
>
> Untuk regional setting ID, atau yang suka dengan pemisah desimal berupa
> tanda koma, maka perlu substitute sekali lagi, yaitu substitute hasil
> pengambilan item. Yang disubstitute adalah karakter titik diganti menjadi
> karakter koma.
> Substitute( Mid( substitute( $b5, "," , Rept( " " , 99 ) ) , 1*99 , 99 ) ,
> "." , *","* )
>
> Kalau tidak yakin dengan regional setting yang digunakannya, maka bagian
> yang di-bold diganti dengan :
> Text( 0 , "." )
>
> Oh iya, penentuan 99 tergantung panjang data. Biasanya 99 masih bisa
> meng-handle sampai 105 karakter data (kira2 rerata loh, stdev-nya bisa lebar
> banget)
>
> Regards.
> Kid.
>
>

ctv_UDF_KonversiX Text CommaDelimited to Kolom.zip (55K) Download Attachment
~siti
Reply | Threaded
Open this post in threaded view
|

Re: [belajar-excel] Mengubah text dengan delimeter koma (,) menjadi angka dalam empat kolom

Herry Sutjipto
Dear bu Guru STDEV(i),
 
Memang tabel sudah sesuai keinginan sendiri.....
Tapi ....... rumusnya itu lho ...... puuuuuuuanjang buuuuuuanget ......
Terima kasih atas solusi alternative nya.
Jangan sering sering menggunakan ^_~ nanti mbak Titi Kamal marah ........
 
Regards
Herry Sutjipto

From: STDEV(i) <[hidden email]>
To: [hidden email]
Sent: Saturday, April 30, 2011 7:12 AM
Subject: Re: [belajar-excel] Mengubah text dengan delimeter koma (,) menjadi angka dalam empat kolom


 
Yg menjadi masalah sebenarnya apanya ya ?? (he he ketinggalan pembicaraan nih..)


Sekilas saya lihat tabel pak Herry sudah seperti yg diinginkan sendiri.

Seandainya masalahnya hanya Text-Formula = kepanjangan, mungkin dapat diganti 
saja dengan UDF; sehingga nantinya sintaks rumusnya cukup seperti ini
dijelaskan di bawah ini

--1--
Kita anggap data yg ada di kholom pertama (sebagai input) 
Kita anggap data keluarannya adalah 5 data  (dalam dua versi)
Kita anggap 5 data itu ada indexnya ( 1 sampai 5) ( parameter Index)
Kita anggap keluaran (output) yg diinginkan ada dua "Macem" / dua versi 
  yaitu seperti yg ada di tabel kolom D:G dan tabel kolom I:L
Untuk membedakan, keluaran yg mana y gdikehendaki, kita ciptakan parameter UNIT
  jika Unit = "MM" atau "mm";  maka  outputnya adalah versi 1 (seperti tabel D:G )
  jika Unit = "M" atau "m";  maka  outputnya adalah versi 2 (seperti tabel I:L ) 

--2--
Rumusnya
bentuk formal (sintaks) nya  
=KonversiX(DataYgDirujuk,Unit,Index)
argument#1 = string, argument#2 = string, argument#3 bilangan asli  

rumus dalm bentuk nyata
=KonversiX($B6,"mm",2)
menghasilkan  data kedua  versi 1 (Unit "mm")

=KonversiX($B6,"M",4)
menghasilkan  data keempat  versi 2 (unit "M") 

Jika 5 nomor Index (1 a/d 5) sudah ditulis di cell berjajar sebaris, maka kita dapat 
merujuknya , agar pembentukan Tabel Utuh (5 kolom) hanya perlu 1(satu) Rumus Universal
sbb

=KonversiX($B6,"m",J$5)
tinggal mengkopy ke cells kanan dan bawahnya

komment siti sendiri
UDF itu terlalu sembrono, karena menganggap 
** setting symbol Pemisah Argument harus "," koma
** setting symbol Pemisah Desimal  harus "." (TITIK)
** setting symbol Pemisah Pertengkaran harus  ^_~ (TITIK KAMAL)


' ----- sekrip / vba code --------
Function KonversiX(S As String, Unit As String, Index As Integer)
   ' siti Vi ** 8 Apr 2011
   ' milis belajar-excel; case
   ' http://tech.groups.yahoo.com/group/belajar-excel/message/9936
   '---------------------------------------------------
   Dim Dvsr As Integer, i As Integer, U As String
   Dim ArrDat, ArrHas() As Double
   
   S = Replace(Replace(S, ",", "\"), ".", "")
   ArrDat = Split(S, "\"):  U = LCase(Unit)
   ReDim ArrHas(1 To UBound(ArrDat))
   If U = "mm" Then Dvsr = 1
   If U = "m" Then Dvsr = 1000
   ' jika tetap mengunakan ArrDat, tidak dapat di-konversi menjadi Numbers   
   ArrHas(1) = Val(ArrDat(0))
   ArrHas(2) = Val(ArrDat(1)) / Dvsr
   ArrHas(3) = Val(ArrDat(2)) / Dvsr
   ArrHas(4) = Val(ArrDat(3)) / Dvsr
   
   KonversiX = ArrDat(Index - 1)
   If Index <= UBound(ArrDat) Then KonversiX = ArrHas(Index)

End Function
'------------



2011/4/30 Herry Sutjipto <[hidden email]>

Dear Mr Kid,

>Jumlah digit tidak selalu sama, terutama ketinggian titik (level), juga no titik dan identifikasi titiknya tidak konsisten jumlah digitnya.
>
>
>Regards
>Herry Sutjipto
>
>
>
>
>On 29 Apr 2011, at 20:32, "Mr. Kid" <[hidden email]> wrote:
>
>Karena delimiternya adalah comma, maka pemisah desimal adalah titik atau source-nya selalu dengan regional setting EN.
>>Memisahkan setiap item dengan jarak yang cukup lebar dan konstan, akan memudahkan parse.
>>Umumnya menggunakan fungsi Substitute. Yang disubstitute adalah delimiter, diganti dengan spasi yang panjaaaang buangeti..
>>contoh :
>>SUBSTITUTE($B5,",",REPT(" ",99))
>>setelah dapat data :
>>item1                                          item2                                                item3                             itemx
>>akan lebih mudah membayangkan mana yang akan diambil.
>>Ujung kiri dengan left sepanjang 99 (karena substitute diganti spasi sebanyak 99 char)
>>ujung kanan pakai right sebanyak 99 char juga
>>tengahnya pakai Mid dengan titik start adalah kelipatan 99 dengan 99 pertama adalah ujung kiri.
>>
>>Untuk regional setting ID, atau yang suka dengan pemisah desimal berupa tanda koma, maka perlu substitute sekali lagi, yaitu substitute hasil pengambilan item. Yang disubstitute adalah karakter titik diganti menjadi karakter koma.
>>Substitute( Mid( substitute( $b5, "," , Rept( " " , 99 ) ) , 1*99 , 99 ) , "." , ",")
>>
>>Kalau tidak yakin dengan regional setting yang digunakannya, maka bagian yang di-bold diganti dengan :
>>Text( 0 , "." )
>>
>>Oh iya, penentuan 99 tergantung panjang data. Biasanya 99 masih bisa meng-handle sampai 105 karakter data (kira2 rerata loh, stdev-nya bisa lebar banget)
>>
>>Regards.
>>Kid.
>>