Tukar lajur / baris kepada tatasusunan dalam Excel: WRACOLS & Fungsi WRAPROWS

  • Berkongsi Ini
Michael Brown

Cara terpantas untuk mengubah lajur atau baris nilai kepada tatasusunan dua dimensi adalah menggunakan fungsi WRACOLS atau WRAPROWS.

Sejak hari-hari terawal Excel, ia telah sangat pandai mengira dan menganalisis nombor. Tetapi memanipulasi tatasusunan secara tradisinya menjadi satu cabaran. Pengenalan tatasusunan dinamik menjadikan penggunaan formula tatasusunan menjadi lebih mudah. Dan kini, Microsoft sedang mengeluarkan satu set fungsi tatasusunan dinamik baharu untuk memanipulasi dan membentuk semula tatasusunan. Tutorial ini akan mengajar anda cara menggunakan dua fungsi tersebut, WRACOLS dan WRAPROWS, untuk mengubah lajur atau baris menjadi tatasusunan 2D dalam masa yang singkat.

Fungsi WRACOLS Excel

Fungsi WRACOLS dalam Excel mengubah baris atau lajur nilai menjadi tatasusunan dua dimensi berdasarkan bilangan nilai yang ditentukan setiap baris.

Sintaks mempunyai argumen berikut:

WRAPCOLS(vektor, wrap_count, [pad_with])

Di mana:

  • vektor (diperlukan) - tatasusunan atau julat satu dimensi sumber.
  • wrap_count (diperlukan) - bilangan maksimum nilai setiap lajur.
  • pad_with (pilihan) - nilai untuk dipadatkan dengan lajur terakhir jika terdapat item yang tidak mencukupi untuk mengisinya. Jika diabaikan, nilai yang tiada akan dilapisi dengan #N/A (lalai).

Contohnya, untuk menukar julat B5:B24 kepada tatasusunan 2 dimensi dengan 5 nilai setiap lajur, formula ialah:

=WRAPROWS(B5:B24, 5)

Anda masukkanhujah vektor bukan tatasusunan satu dimensi.

#NUM! ralat

Ralat #NUM berlaku jika nilai wrap_count ialah 0 atau nombor negatif.

#SPILL! ralat

Selalunya, ralat #SPILL menunjukkan bahawa tidak ada sel kosong yang mencukupi untuk menumpahkan hasilnya. Kosongkan sel jiran, dan ia akan hilang. Jika ralat berterusan, lihat maksud #SPILL dalam Excel dan cara membetulkannya.

Begitulah cara menggunakan fungsi WRACOLS dan WRAPROWS untuk menukar julat satu dimensi kepada tatasusunan dua dimensi dalam Excel. Saya mengucapkan terima kasih kerana membaca dan berharap dapat berjumpa anda di blog kami minggu hadapan!

Berlatih buku kerja untuk muat turun

fungsi WRACOLS dan WRAPROWS - contoh (fail.xlsx)

formula dalam mana-mana sel tunggal dan ia secara automatik tumpah ke dalam seberapa banyak sel yang diperlukan. Dalam output WRACOLS, nilai disusun secara menegak, dari atas ke bawah, berdasarkan nilai wrap_count. Selepas kiraan dicapai, lajur baharu dimulakan.

Fungsi Excel WRAPROWS

Fungsi WRAPROWS dalam Excel menukar baris atau lajur nilai kepada tatasusunan dua dimensi berdasarkan bilangan nilai setiap baris yang anda tentukan.

Sintaks adalah seperti berikut:

WRAPROWS(vektor, wrap_count, [pad_with])

Di mana:

  • vektor (diperlukan) - sumber satu dimensi tatasusunan atau julat.
  • wrap_count (diperlukan) - bilangan maksimum nilai setiap baris.
  • pad_with (pilihan) - nilai pada pad dengan baris terakhir jika terdapat item yang tidak mencukupi untuk mengisinya. Lalai ialah #N/A.

