Excel - nilai pivot dalam satu sel (sebagai nilai yang dipisahkan koma)
Saya memiliki dua kolom data:
Pemasok1 | Produk1 Pemasok1 | Produk2 Pemasok1 | Produk4 Pemasok1 | Produk7 Pemasok2 | Produk3 Pemasok2 | Produk5
Saya ingin 'berputar' di sekitar Pemasok, dan memberikan daftar produk dalam satu sel tunggal, mis. Yang dipisahkan koma
Pemasok1 | Produk1, Produk2, Produk4, Produk7 Pemasok2 | Produk3, Produk5
Ada sekitar 1000 pemasok, dan 0 <produk <= 10.
Solusi saya saat ini melibatkan menggunakan tabel pivot, menyimpan sebagai CSV dll dan sangat berantakan. Solusi non-VBA akan luar biasa.
microsoft-excel
Chris
sumber
sumber
Jawaban:
Berikut adalah solusi tabel non-VBA, non-pivot yang hanya menggunakan beberapa rumus.
Pertama, saya menggunakan "Teks-ke-kolom" untuk membagi data Anda pada pembatas "pipa" (garis vertikal) menjadi 2 kolom; kolom "Pemasok" dan kolom "Produk". Mereka pergi di kolom A dan B, masing-masing. (Tampaknya di pos Anda bahwa mereka digabungkan dalam satu kolom, jadi saya pertama-tama memisahnya. Anda tidak perlu melakukan ini.)
Di kolom C, yang saya namakan sebagai kolom "Concatenation", saya menggunakan rumus ini, mulai dari sel C2 dan menyalin semuanya: = IF (A2 = A1, C1 & "," & B2, A2 & "|" & B2)
Di kolom D, yang saya beri nama "SupplierChangesAtNextLine?" Saya menggunakan rumus ini (dimulai pada D2 dan menyalin sepenuhnya): = IF (A2 = A3, "", "Changed")
Anda sekarang dapat memfilter pada kolom D hanya untuk nilai "yang diubah".
Perburuan yang bagus!
sumber
sumber
Tambahkan kolom C sebagai penghitung *: = COUNTIF (A $ 2: A $ 528, A2)
Tambahkan D sebagai selisih * = JIKA (A2 = A1, D1 + 1, 1)
Tambahkan E ke gabungkan *: = IF (A1 = A2, E1 & "," & B2, B2)
Tambahkan F untuk menjaga hanya concat terakhir : = JIKA (DAN (C2 = D2, E4 <> ""), E4, "")
Catatan tambahkan pada sel 2 dan tarik ke bawah (atau klik dua kali di sudut kanan) untuk menerapkan rumus untuk semua sel di kolom
salin dan tempel sebagai nilai di lembar lain, urutkan menurun dengan F, hapus sisanya
sumber