Memisahkan angka dan huruf tertentu

  1. 6 bulan yang lalu

    Minal aidzin wal faidizin
    Mohon maaf lahir & bathin kepada guru2 da master BE semua

    Izin bertanya guru.... jika ingin hasil seperti pada foto / data dibawah ini,, kira2 formula / vba nya gimana yaaa

    sbelumnya saya ucapkan terima kasih atas bantuannya

    Screenshot_6.png

  2. Caton

    21 Mei 2021 Terverifikasi Indonesia + 17.716 Poin

    Mbak @anggun123 ...

    Terlampir contoh solusi menggunakan formula untuk kasus yang ditanyakan. Semoga sesuai.

    Demikian.

  3. Terima kasih om @Caton

  4. maaf om @Caton

    Semisal di dbcolor tidak ada
    maka supaya hasilnya tidak kosong / blank
    jadi biar kembali ke data asal...

    kira2 gmn yaaa om formulanya
    karena datanya dinamis , terkadang datanya bukan nama warna ,
    semisal
    " umur 1 thn "
    " size 3 "
    dll

  5. Caton

    Jun 7 Terverifikasi Indonesia + 17.716 Poin

    Mbak @anggun123 ...

    Formula yang digunakan pada kolom D menggunakan fungsi IFERROR, dimana untuk argumen Value_If_Error diisi dengan Empty String. Formula pada sel D3 :

    =IFERROR(INDEX(dbColors;SUMPRODUCT((COUNTIF($B3;"*"&dbColors&"*")>0)*(ROW(dbColors)-2)));"")

    Bagian akhir formula merupakan argumen Value_If_Error dari fungsi IFERROR. Pada formula tersebut, jika fungsi INDEX menghasilkan kesalahan, maka fungsi IFERROR akan mengembalikan nilai kosong (blank/empty string). Untuk mengubah hasilnya saat terjadi error, maka cukup ubah argumen tersebut, misalkan :

    =IFERROR(INDEX(dbColors;SUMPRODUCT((COUNTIF($B3;"*"&dbColors&"*")>0)*(ROW(dbColors)-2)));$B3)

    Pada formula di atas, jika fungsi INDEX menghasilkan kesalahan (error) maka fungsi IFERROR akan mengembalikan nilai berupa nilai pada kolom B pada baris yang sama, yakni pada sel B3.

    Demikian.

  6. saya coba buat dbwarna
    dan saya coba di baris ke 14 ,, kok hasilnya bisa beda yaaa om

    file terlampir

    terima kasih

  7. Caton

    Jun 7 Terverifikasi Indonesia + 17.716 Poin

    Mbak @anggun123 ...

    pertama, seperti yang saya sampaikan di atas, yang perlu diubah adalah argumen Value_If_Error dari fungsi IFERROR. Perhatikan gambar berikut:

    image_2021-06-07_115450.png

    Kedua, nama range WARNA hanya memiliki 7 baris data saja (range C3:C9). Bila ingin mengakomodir seluruh baris data warna pada kolom C tersebut, seharusnya nama range WARNA dirujuk ke range C3:C104.

    Contoh terlampir, semoga sesuai.

    Demikian.

  8. terima kasih om @Caton
    untuk contoh sesuai data di file tsb om,,, baris ke 12 " size 9 thn "

    masih belum bisa ke data semula yaa om,,,
    apa saya yg salah yaaa,, hehe
    saya coba berkali kali masih gk kembali

  9. Caton

    Jun 7 Terverifikasi Indonesia + 17.716 Poin

    Mbak @anggun123 ...

    Bukankah yang saya contohkan sudah seperti yang diinginkan? Lihat gambar berikut (baris ke-12, yang warna orange):

    image_2021-06-07_133842.png

    Atau coba buat contoh seperti apa hasil yang diinginkan.

  10. iya om...
    tpi entah kok aneh di pc ku
    saya coba ganti dri Db Colors menjadi DbWarna

    saya tarik formulanya kebawah...
    untuk baris ke 12 saja ...hasilnya gk sesuai :)

  11. Caton

    Jun 7 Terverifikasi Indonesia + 17.716 Poin

    Mbak @anggun123 ...

    PC mbak baik-baik saja... :D Formula yang saya berikan sebelumnya memang bermasalah jika data warna yang dicari tidak ditemukan. Coba ubah formulanya menjadi (di sel D3) :

    =IFERROR(INDEX(dbWarna;AGGREGATE(15;6;SEARCH("*"&dbWarna&"*";$B3)*(ROW(dbWarna)-2);1));$B3)

    Demikian.

  12. owalah,,, pantesan om :D
    terima kasih om @Caton sudah bisa

    cuman fungsi search sepertinya ada kekurangannya yaa om,,
    semisal mencari : merah muda
    maka yg keambil merah :D

  13. Caton

    Jun 8 Terverifikasi Indonesia + 17.716 Poin

    Mbak @anggun123...

    Untuk masalah hasil yang ditemukan tidak tepat (harusnya Merah Muda namun yang didapat adalah Merah), bukan berasal dari fungsi SEARCH, namun dikarenakan pada formula :

    =IFERROR(INDEX(dbWarna;AGGREGATE(15;6;SEARCH("*"&dbWarna&"*";$B3)*(ROW(dbWarna)-2);1));$B3)

    menggunakan simulasi fungsi SMALL (notasi 15) pada fungsi AGGREGATE tersebut. Pada saat formula tersebut menemukan 2 atau lebih nilai yang serupa, maka fungsi akan mengembalikan indeks baris yang paling kecil.

    Solusinya, pertama buat tabel data warna yang tersusun secara ascending berdasarkan panjang karakter setiap baris data. Solusi kedua, gunakan VBA. Untuk lebih jelasnya, silahkan lihat contoh terlampir.

    Demikian.

  14. Tak dapat berkata2 apa2,,,
    om @Caton emang terbaik,,, mantap ilmunya,,,
    smga saya bisa mengikuti jejaknya :D

    terima kasih banyak om @Caton

    Perfect

  15. maaf om@Caton
    apakah bisa di kondisikan,, jika seumpama
    di data asalnya adalah karakter/kata tunggal , khusus ini ( S ,M ,L ,XL ,XXL ,27 ,28 ,29 ,30 ,31 ,32 )
    maka akan masuk ke kolom ukuran

  16. Caton

    Jun 9 Terverifikasi Indonesia + 17.716 Poin

    Mbak @anggun123 ...

    Bisa saja formulanya dikondisikan seperti yang mbak maksud. Misalkan saja begini:

    1 — Buat tabel acuan yang berisi nilai S, M, L, XL, XXL, 27, 28, 29, 30, 31, 32 dan lain sebagainya.
    2 — Berikan nama tabel tersebut, misalkan dbUkuran.
    3 — Kemudian buat formula sebagaimana kondisi yang diharapkan.

    Misalkan saja, dengan contoh sebelumnya, data berada pada kolom B pada range B4:B16. Maka pada sel D4 (kolom WARNA) dapat disusun formula seperti berikut:

    =IF(ISNUMBER(MATCH($B4;dbUkuran;0))+ISNUMBER($B4);"";IFERROR(INDEX(dbWarna2;AGGREGATE(15;6;SEARCH("*"&dbWarna2&"*";$B4)*(ROW(dbWarna2)-2);1));$B4))

    atau dengan fungsi AmbilWarna formulanya menjadi:

    =IF(ISNUMBER(MATCH($B4;dbUkuran;0))+ISNUMBER($B4);"";AmbilWarna($B4;dbWarna2))

    Sedangkan untuk sel E4 (kolom UKURAN), formulanya disusun menjadi:

    =IF(ISNUMBER(MATCH($B4;dbUkuran;0))+ISNUMBER($B4);$B4&"";TRIM(SUBSTITUTE(UPPER($B4);UPPER($D4);"")))

    Pada formula di atas, kondisi diuji berdasarkan formula:

    ISNUMBER(MATCH($B4;dbUkuran;0))+ISNUMBER($B4)

    dimana pada formula tersebut ada 2 kondisi yang diuji, yakni ISNUMBER(MATCH($B4;dbUkuran;0)) dan ISNUMBER($B4) dengan penghubung menggunakan operator OR (menggunakan tanda +). Sehingga, hasil kalkulasi dari formula tersebut akan bernilai TRUE — apabila nilai akhirnya tidak sama dengan 0, yakni dengan syarat salah satu atau kedua kondisi tersebut bernilai TRUE.

    Gambarannya begini:

    — Jika sel B4 bernilai 30 maka:

    = ISNUMBER(MATCH($B4;dbUkuran;0))+ISNUMBER($B4)
    = ISNUMBER(MATCH(30;dbUkuran;0))+ISNUMBER(30) 
    = ISNUMBER(9)+TRUE
    = TRUE+TRUE
    = 2

    — Jika sel B4 bernilai XXL maka:

    = ISNUMBER(MATCH($B4;dbUkuran;0))+ISNUMBER($B4)
    = ISNUMBER(MATCH("XXL";dbUkuran;0))+ISNUMBER("XXL") 
    = ISNUMBER(5)+FALSE
    = TRUE+FALSE
    = 1

    — Jika sel B4 bernilai HITAM 30 maka:

    = ISNUMBER(MATCH($B4;dbUkuran;0))+ISNUMBER($B4)
    = ISNUMBER(MATCH("HITAM 30";dbUkuran;0))+ISNUMBER("HITAM 30") 
    = ISNUMBER(#N/A)+FALSE
    = FALSE+FALSE
    = 0

    Perlu diperhatikan bahwa formula untuk sel E4 di atas masih memiliki kekurangan saat sel B4 berisi nilai berupa angka namun nilai tersebut tidak termasuk dalam kelompok nilai yang ditentukan di dalam range dbUkuran, misalkan:

    — Jika sel B4 bernilai 10 maka:

    = ISNUMBER(MATCH($B4;dbUkuran;0))+ISNUMBER($B4)
    = ISNUMBER(MATCH(10;dbUkuran;0))+ISNUMBER(10) 
    = ISNUMBER(#N/A)+TRUE
    = FALSE+TRUE
    = 1

    Jika memang mbak tidak mau memasukkan nilai yang tidak termasuk dalam kelompok nilai yang ditentukan di dalam range dbUkuran tersebut, maka formula pada sel E4 dapat ditambahkan fungsi IF untuk menguji apakah nilai pada sel B4 termasuk dalam range dbUkuran seperti berikut ini :

    =IF(ISNUMBER(MATCH($B4;dbUkuran;0))+ISNUMBER($B4);IF(ISNUMBER(MATCH($B4;dbUkuran;0));$B4&"";"");TRIM(SUBSTITUTE(UPPER($B4);UPPER($D4);"")))

    Untuk lebih jelasnya, silahkan pelajari file terlampir.

    Demikian, semoga dapat diterapkan.

 

atau Mendaftar untuk ikut berdiskusi!