Contohnya, untuk mengubah julat B5:B24 menjadi tatasusunan 2D yang mempunyai 5 nilai dalam setiap baris, formulanya ialah:

=WRAPROWS(B5:B24, 5)

Anda memasukkan formula dalam sel kiri atas julat tumpahan, dan ia mengisi semua sel lain secara automatik. Fungsi WRAPROWS menyusun nilai secara mendatar, dari kiri ke kanan, berdasarkan nilai wrap_count . Selepas mencapai kiraan, ia memulakan baris baharu.

Ketersediaan WRACOLS dan WRAPROWS

Kedua-dua fungsi hanya tersedia dalam Excel untuk Microsoft 365 (Windows dan Mac) dan Excel untuk web.

Sebelum iniversi, anda boleh menggunakan formula tradisional yang lebih kompleks untuk melakukan transformasi lajur ke tatasusunan dan baris ke tatasusunan. Selanjutnya dalam tutorial ini, kami akan membincangkan penyelesaian alternatif secara terperinci.

Petua. Untuk melakukan operasi terbalik, iaitu menukar tatasusunan 2D kepada satu lajur atau baris, gunakan fungsi TOCOL atau TOROW, masing-masing.

Cara menukar lajur / baris kepada julat dalam Excel - contoh

Memandangkan anda sudah memahami penggunaan asas, mari kita lihat dengan lebih dekat beberapa kes khusus.

Tetapkan bilangan maksimum nilai bagi setiap lajur atau baris

Bergantung pada struktur data asal anda, anda mungkin mendapati ia sesuai untuk disusun semula menjadi lajur (WRAPCOLS) atau baris (WRAPROWS). Mana-mana fungsi yang anda gunakan, argumen wrap_count yang menentukan bilangan nilai maksimum dalam setiap lajur/baris.

Contohnya, untuk mengubah julat B4:B23 menjadi tatasusunan 2D, supaya setiap lajur mempunyai maksimum 10 nilai, gunakan formula ini:

=WRAPCOLS(B4:B23, 10)

Untuk menyusun semula julat yang sama mengikut baris, supaya setiap baris mempunyai maksimum 4 nilai, formula ialah :

=WRAPROWS(B4:B23, 4)

Imej di bawah menunjukkan rupa ini:

Pad tiada nilai dalam tatasusunan yang terhasil

Sekiranya terdapat nilai yang tidak mencukupi untuk diisi semua lajur/baris julat yang terhasil, WRAPROWS dan WRAPCOLS akan mengembalikan ralat #N/A untuk mengekalkan struktur tatasusunan 2D.

Untuk menukar lalaitingkah laku, anda boleh memberikan nilai tersuai untuk argumen pad_with pilihan.

Contohnya, untuk mengubah julat B4:B21 menjadi tatasusunan 2D dengan lebar maksimum 5 nilai dan pad yang terakhir baris dengan sempang jika data tidak mencukupi untuk mengisinya, gunakan formula ini:

=WRAPROWS(B4:B21, 5, "-")

Untuk menggantikan nilai yang hilang dengan rentetan panjang sifar (kosong), formulanya ialah:

=WRAPROWS(B4:B21, 5, "")

Sila bandingkan keputusan dengan tingkah laku lalai (formula dalam D5) dengan pad_with ditinggalkan:

Gabungkan berbilang baris ke dalam julat 2D

Untuk menggabungkan beberapa baris berasingan ke dalam tatasusunan 2D tunggal, anda mula-mula menyusun baris secara mendatar menggunakan fungsi HSTACK, dan kemudian membalut nilai menggunakan WRAPROWS atau WRAPCOLS.

Contohnya, untuk menggabungkan nilai daripada 3 baris (B5:J5, B7:G7 dan B9:F9) dan balut ke dalam lajur, setiap satu mengandungi 10 nilai, formulanya ialah:

=WRAPCOLS(HSTACK(B5:J5, B7:G7, B9:F9), 10)

Untuk menggabungkan nilai daripada berbilang baris ke dalam Julat 2D di mana setiap baris mengandungi 5 nilai, formula mengambil bentuk ini:

=WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)

C gabungkan berbilang lajur ke dalam tatasusunan 2D

Untuk menggabungkan beberapa lajur ke dalam julat 2D, mula-mula anda tindanannya secara menegak menggunakan fungsi VSTACK, dan kemudian balut nilai ke dalam baris (WRAPROWS) atau lajur (WRAPCOLS).

Contohnya, untuk menggabungkan nilai daripada 3 lajur (B5:J5, B7:G7 dan B9:F9) ke dalam julat 2D di mana setiap lajur mengandungi 10 nilai, formulanya ialah:

=WRAPCOLS(HSTACK(B5:J5, B7:G7, B9:F9), 10)

Untuk menggabungkanlajur yang sama ke dalam julat 2D di mana setiap baris mengandungi 5 nilai, gunakan formula ini:

=WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)

Balut dan isikan tatasusunan

Dalam situasi apabila julat sumber mempunyai nilai dalam susunan rawak semasa anda ingin output diisih, teruskan dengan cara ini:

  1. Isih tatasusunan awal seperti yang anda mahu menggunakan fungsi SORT.
  2. Bekalkan tatasusunan yang diisih kepada WRACOLS atau WRAPROWS.

Contohnya, untuk membalut julat B4:B23 ke dalam baris, 4 nilai dalam setiap satu dan mengisih julat yang terhasil daripada A hingga Z, bina formula seperti ini:

=WRAPROWS(SORT(B4:B23), 4)

Untuk membungkus julat yang sama ke dalam lajur, 10 nilai dalam setiap satu dan mengisih output mengikut abjad, formulanya ialah:

=WRAPCOLS(SORT(B4:B23), 10)

Hasilnya kelihatan seperti berikut :

Petua. Untuk menyusun nilai dalam tatasusunan yang terhasil dalam tertib menurun , tetapkan argumen ketiga ( urutan_urutan ) fungsi SORT kepada -1.

Alternatif WRACOLS untuk Excel 365 - 2010

Dalam versi Excel yang lebih lama yang fungsi WRACOLS tidak disokong, anda boleh membina formula anda sendiri untuk membalut nilai daripada tatasusunan satu dimensi ke dalam lajur. Ini boleh dilakukan dengan menggunakan 5 fungsi berbeza bersama-sama.

WRACOLS alternatif untuk menukar baris kepada julat 2D:

IFERROR(IF(ROW(A1)> n , "" , INDEX( julat_baris , , ROW(A1) + (COLUMN(A1)-1)* n )), "")

WRACOLS alternatif untuk menukar lajur kepada 2D julat:

IFERROR(IF(ROW(A1)> n ,"", INDEX( julat_lajur , ROW(A1) + (COLUMN(A1)-1)* n )), "")

Di mana n ialah bilangan maksimum nilai bagi setiap lajur.

Dalam imej di bawah, kami menggunakan formula berikut untuk menukar julat satu baris (D4:J4) kepada tatasusunan tiga baris.

=IFERROR(IF(ROW(A1)>3, "", INDEX($D$4:$J$4, , ROW(A1) + (COLUMN(A1)-1)*3)), "")

Dan formula ini menukar julat satu lajur (B4:B20) kepada tatasusunan lima baris:

=IFERROR(IF(ROW(A1)>5, "", INDEX($B$4:$B$20, ROW(A1) + (COLUMN(A1)-1)*5)), "")

Penyelesaian di atas meniru formula WRACOLS analog dan menghasilkan keputusan yang sama:

=WRAPCOLS(D4:J4, 3, "")

dan

=WRAPCOLS(B4:B20, 5, "")

Sila ambil perhatian bahawa tidak seperti fungsi WRACOLS tatasusunan dinamik, formula tradisional mengikut pendekatan satu formula-satu sel. Jadi, formula pertama kami dimasukkan dalam D8 dan menyalin 3 baris ke bawah dan 3 lajur ke kanan. Formula kedua dimasukkan dalam D14 dan menyalin 5 baris ke bawah dan 4 lajur ke kanan.

