Saya mencoba menggunakan SPLIT
dan JOIN
fungsinya di Google Sheets (versi baru) untuk memanipulasi beberapa data, dan saya mengalami masalah karena SPLIT
tidak menyimpan entri kosong.
Sumber data diatur seperti ini, pada dasarnya:
| A B C D
-----------------------
1 | q 5 r 2
2 | s t 4
3 | u 8 v
4 | w 3 x 6
(Entri kosong dalam kumpulan data ini menunjukkan "tidak ada pengukuran", yang berbeda dari pengukuran 0
)
Di kolom A
dan C
, saya mendapatkan hasil yang saya inginkan dengan menggunakan rumus:
=SPLIT(JOIN("~",A1:A4,C1:C4),"~")
Itu menghasilkan baris yang berjalan, seperti yang diharapkan q
s
u
w
r
t
v
x
, masing-masing di selnya sendiri.
Namun, metode ini tidak berfungsi pada kolom B
dan D
. JOIN
berfungsi seperti yang diharapkan, memberikan output:
5~~8~3~2~4~~6
Melakukan SPLIT
pada output itu, bagaimanapun, menghasilkan masalah: Saya pergi dengan 5
8
3
2
4
6
, tanpa sel kosong di antara 5
dan 8
atau di antara 4
dan 6
, yang berarti pasangan dipecah (misalnya s
dan v
harus sesuai dengan sel kosong, tetapi sebaliknya w
dan x
lakukan). Masalahnya tampaknya SPLIT
adalah menafsirkan ~~
sebagai pembatas tunggal, bukan sebagai dua pembatas dengan entri nol di antara mereka.
Adakah yang tahu cara mempertahankan entri kosong dalam skenario semacam ini?
Output yang diinginkan akan terlihat seperti ini
q s u w r t v x
5 8 3 2 4 6
sumber
IF()
mengonversi bidang kosong menjadi ruang secara otomatis.=ARRAYFORMULA(IF(ISBLANK(B1:B4)," ",B1:B4))
untuk membuat seperangkat dummy kolom dengan "" di sel kosong, yang kemudian digunakan untukSPLIT
danJOIN
. Namun, masih berharap seseorang memiliki solusi yang lebih elegan: ini menambahkan banyak hal tambahan ke dokumen saya, dan masih membutuhkan saya untuk memperbarui nomor baris di beberapa tempat yang berbeda karena lebih banyak pengukuran ditambahkan ke kumpulan data. (Terima kasih kepada AI E. untuk setidaknya membiarkan sayaJawaban:
Coba solusi berikut ini.
Rumus
Dijelaskan
Anda sudah menunjukkan kepada kita bahwa
SPLIT
fungsi mengabaikan sel kosong, karena itu saya memilih string ini sebagai pembatas:" ,"
. Hasil antara dariJOIN
fungsi, terlihat seperti ini:Saya memilih pembatas untuk
SPLIT
fungsi menjadi ini:","
. Hasil antara dariSPLIT
fungsi, terlihat seperti ini:Sekarang, bagaimanapun, kita harus berurusan dengan ruang putih tambahan tambahan. Karena itu saya menggunakan
TRIM
fungsinya, untuk menghapus semua spasi putih spasi atau terdepan (dalam kombinasi denganARRAYFORMULA
). BandingkanLEN
nilai dari setiap hasil antara.Hasil
Contoh
Saya telah membuat file contoh untuk Anda: SPLIT untuk mempertahankan sel kosong
sumber
Coba solusi berikut ini.
Kode
Pemakaian
Tambahkan rentang sebanyak mungkin ke fungsi yang Anda inginkan dan mereka akan diproses. Tambahkan skrip kecil ini ke dalam editor skrip spreadsheet Anda (Alat> Editor skrip; Tekan tombol simpan).
Contoh
Saya telah membuat file contoh untuk Anda: SPLIT untuk mempertahankan sel kosong
sumber
Jawaban singkat
Rumus berikut mengembalikan hasil yang diinginkan.
Jawaban diperpanjang
Jawaban ini difokuskan dalam menyediakan cara untuk mendapatkan hasil yang diinginkan alih-alih membahas bagaimana membuat pendekatan yang dipilih untuk bekerja.
Masalah XY
OP ingin mendapatkan X dan berpikir bahwa Y harus mengembalikan hasil itu. Pendekatan ini bermasalah karena Y memiliki beberapa peringatan. Ini bisa menjadi masalah walikota karena OP bertanya tentang bagaimana membuat Y untuk bekerja alih-alih meminta cara untuk mendapatkan X tetapi itu tidak begitu besar karena menyediakan konteks dan hasil yang diinginkan.
Larutan
Google Sheets mampu menangani hasil multi-nilai dengan cara yang sangat sederhana dari sudut pandang pengguna akhir. Di sisi lain, memungkinkan untuk menggunakan notasi khusus untuk memungkinkan pengguna akhir untuk menentukan array.
Fitur-fitur di atas memungkinkan untuk mendapatkan hasil yang diharapkan tanpa menggunakan fungsi SPLIT () dan JOIN () dan tanpa peringatan yang melekat padanya.
Penjelasan rumus
Ini adalah array 2 X 8 yang dibuat oleh dua array / rentang 2 X 4. Titik koma (
;
) digunakan dengan asumsi bahwa pemisah desimal spreadsheet adalah titik (.
). Jika pemisah desimal adalah koma, ganti dengan garis miring terbalik (\
).Mengubah array 2 X 8 menjadi array 8 X 2.
Salah satu kelebihan metode ini adalah tidak memerlukan penanganan khusus sel kosong. Keunggulan lainnya adalah formula yang sangat ringkas dan sangat mudah untuk beradaptasi.
Referensi
sumber
Jika Anda bergabung dan menjadikan pembatas menjadi "," pada dasarnya koma dengan ruang sebelumnya, ia akan secara otomatis menyimpan ruang itu ketika Anda membaginya lagi:
sumber