Saya memiliki basis data produk di Excel dengan beberapa ratus entri, yang masing-masing memiliki dari 1 hingga 3 "tingkatan" harga: Standar, Deluxe, dan Premium. Setiap tingkatan memiliki SKU sendiri (A, B, atau C ditambahkan pada akhir SKU dasar) dan harga. Data saya seperti ini:
Name, Description, Price A, Price B, Price C, SKU A, SKU B, SKU C
name1, desc1, 14.95, 19.95, , sku1A, sku1B,
name2, desc2, 4.95, 9.95, 12.95, sku2A, sku2B, sku2C
name3, desc3, 49.95, , , sku3A, ,
Bagaimana cara saya mendapatkan data agar terlihat seperti ini:
Name, Description, SKU, Price
name1, desc1, sku1A, 14.95
name1, desc1, sku1B, 19.95
name2, desc2, sku2A, 4.95
name2, desc2, sku2B, 9.95
name2, desc2, sku2C, 12.95
name3, desc3, sku3A, 49.95
Jika ini membantu, saya akan mengimpor produk-produk ini ke instalasi Magento.
Terima kasih sebelumnya.
microsoft-excel
microsoft-excel-2010
csv
GreysonD
sumber
sumber
name1
dandesc1
tetapi dengan harga yang berbeda untuk Harga A, Harga B, Harga C, dll.Jawaban:
Tugas-tugas itu biasanya lebih cepat dengan VBA. Bahkan, butuh saya ~ 10 menit untuk mengaturnya.
Saya menganggap data Anda ada di kolom A hingga kolom H.
Pergi ke
Excel » Developer » Visual Basic
»Di jendela kiri bukasheet1
(atau) lembar tempat data Anda berada» Masukkan kode di jendela kanan »Jalankan kodeKode VBA
Penjelasan
Adalah niat saya untuk menjaga kode sesingkat mungkin untuk menjelaskannya dengan lebih baik. Pada dasarnya kami menggunakan dua loop. Loop luar (
i
) adalah untuk baris dan loop dalam (j
) untuk kolom harga.Kami banyak menggunakan
cells(rowNumber,columnNumber)
untuk membaca / menulis sel.Baris 2 | Mulai loop dari baris 2 ke baris terakhir Anda. Kami beralih melalui setiap baris yang digunakan
Baris 3 | Mulai loop kedua dari 0 hingga 2 (yang sebenarnya adalah 3 loop, satu untuk setiap kolom Harga)
Baris 4 | Kami menggunakan loop dalam ini untuk memeriksa nilai-nilai di baris dan kolom kami saat ini Harga A, lalu Harga B dan di loop terakhir Harga C. Jika kami menemukan nilai dalam kolom Harga, kami melanjutkan dan menyalin sel. Jika tidak ada Harga yang dimasukkan, kami tidak melakukan apa pun dan melanjutkan ke kolom Harga berikutnya
Baris 5 | Hitung penghitung untuk mengetahui berapa baris yang sudah kita salin,
jadi kita tahu setelah baris apa kita bisa menyalin baris kita saat ini
Baris 6 | Salin kolom nama
Baris 7 | Salin kolom deskripsi
Baris 8 | Salin kolom Harga A atau B atau C tergantung pada loop dalam apa kita saat ini
Baris 9 | Salin kolom SKU A atau B atau C tergantung pada apa loop dalam kita saat ini
Tangkapan layar hasil
sumber
Berikut ini adalah solusi fungsi lembar kerja. Rumusnya agak padat, jadi berhati-hatilah, tetapi ini akan memberikan apa yang Anda inginkan.
Langkah:
Name
, masukkan referensi langsung ke yang pertamaName
di data Anda. Dalam contoh Anda, Anda akan memasukkan di=A2
mana A2 adalah nama pertama yang tercantum dalam data Anda. Pada contoh tangkapan layar yang saya berikan di bawah, rumus ini masukA8
. Semua rumus berikut akan mengikuti tata letak yang digunakan dalam tangkapan layar. Anda tentu saja harus memperbarui semua referensi rentang agar sesuai dengan lembar Anda.A9
), dan jika jumlah baris yang sudah ada di tabel baru Anda cocok dengan ini, maka pindah ke nama berikutnya. Jika tidak, baris lain untuk nama di atas akan ditambahkan.Isi formula ini sejauh yang Anda perlukan (sampai mengembalikan 0 bukannya nama).
Description
masukkan formula berikut dan isi.SKU
, tempel rumus berikut ke bilah rumus dan tekan Ctrl+ Shift+ Enter. Ini adalah rumus array; jika dimasukkan dengan benar, rumus akan muncul di bilah rumus yang terlampir dalam kurung keriting. Isi formula ini di bawah meja Anda (setiap contoh juga akan muncul dalam kurung keriting).Price
, tempel rumus berikut ke bilah rumus dan masukkan sebagai rumus larik (dengan menekan Ctrl+ Shift+ Enter). Isi, dan ini harus melengkapi tabel Anda.sumber