Cara formula ini berfungsi

Di tengah-tengah kedua-dua formula, kami menggunakan fungsi INDEX yang mengembalikan nilai daripada tatasusunan yang dibekalkan berdasarkan nombor baris dan lajur:

INDEX(array, row_num, [column_num])

Semasa kita berurusan dengan tatasusunan satu baris, kita boleh meninggalkan argumen row_num , jadi ia lalai kepada 1. Caranya ialah untuk mempunyai col_num dikira secara automatik untuk setiap sel tempat formula disalin. Dan berikut ialah cara kami melakukannya:

ROW(A1)+(COLUMN(A1)-1)*3)

Fungsi ROW mengembalikan nombor baris rujukan A1, iaitu 1.

Fungsi COLUMN mengembalikan nombor lajur bagirujukan A1, yang juga 1. Menolak 1 menjadikannya sifar. Dan mendarab 0 dengan 3 memberikan 0.

Kemudian, anda menambah 1 dikembalikan oleh ROW dan 0 dikembalikan oleh COLUMN dan mendapat 1 sebagai hasilnya.

Dengan cara ini, formula INDEX di bahagian atas -sel kiri julat destinasi (D8) mengalami transformasi ini:

INDEX($D$4:$J$4, ,ROW(A1) + (COLUMN(A1)-1)*3))

bertukar kepada

INDEX($D$4:$J$4, ,1)

dan mengembalikan nilai dari lajur pertama daripada tatasusunan yang ditentukan, iaitu "Epal" dalam D4.

Apabila formula disalin ke sel D9, rujukan sel relatif berubah berdasarkan kedudukan relatif baris dan lajur manakala rujukan julat mutlak kekal tidak berubah:

INDEX($D$4:$J$4,, ROW(A2)+(COLUMN(A2)-1)*3))

bertukar menjadi:

INDEX($D$4:$J$4,, 2+(1-1)*3))

menjadi:

INDEX($D$4:$J$4,, 2))

dan mengembalikan nilai daripada Lajur ke-2 tatasusunan yang ditentukan, iaitu "Aprikot" dalam E4.

Fungsi IF menyemak nombor baris dan jika ia lebih besar daripada bilangan baris yang anda tentukan (3 dalam kes kami) mengembalikan rentetan kosong ( ""), jika tidak, hasil daripada fungsi INDEX:

IF(ROW(A1)>3, "", INDEX(…))

Akhirnya, fungsi IFERROR membetulkan #REF! ralat yang berlaku apabila formula disalin ke lebih banyak sel daripada yang benar-benar diperlukan.

Formula kedua yang menukar lajur kepada julat 2D berfungsi dengan logik yang sama. Perbezaannya ialah anda menggunakan kombinasi ROW + COLUMN untuk mengetahui argumen row_num untuk INDEX. Parameter col_num tidak diperlukan dalam kes ini kerana ada sahajasatu lajur dalam tatasusunan sumber.

Alternatif WRAPROWS untuk Excel 365 - 2010

Untuk membalut nilai daripada tatasusunan satu dimensi ke dalam baris dalam Excel 2019 dan lebih awal, anda boleh menggunakan alternatif berikut kepada fungsi WRAPROWS.

Ubah satu baris kepada julat 2D:

IFERROR(IF(COLUMN(A1)> n , "", INDEX( julat_baris , , COLUMN(A1)+(ROW(A1)-1)* n )), "")

Tukar lajur kepada julat 2D:

IFERROR(IF( COLUMN(A1)> n , "", INDEX( lajur_julat , COLUMN(A1)+(ROW(A1)-1)* n )) , "")

Di mana n ialah bilangan maksimum nilai setiap baris.

Dalam set data sampel kami, kami menggunakan formula berikut untuk menukar julat satu baris (D4 :J4) ke dalam julat tiga lajur. Formula mendarat dalam sel D8, dan kemudian disalin merentas 3 lajur dan 3 baris.

