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 <[email protected]>:
>
>
> 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 <[email protected]> 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 <[email protected]>
> *To:* [email protected]
> *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 <[email protected]>
> *To:* [email protected]
> *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 <[email protected]>
> *To:* [email protected]
> *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 <[email protected]>:
>
>
> 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.. :)
>
>
>
>
>
>
>
>
>
>