Hai Pukka, Moga-moga formula berikut bisa digunakan untuk sampai 9 price dalam 1 cell. (nanti dibuat jadi sebaris sendiri ya, sorry nih, media ketiknya ribet) =SumProduct( ( Find("|",substitute(a1," ","|",row($1:$9))&"|") -find("|",substitute(" "&a1," ","|",row($1:$9))&"|") -find("|",substitute( Substitute(a1,".","") ," " ,"|" ,row($1:$9) )&"|") +find("|",substitute( " "&Substitute(a1,".","") ," " ,"|" ,row($1:$9) )&"|") +1 ) * Right( substitute( left(a1&" 0#0" ,Find("|" ,Substitute(a1&" 0#0|"," ","|",row($1:$9)) ) -1 ) ,"#" ,"00000" ) ,5 ) )
Moga-moga, kalau formula diatas yang telah diganti semua bagian berbunyi Row($1:$9) menjadi berbunyi : row(a$1 :Index( a:a ,len(a1)-len( substitute(a1," ","") )+1 ) ) bisa digunakan untuk unlimited price dalam 1 cell. (jangan lupa dibuat sebaris dulu ya) *(apa iya gak ada maksimalnya ?)* Kondisi : >> bisa jadi, item array yang terbentuk oleh bagian Row(blabla) mencapai lebih dari 200 Dugaan : >> 1. bisa jadi kinerja Excel saat proses kalkulasi akan melambat. >> 2. Pada keadaan ini, penggantian fungsi SumProduct menjadi array formula Sum sepertinya ndak terlalu banyak mempercepat kinerja. >> 3. membuat beberapa kolom bantu untuk memecah formula akan membuat kinerja kalkulasi Excel menjadi lebih cepat secara signifikan. Kalau dugaan ketiga ternyata keliru, coba pakai UDF berikut : public function SumPart( sTeks as string, _ optional sPartDel as string=" ", _ optional sKodeDel as string=".", _ optional sPrice as string="#" _ ) as variant dim sPart() as string, lIdx as long, decRes as variant spart() = split( steks , spartdel ) for lidx=0 to ubound( spart ) decres=decres+ cdec( _ ( len(spart(lidx)) - len( replace$( spart(lidx) , skodedel , vbnullstring ) ) + 1 ) _ * ( 0 & mid$( spart(lidx) , instr( spart(lidx) , sprice ) + 1 ) ) _ ) next lidx sumpart=decres end function sepertinya bagian : len(spart(lidx)) - len( replace$( spart(lidx) , skodedel , vbnullstring ) ) bisa digant dengan : ubound( split( spart(lidx) , skodedel ) ) (tapi dicoba saja deh).... rekans, mohon koreksinya ya... kuatirnya masih error n butuh dihaluskan... sukur-sukur kalo dipendekin. Wassalam, Kid. 2014-02-06 Pukka Hamonangan Pardede <angan_l...@yahoo.co.id>: > > > Dear Bagus dan Mr. Kid > rumus yg terakhir sebenarnya bekerja tapi nampaknya hanya kepada > contoh: 12.22.70.8.115#20 11.23.101.65.9#20 1300#100 (hanya 3 tanda #) > jadi mohon bantuannya sekali lg pak, karena data yg di entri biasanya > berubah ( kadang hanya 1 tanda # dan kadang sampai 30 tanda #. artinya > formula yg kita inginkan akan bekerja pada unlimited tanda #. > > nb: "panjang/pendeknya formula yg dihasilkan tidak menjadi masalah pak" > > mohon bimbingan dan kesabarannya ya pak.. > (angkat saya jadi muridmu) > > > Pada Kamis, 6 Februari 2014 11:59, Bagus <ba...@kingjim.co.id> menulis: > > Maaf seharusnya begini: > > =MID(LEFT(A1,FIND(" ",A1)-1),FIND("#",LEFT(A1,FIND(" > ",A1)-1))+1,9)*(LEN(LEFT(A1,FIND(" ",A1)-1))-LEN(SUBSTITUTE(LEFT(A1,FIND(" > ",A1)-1),".",""))+1)+MID(MID(A1,FIND(" ",A1)+1,FIND(" ",A1,FIND(" > ",A1)+1)-FIND(" ",A1)-1),FIND("#",MID(A1,FIND(" ",A1)+1,FIND(" ",A1,FIND(" > ",A1)+1)-FIND(" ",A1)-1))+1,9)*(LEN(MID(A1,FIND(" ",A1)+1,FIND(" > ",A1,FIND(" ",A1)+1)-FIND(" ",A1)-1))-LEN(SUBSTITUTE(MID(A1,FIND(" > ",A1)+1,FIND(" ",A1,FIND(" ",A1)+1)-FIND(" > ",A1)-1),".",""))+1)+MID(RIGHT(A1,LEN(A1)-FIND(" ",A1,FIND(" > ",A1)+1)),FIND("#",RIGHT(A1,LEN(A1)-FIND(" ",A1,FIND(" > ",A1)+1)))+1,9)*(LEN(RIGHT(A1,LEN(A1)-FIND(" ",A1,FIND(" > ",A1)+1)))-LEN(SUBSTITUTE(RIGHT(A1,LEN(A1)-FIND(" ",A1,FIND(" > ",A1)+1)),".",""))+1) > > > Wassalam > ~ Bagus ~ > > > ----- Original Message ----- > *From:* Bagus <ba...@kingjim.co.id> > *To:* belajar-excel@yahoogroups.com > *Sent:* Thursday, February 06, 2014 11:37 AM > *Subject:* Re: [belajar-excel] bagaimanakah cara menghitung angka ya > diawali tanda # (pagar) > > > Hai Pukka; > > Coba begini: > =MID(LEFT(A1,FIND(" ",A1)-1),FIND("#",LEFT(A1,FIND(" > ",A1)-1))+1,9)*(LEN(LEFT(A1,FIND(" ",A1)-1))-LEN(SUBSTITUTE(LEFT(A1,FIND(" > ",A1)-1),".",""))+1)+MID(MID(A1,FIND(" ",A1)+1,FIND(" ",A1,FIND(" > ",A1)+1)-FIND(" ",A1)-1),FIND("#",MID(A1,FIND(" ",A1)+1,FIND(" ",A1,FIND(" > ",A1)+1)-FIND(" ",A1)-1))+1,9)*(LEN(MID(A1,FIND(" ",A1)+1,FIND(" > ",A1,FIND(" ",A1)+1)-FIND(" ",A1)-1))-LEN(SUBSTITUTE(MID(A1,FIND(" > ",A1)+1,FIND(" ",A1,FIND(" ",A1)+1)-FIND(" > ",A1)-1),".",""))+1)+MID(RIGHT(A1,LEN(A1)-FIND(" ",A1,FIND(" > ",A1)+1)),FIND("#",RIGHT(A1,LEN(A1)-FIND(" ",A1,FIND(" > ",A1)+1)))+1,9)*(LEN(RIGHT(A1,LEN(A1)-FIND(" ",A1,FIND(" > ",A1)+1)))-LEN(SUBSTITUTE(E1,".",""))+1) > > Maaf formulanya panjang banget.. > barangkali Mr. Kid atau master yg lain ada yg lebih ringkas.. > > > Wassalam > ~ Bagus ~ > > ----- Original Message ----- > *From:* Pukka Hamonangan Pardede <angan_l...@yahoo.co.id> > *To:* belajar-excel@yahoogroups.com > *Sent:* Thursday, February 06, 2014 10:01 AM > *Subject:* Bls: [belajar-excel] bagaimanakah cara menghitung angka ya > diawali tanda # (pagar) > > > Dear Bagus and Mr. Kid > PERFECT AGAIN..!! > sekarang puncak permasalahan perhitungan angka yg saya miliki bapak @bagus > dan @Mr. kid > sekarang begini bapak excel-lent semua: > > bagai mana menghitung angka setelah tanda # namun lebih dari 1 tanda # > contoh data bilangan berikut ada di A1 > 12.22.70.8.115#20 11.23.101.65.9#20 1300#100 > > total = 300 > > Kiranya bapak dapat membantu. > mohon kesabarannya pak. > > (angkat saya menjadi muridmu) > :) > > ----- Mods ----- > mungkin kasusnya bisa dijelaskan secara detail dan terperinci > sehingga solusi yang diberikan bisa untuk segala kondisi yang ada > ___________ > > Pada Kamis, 6 Februari 2014 9:40, Bagus menulis: > > Hai Pukka; > > Coba begini: > Misal data ada di A1. > =MID(A1,FIND("#",A1)+1,9)*(LEN(A1)-LEN(SUBSTITUTE(A1,".",""))+1) > > Wassalam > ~ Bagus ~ > > > ----- Original Message ----- > *From:* Pukka Hamonangan Pardede <angan_l...@yahoo.co.id> > *To:* belajar-excel@yahoogroups.com > *Sent:* Thursday, February 06, 2014 8:54 AM > *Subject:* Bls: [belajar-excel] bagaimanakah cara menghitung angka ya > diawali tanda # (pagar) > > > Dear Mr. Kid > PERFECT!! > formulanya bekerja dengan sempurna, 1 masalah saya akhirnya tuntas, jd > begini pak, bagaimana dengan penjumlahan angka setelah tanda pagar namun > formatnya demikian: > > 12.22.70.8.115#20 > > total = 100 (10 = seharga 20, 22 = seharga 20, 70 = seharga 20, 8 = > seharga 20, 115 = seharga 20) > > mohon bantuannya yah pak.. saya sudah cukup lama mencari pemecahanna namun > belum ada hingga saat ini yg mampu memberikan solusi. kiranya bapak dapat > membantu. > > mohon kesabarannya pak. > > (angkat saya menjadi muridmu) > :) > > > Pada Kamis, 6 Februari 2014 6:40, Mr. Kid menulis: > > Hai Angan, > > coba formula : > =sum( index( 1*(0&mid( range_datanya ,find("#", range_datanya "#")+1,15)) > ,0 ) ) > > Wassalam, > Kid. > > > > 2014-02-06 <angan_l...@yahoo.co.id>: > > > saya mau nanya bagaimanakah cara menghitung angka ya diawali tanda # > (pagar) > contoh: > > 10#10 > 13#10 > 22#5 > 13#25 > total = 50 (10+10+5+25) > > mohon bantuannya saudaraQ setanah air, kasus ini sudah membuat saya sakit > usus.. :) > > > > > > > > > >