=IFERROR(IF(COLUMN(A1)>3, "", INDEX($D$4:$J$4, , COLUMN(A1)+(ROW(A1)-1)*3)), "")

Untuk membentuk semula julat 1 lajur (B4:B20) menjadi julat 5 lajur, masukkan formula di bawah dalam D14 dan seretnya merentasi 5 lajur dan 4 baris.

=IFERROR(IF(COLUMN(A1)>5, "", INDEX($B$4:$B$20, COLUMN(A1)+(ROW(A1)-1)*5)), "")

Dalam Excel 365, hasil yang sama boleh dicapai dengan formula WRACOLS yang setara:

=WRAPROWS(D4:J4, 3, "")

dan

=WRAPROWS(B4:B20, 5, "")

Cara formula ini berfungsi

Pada asasnya, formula ini berfungsi seperti dalam contoh sebelumnya. Perbezaannya adalah dalam cara anda menentukan koordinat row_num dan col_num untuk fungsi INDEX:

INDEX($D$4:$J$4,, COLUMN(A1)+(ROW(A1)-1)*3))

Untuk mendapatkan nombor lajur untuk bahagian atas kiri dalam julat destinasi (D8), anda gunakan iniungkapan:

COLUMN(A1)+(ROW(A1)-1)*3)

yang berubah kepada:

1+(1-1)*3

dan memberikan 1.

Akibatnya, formula di bawah mengembalikan nilai daripada lajur pertama tatasusunan yang ditentukan, iaitu "Epal":

INDEX($D$4:$J$4,, 1)

Setakat ini, hasilnya adalah sama seperti dalam sebelumnya. contoh. Tetapi mari lihat apa yang berlaku dalam sel lain…

Dalam sel D9, rujukan sel relatif berubah seperti berikut:

INDEX($D$4:$J$4,, COLUMN(A2)+(ROW(A2)-1)*3))

Jadi, formula berubah menjadi:

INDEX($D$4:$J$4,, 1+(2-1)*3))

menjadi:

INDEX($D$4:$J$4,, 4))

dan mengembalikan nilai daripada lajur ke-4 tatasusunan yang ditentukan, iaitu "Cheri" dalam G4.

Fungsi IF menyemak nombor lajur dan jika ia lebih besar daripada bilangan lajur yang anda tentukan, mengembalikan rentetan kosong (""), jika tidak, hasil fungsi INDEX:

IF(COLUMN(A1)>3, "", INDEX(…))

Sebagai sentuhan akhir, IFERROR menghalang #REF! ralat daripada muncul dalam sel "tambahan" jika anda menyalin formula ke lebih banyak sel daripada yang sebenarnya diperlukan.

Fungsi WRAPROWS atau WRAPROWS tidak berfungsi

Jika fungsi "balut" tidak tersedia dalam Excel anda atau mengakibatkan ralat, kemungkinan besar ia adalah salah satu sebab di bawah.

#NAME? ralat

Dalam Excel 365, #NAME? ralat mungkin berlaku kerana anda salah mengeja nama fungsi. Dalam versi lain, ia menunjukkan bahawa fungsi tidak disokong. Sebagai penyelesaian, anda boleh menggunakan alternatif WRACOLS atau alternatif WRAPROWS.

#VALUE! ralat

Ralat #VALUE berlaku jika

Michael Brown ialah peminat teknologi yang berdedikasi dengan semangat untuk memudahkan proses kompleks menggunakan alat perisian. Dengan lebih sedekad pengalaman dalam industri teknologi, beliau telah mengasah kemahirannya dalam Microsoft Excel dan Outlook, serta Helaian Google dan Dokumen. Blog Michael berdedikasi untuk berkongsi pengetahuan dan kepakarannya dengan orang lain, menyediakan petua dan tutorial yang mudah diikuti untuk meningkatkan produktiviti dan kecekapan. Sama ada anda seorang profesional berpengalaman atau pemula, blog Michael menawarkan pandangan berharga dan nasihat praktikal untuk memanfaatkan sepenuhnya alatan perisian penting ini.