Saya menyusun database info alamat bisnis, termasuk staf kunci untuk setiap bisnis. Spreadsheet Google yang saya warisi untuk proyek ini mencakup kolom untuk 'staf kunci' (di kolom B), dengan beberapa nama staf kunci yang tercantum dalam sel yang sama, dipisahkan oleh jeda baris (yaitu CHAR (10)). Ada satu bisnis per baris. Jumlah baris dalam sel 'staf kunci' bervariasi baris demi baris. Lembar awal saya terlihat seperti ini:
Saya perlu melakukan hal berikut untuk mengoptimalkan sheet ini:
- pisahkan setiap sel 'staf kunci' multi-baris sehingga setiap nama staf kunci muncul di barisnya masing-masing. Ini mengharuskan baris baru dimasukkan di bawah baris asli.
- duplikat data dari semua sel lain di baris asli (yaitu dari kolom A & C: E), sehingga setiap baris baru berisi data lengkap untuk setiap bisnis
- Saya memerlukan proses otomatis - Saya akan memiliki sekitar 1000 bisnis untuk diproses sehingga tidak dapat melakukan ini dengan langkah manual apa pun
Lembar itu akan terlihat seperti ini:
Penggunaannya =TRANSPOSE(SPLIT(B1,CHAR(10)))
jelas hanya berjalan sebagian - tidak memasukkan baris baru dan tidak menduplikasi entri kolom di sekitarnya. Semua bantuan diterima dengan penuh syukur!
Jawaban:
Pertama-tama, maaf atas jawaban yang terlambat, tetapi saya punya solusi untuk Anda kerjakan.
Kode
Dijelaskan
Script mengevaluasi setiap baris, dan khususnya kolom kedua dari setiap baris (dalam array JavaScript berbasis nol, sehingga kolom 2 sesuai dengan indeks 1 array). Ini membagi isi sel itu, menjadi beberapa nilai dan menggunakan
"\n"
pembatas sebagai (umpan baris). Setelah itu menambahkan info yang ada ke array dan hanya menambahkan hasil individu, ketika menyentuh indeks 1 (k == 1)
. Baris yang baru disiapkan kemudian ditambahkan ke array lain, yang dikembalikan untuk menunjukkan hasilnya.Tangkapan layar
data
hasil
Contoh
Saya telah membuat file contoh untuk Anda: sel multi-baris ke baris baru .
Tambahkan skrip di bawah Alat> Editor skrip dan tekan tombol simpan.
sumber
Solusi yang berulang dapat membutuhkan skrip.
Tetapi untuk upaya satu kali, Anda bisa menggunakannya
=SPLIT(B3,CHAR(10))
. Ini akan memberi Anda semua nama orang di kolom pembantu berdampingan, seperti ini:Salin / Tempel-khusus, nilai konten kolom pembantu.
Dan untuk setiap kolom pembantu yang digunakan (mudah-mudahan tidak terlalu banyak, karena semoga Anda tidak memiliki terlalu banyak orang dalam satu bisnis) secara manual salin dan tempel blok baris hingga akhir blok saat ini. (Itu bukan deskripsi yang bagus, tetapi Anda mengerti maksudnya.)
sumber
Untuk orang-orang yang mungkin tidak segera memahami cara menggunakan fungsi kustom yang bermanfaat dalam jawaban yang diterima :
Anda membutuhkan lebih dari satu lembar, pada contoh dua lembar tersebut adalah
DATA
danRESULT
. TheRESULT
lembar kosong sampai query telah dijalankan. Anda dapat melihat kueri yang merujuk padaDATA
lembar di tangkapan layar Jacob.Anda kemungkinan besar harus mengubah nilai perbandingan untuk
k
jalur 8 yang merujuk pada kolom tempat data Anda akan diuraikan. Nomor yang sama harus masuk ke nilai array ke-2 pada baris 4.Anda mungkin perlu memodifikasi pembatas di baris 4 yang saat ini
\n
Untuk membuat semua ini sedikit lebih mudah, saya mengambil kode yang sama dan mengekstrak pembatas dan kolom target ke dalam variabel yang ditetapkan di bagian atas fungsi. Ketika Yakub menyebutkan jumlah kolom target dimulai dengan 0 sebagai angka pertama.
Referensi
sumber