Isi kandungan
Cara mudah untuk mengubah tatasusunan atau julat kepada lajur dengan fungsi TOCOL.
Keupayaan untuk menukar data daripada lajur kepada baris dan secara terbalik telah wujud dalam Excel agak lama. seketika. Tetapi menukar julat sel kepada satu lajur adalah tugas yang sukar untuk dipecahkan. Sekarang, itu akhirnya berubah. Microsoft telah memperkenalkan fungsi baharu, dipanggil TOCOL, yang boleh melakukan transformasi tatasusunan ke lajur dalam sekelip mata. Di bawah ialah senarai tugas yang fungsi baharu ini boleh selesaikan dengan mudah.
Fungsi TOCOL Excel
Fungsi TOCOL dalam Excel menukar tatasusunan atau julat sel kepada satu lajur.
Fungsi ini mengambil tiga argumen, tetapi hanya yang pertama diperlukan.
TOCOL(array, [ignore], [scan_by_column])Di mana:
Tatasusunan (diperlukan) - tatasusunan atau julat untuk berubah menjadi lajur.
Abaikan (pilihan) - mentakrifkan sama ada untuk mengabaikan kosong atau/dan ralat. Boleh menjadi salah satu daripada nilai ini:
- 0 atau ditinggalkan (lalai) - simpan semua nilai
- 1 - abaikan kosong
- 2 - abaikan ralat
- 3 - abaikan tempat kosong dan ralat
Scan_by_column (pilihan) - tentukan sama ada untuk mengimbas tatasusunan secara mendatar atau menegak:
- SALAH atau ditinggalkan (lalai) - imbas tatasusunan mengikut baris dari kiri ke kanan.
- BENAR - imbas tatasusunan mengikut lajur dari atas ke bawah.
Petua:
- Untuk menukar tatasusunan menjadi satu baris, gunakan TOROWfungsi.
- Untuk melakukan transformasi lajur-ke-tatasusunan yang bertentangan, gunakan sama ada fungsi WRACOLS untuk membalut mengikut lajur atau fungsi WRAPROWS untuk membalut mengikut baris.
- Untuk menukar tatasusunan daripada mendatar kepada menegak atau sebaliknya, iaitu tukar baris kepada lajur, gunakan fungsi TRANSPOSE.
ketersediaan TOCOL
TOCOL ialah fungsi baharu, yang disokong dalam Excel untuk Microsoft 365 (untuk Windows dan Mac) dan Excel untuk web.
Formula TOCOL asas untuk mengubah julat menjadi lajur
Formula TOCOL dalam bentuk termudah memerlukan hanya satu argumen - tatasusunan . Sebagai contoh, untuk meletakkan tatasusunan dua dimensi yang terdiri daripada 3 lajur dan 4 baris ke dalam satu lajur, formulanya ialah:
=TOCOL(A2:C5)
Formula dimasukkan hanya dalam satu sel (E2 dalam contoh ini) dan tumpah ke dalam sel di bawah secara automatik. Dari segi Excel, hasilnya dipanggil julat tumpahan.
Cara formula ini berfungsi:
Secara teknikal, julat A2:C5 mula-mula ditukar kepada tatasusunan dua dimensi. Sila perhatikan baris yang dipisahkan koma bertitik dan lajur dipisahkan koma:
{"Apple","Banana","Cherry";1,0,3;4,#N/A,6;7,8,9}
Fungsi TOCOL mengimbas tatasusunan dari kiri ke kanan dan mengubahnya menjadi tatasusunan menegak satu dimensi:
{"Apple";"Banana";"Cherry";1;0;3;4;#N/A;6;7;8;9}
Hasilnya diletakkan dalam sel E2, dari mana ia tumpah ke dalam sel di bawah.
Cara menggunakan fungsi TOCOL dalam Excel - contoh formula
Untuk mendapatkan lebih pemahaman tentangkemungkinan fungsi TOCOL dan tugas yang boleh ditanggungnya, mari kita lihat beberapa contoh formula.
Ubah tatasusunan kepada lajur mengabaikan tempat kosong dan ralat
Seperti yang mungkin anda perhatikan dalam contoh sebelumnya , formula TOCOL lalai menyimpan semua nilai daripada tatasusunan sumber, termasuk sel kosong dan ralat.
Dalam tatasusunan yang terhasil, sel kosong diwakili oleh sifar, yang mungkin agak mengelirukan, terutamanya jika tatasusunan asal mempunyai 0 nilai. Penyelesaiannya ialah langkau tempat kosong . Untuk ini, anda menetapkan argumen ke-2 kepada 1:
=TOCOL(A2:C5, 1)
Untuk mengabaikan ralat , tetapkan argumen ke-2 kepada 2:
=TOCOL(A2:C5, 2)
Untuk mengecualikan kedua-duanya, kosong dan ralat , gunakan 3 untuk hujah abaikan :
=TOCOL(A2:C5, 3)
Imbas tatasusunan secara mendatar atau menegak
Dengan argumen lalai scan_by_column (SALAH atau dihilangkan), fungsi TOCOL mengimbas tatasusunan secara mendatar mengikut baris. Untuk memproses nilai mengikut lajur, tetapkan argumen ini kepada TRUE atau 1. Contohnya:
=TOCOL(A2:C5, ,TRUE)
Perhatikan bahawa, dalam kedua-dua kes, tatasusunan yang dikembalikan adalah saiz yang sama, tetapi nilainya disusun dalam susunan yang berbeza.
Gabungkan berbilang julat ke dalam satu lajur
Jika anda berurusan dengan beberapa julat bukan bersebelahan, maka anda boleh menggabungkan julat secara menegak ke dalam satu tatasusunan dahulu dengan bantuan fungsi VSTACK dan kemudian gunakan TOCOL untuk mengubah tatasusunan gabungan menjadi lajur.
Dengan mengandaikan julat pertama ialah A2:C4 dan julat kedua ialah A8:C9, formula mengambil bentuk ini:
=TOCOL(VSTACK(A2:C4, A8:C9))
Formula ini menunjukkan tingkah laku lalai - membaca tatasusunan gabungan secara mendatar dari kiri ke kanan seperti yang ditunjukkan dalam lajur E dalam imej di bawah.
Untuk membaca nilai secara menegak dari atas ke bawah, anda menetapkan argumen ke-3 TOCOL kepada TRUE:
=TOCOL(VSTACK(A2:C4, A8:C9), ,TRUE)
Sila ambil perhatian bahawa, dalam kes ini, formula mula-mula mengembalikan nilai dari lajur A kedua-dua tatasusunan, kemudian dari lajur B, dan seterusnya. Sebabnya ialah TOCOL mengimbas tatasusunan bertindan tunggal, bukan julat individu asal.
Jika logik perniagaan anda memerlukan menyusun julat asal secara mendatar dan bukannya menegak, maka gunakan fungsi HSTACK dan bukannya VSTACK.
Untuk menambahkan setiap tatasusunan berikutnya di sebelah kanan tatasusunan sebelumnya dan baca gabungan tatasusunan secara mendatar, formulanya ialah:
=TOCOL(HSTACK(A2:C4, A8:C10))
Untuk menambah setiap tatasusunan berikutnya di sebelah kanan tatasusunan sebelumnya dan mengimbas tatasusunan gabungan secara menegak, formulanya ialah:
=TOCOL(HSTACK(A2:C4, A8:C10), ,TRUE)
Ekstrak nilai unik daripada julat berbilang lajur
Fungsi Excel UNIQUE boleh mencari unik dalam satu lajur atau baris dengan mudah serta mengembalikan baris unik, tetapi ia tidak boleh mengekstrak nilai unik daripada tatasusunan berbilang lajur. Penyelesaiannya ialah menggunakannya bersama-sama dengan fungsi TOCOL.
Contohnya, untuk mengekstrak semua nilai (berbeza) yang berbeza daripada julatA2:C7, formulanya ialah:
=UNIQUE(TOCOL(A2:C7))
Selain itu, anda boleh membungkus formula di atas dalam fungsi SORT untuk menyusun tatasusunan yang dikembalikan dalam susunan abjad:
=SORT(UNIQUE(TOCOL(A2:C7)))
Cara menukar julat kepada lajur dalam Excel 365 - 2010
Dalam versi Excel yang fungsi TOCOL tidak disokong, terdapat beberapa cara alternatif untuk mengubah julat sel menjadi lajur. Penyelesaian ini agak rumit, tetapi bagaimanapun berfungsi.
Untuk membaca julat mengikut baris:
INDEX( julat , QUOTIENT(ROW(A1)-1, COLUMNS( julat ))+1, MOD(ROW(A1)-1, COLUMNS( julat ))+1)Untuk membaca julat mengikut lajur:
INDEX( julat , MOD(ROW(A1)-1, ROWS( julat ))+1, QUOTIENT(ROW(A1)-1, ROWS( julat ))+1 )Untuk set data sampel kami, formula adalah seperti berikut:
Untuk mengimbas julat mendatar dari kiri ke kanan :
=INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)
Formula ini bersamaan dengan fungsi TOCOL dengan argumen ke-3 ditetapkan kepada FALSE atau ditinggalkan:
=TOCOL(A2:C5)
Untuk mengimbas julat menegak dari atas ke bawah :
=INDEX($A$2:$C$5, MOD(ROW(A1)-1, ROWS($A$2:$C$5))+1, QUOTIENT(ROW(A1)-1, ROWS($A$2:$C$5))+1)
Formula ini setanding dengan fungsi TOCOL dengan argumen ke-3 ditetapkan kepada BENAR:
=TOCOL(A2:C5, ,TRUE)
Tidak seperti TOCOL, formula alternatif harus dimasukkan dalam setiap sel di mana anda mahu keputusan dipaparkan. Dalam kes kami, formula pergi ke sel E2 (mengikut baris) dan G2 (mengikut lajur), dan kemudian disalin ke baris 13.
Jika formula disalin ke lebih banyak baris daripada yang diperlukan, a#REF! ralat akan muncul dalam sel "tambahan". Untuk mengelakkan perkara ini daripada berlaku, anda boleh menyusun formula dalam fungsi IFERROR seperti ini:
=IFERROR(INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1), "")
Perhatikan bahawa untuk menyalin formula dengan betul, kami mengunci julat menggunakan rujukan sel mutlak ($ A$2:$C$5). Sebaliknya, anda boleh menggunakan julat bernama.
Cara formula ini berfungsi
Di bawah ialah pecahan terperinci formula pertama yang menyusun sel mengikut baris:
=INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)
Ideanya ialah menggunakan fungsi INDEX untuk mengembalikan nilai sel tertentu berdasarkan nombor baris dan lajur relatifnya dalam julat.
nombor baris dikira oleh gabungan ini :
QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1
QUOTIENT mengembalikan bahagian integer pembahagian.
Untuk penumerator , anda menggunakan ROW(A1)-1, yang mengembalikan nombor siri daripada 0 dalam E2 (sel pertama tempat formula dimasukkan) hingga 11 dalam E13 (sel terakhir tempat formula dimasukkan).
penyebut dibawa oleh COLUMNS($A $2:$C$5)) adalah malar dan sama dengan bilangan lajur dalam julat anda (3 dalam kes kami).
Sekarang, jika anda menyemak hasil QUOTIENT untuk 3 sel pertama (E2:E4) , anda akan melihat bahawa ia adalah sama dengan 0 (kerana bahagian integer pembahagian ialah sifar). Menambah 1 memberikan nombor baris 1.
Untuk 3 sel seterusnya (E5:E5), QUOTIENT mengembalikan 1 dan operasi +1 menghantar nombor baris 2. Dan seterusnya.
Dalam erti kata lain, bahagian formula ini mencipta pengulanganturutan nombor seperti 1,1,1,2,2,2,3,3,3,4,4,4,… Setiap nombor berulang seberapa kerap terdapat lajur dalam julat anda.
Kepada hitung nombor lajur , anda membina urutan nombor yang sesuai menggunakan fungsi MOD:
MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1
Memandangkan terdapat 3 lajur dalam julat kami (A2:C5), jujukan mestilah 1,2,3,1,2,3,…
Fungsi MOD mengembalikan baki selepas pembahagian.
Dalam E2, MOD(ROW(A1)-1, COLUMNS ($A$2:$C$5))+1)
menjadi
MOD(1-1, 3)+1)
dan mengembalikan 1.
Dalam E3, MOD(ROW(A2)-1, COLUMNS($A$2:$C$5))+1)
menjadi
MOD(2-1, 3) +1)
dan mengembalikan 2.
Dengan nombor baris dan lajur ditetapkan, INDEX tidak menghadapi masalah untuk mengambil nilai yang diperlukan.
Dalam E2, INDEX($A$2 :$C$5, 1, 1) mengembalikan nilai daripada baris pertama dan lajur pertama julat yang dirujuk, iaitu dari sel A2.
Dalam E3, INDEX($A$2:$C$5, 1 , 2) mengembalikan nilai dari baris pertama dan lajur ke-2, iaitu dari sel B2.
Dan seterusnya.
Formula kedua yang mengimbas julat dengan c olumn, berfungsi dengan cara yang sama. Perbezaannya ialah ia menggunakan MOD untuk mendapatkan nombor baris dan QUOTIENT untuk mendapatkan nombor lajur.
Fungsi TOCOL tidak berfungsi
Jika fungsi TOCOL menimbulkan ralat, kemungkinan besar menjadi salah satu sebab berikut:
TOCOL tidak disokong dalam Excel anda
Apabila anda mendapat #NAME? ralat, ejaan nama fungsi yang betul adalah perkara pertamasemak. Jika nama itu betul tetapi ralat berterusan, fungsi itu tidak tersedia dalam versi Excel anda. Dalam kes ini, pertimbangkan untuk menggunakan alternatif TOCOL.
Array terlalu besar
Ralat #NUM menunjukkan bahawa tatasusunan tidak boleh dimuatkan ke dalam lajur. Kes biasa ialah apabila anda merujuk kepada keseluruhan lajur atau baris.
Tiada sel kosong yang mencukupi
Apabila ralat #SPILL berlaku, semak sama ada lajur tempat formula dimasukkan mempunyai sel kosong yang cukup untuk diisi dengan hasilnya. Jika sel kosong secara visual, pastikan tiada ruang dan aksara bukan cetakan lain di dalamnya. Untuk mendapatkan maklumat lanjut, lihat Cara untuk membetulkan ralat #SPILL dalam Excel.
Begitulah anda boleh menggunakan fungsi TOCOL dalam Excel 365 dan penyelesaian alternatif dalam versi terdahulu untuk mengubah tatasusunan 2 dimensi kepada satu lajur. Saya berterima kasih kerana membaca dan berharap dapat berjumpa anda di blog kami minggu hadapan!
Buku kerja latihan
Fungsi Excel TOCOL - contoh formula (fail.xlsx)