Coba array formula : =Small( IF( CountIF( range_data, Row( Indirect( "1:" & Max( range_data ) ) ) ), "" , Row( Indirect( "1:" & Max( range_data ) ) ) ) , *Row(1:1)* )
Lebih baik tetap ada yang berupa deret per cell seperti di atas, agar bisa digunakan lebih leluasa. Untuk menggabungkan kedalam satu cell, bisa buat UDF JoinText public function JoinText(rngData as range, optional sDelimiter as string=vbnullstring,optional bNotBlank as boolean = true) as string dim sRes as string dim vTmp as variant for each vtmp in rngdata if not iserror(vtmp) then if lenb(vtmp)<>0 or not bnotblank then sres=sres & sdelimiter & vtmp endif endif next vtmp jointext=sres if lenb(sdelimiter)<>0 then jointext=mid$(sres,2) endif end function Cara pakai di worksheet : (join semua text di range datanya dengan delimiter titik koma dan yang blank *gak *boleh ikut) =jointext( range_datanya , ";" ) (join semua text di range datanya dengan delimiter titik koma dan yang blank boleh ikut) =jointext( range_datanya , ";" , false) Jika ingin membuat fungsi yang bisa menerima array (misal hasil array formula), sehingga langsung tanpa ada kolom bantu, maka ubah jadi : public function JoinText(*vData as variant*, optional sDelimiter as string=vbnullstring,optional bNotBlank as boolean = true) as string dim sRes as string dim vTmp as variant * if isarray(vdata) then * for each vtmp in *vdata* if not iserror(vtmp) then if lenb(vtmp)<>0 or not bnotblank then sres=sres & sdelimiter & vtmp endif endif next vtmp * else sres=vdata endif * jointext=sres if lenb(sdelimiter)<>0 then jointext=mid$(sres,2) endif end function Jadi bisa dipakai menjadi array formula di satu cell : (join semua text hasil array formula dengan delimiter titik koma dan yang blank *gak *boleh ikut) =JoinText( Small( IF( CountIF( range_data, Row( Indirect( "1:" & Max( range_data ) ) ) ), "" , Row( Indirect( "1:" & Max( range_data ) ) ) ) ,* Row(1:99)* , ";" ) (join semua text hasil array formula dengan delimiter titik koma dan yang blank boleh ikut) =JoinText( Small( IF( CountIF( range_data, Row( Indirect( "1:" & Max( range_data ) ) ) ), "" , Row( Indirect( "1:" & Max( range_data ) ) ) ) ,* Row(1:99)* , ";" , false ) Dicoba dulu, sapa tahu ada errornya. Kid. 2011/11/2 him mah <himmah....@gmail.com> > ** > > > Assalamu'alaikum Wr. Wb. > > maaf sebelumnya belum nyari-nyari dulu di posting sebelumnya kebetulan > koneksi internetnya lambat (karena yang pakai banyak) > > kita punya deretan angka yang tidak urut (seharusnya angka tersebut urut) > misal di kolom A saya punya angka 1;2;5;6;9;10;11;12;15 (tanda titik > koma sebagai pemisah baris). dari data tersebut ada beberapa angka > yang hilang yaitu 3,4,7,8,13,14 > > yang jadi pertanyaan adalah bagaimana memunculkan angka-angka yang > hilang tersebut > > kalau datanya sedikit sih bisa manual yang repot kalau datanya banyak > > terima kasih > >