Obsah
Jednoduchý spôsob transformácie poľa alebo rozsahu na stĺpec pomocou funkcie TOCOL.
Možnosť transponovať údaje zo stĺpcov do riadkov a opačne je v programe Excel už dlhší čas. Previesť rozsah buniek do jedného stĺpca však bola zložitá úloha. Teraz sa to konečne mení. Microsoft predstavil novú funkciu s názvom TOCOL, ktorá dokáže v okamihu vykonať transformáciu z poľa do stĺpca. Nižšie uvádzame zoznam úloh, ktoré táto nová funkcia dokáže jednoducho vyriešiť.
Funkcia Excel TOCOL
Funkcia TOCOL v programe Excel konvertuje pole alebo rozsah buniek do jedného stĺpca.
Funkcia prijíma tri argumenty, ale vyžaduje sa len prvý z nich.
TOCOL(pole, [ignorovať], [scan_by_column])Kde:
Pole (povinné) - pole alebo rozsah, ktorý sa má transformovať na stĺpec.
Ignorovať (nepovinné) - určuje, či sa majú ignorovať prázdne miesta a/alebo chyby. Môže to byť jedna z týchto hodnôt:
- 0 alebo vynechať (predvolené) - ponechať všetky hodnoty
- 1 - ignorujte prázdne miesta
- 2 - ignorovanie chýb
- 3 - ignorujte prázdne miesta a chyby
Scan_by_column (nepovinné) - určuje, či sa má pole skenovať horizontálne alebo vertikálne:
- FALSE alebo vynechané (predvolené) - prehľadáva pole po riadkoch zľava doprava.
- TRUE - skenovanie poľa podľa stĺpcov zhora nadol.
Tipy:
- Ak chcete previesť pole na jeden riadok, použite funkciu TOROW.
- Ak chcete vykonať opačnú transformáciu zo stĺpca na pole, použite buď funkciu WRAPCOLS na zabalenie podľa stĺpca, alebo funkciu WRAPROWS na zabalenie podľa riadku.
- Ak chcete transponovať pole z vodorovného na zvislé alebo naopak, t. j. zmeniť riadky na stĺpce, použite funkciu TRANSPOSE.
Dostupnosť TOCOL
TOCOL je nová funkcia, ktorá je podporovaná v aplikácii Excel pre Microsoft 365 (pre Windows a Mac) a Excel pre web.
Základný vzorec TOCOL na transformáciu rozsahu na stĺpec
Vzorec TOCOL vo svojej najjednoduchšej podobe vyžaduje len jeden argument - pole Napríklad na umiestnenie dvojrozmerného poľa pozostávajúceho z 3 stĺpcov a 4 riadkov do jedného stĺpca sa použije vzorec:
=TOCOL(A2:C5)
Vzorec sa zadá len do jednej bunky (v tomto príklade E2) a automaticky sa preleje do buniek pod ňou. Z hľadiska Excelu sa výsledok nazýva rozsah prelievania.
Ako tento vzorec funguje:
Technicky sa rozsah A2:C5 najprv prevedie na dvojrozmerné pole. Všimnite si, prosím, stredníkom oddelené riadky a čiarkou oddelené stĺpce:
{"Apple","Banana","Cherry";1,0,3;4,#N/A,6;7,8,9}
Funkcia TOCOL prehľadáva pole zľava doprava a transformuje ho na jednorozmerné vertikálne pole:
{"Apple";"Banana";"Cherry";1;0;3;4;#N/A;6;7;8;9}
Výsledok sa umiestni do bunky E2, z ktorej sa preleje do nasledujúcich buniek.
Ako používať funkciu TOCOL v programe Excel - príklady vzorcov
Aby ste lepšie pochopili možnosti funkcie TOCOL a úlohy, ktoré dokáže pokryť, pozrime sa na niekoľko príkladov vzorcov.
Transformácia poľa na stĺpec s ignorovaním prázdnych miest a chýb
Ako ste si mohli všimnúť v predchádzajúcom príklade, predvolený vzorec TOCOL zachováva všetky hodnoty zo zdrojového poľa vrátane prázdnych buniek a chýb.
Vo výslednom poli sú prázdne bunky reprezentované nulami, čo môže byť dosť mätúce, najmä ak má pôvodné pole hodnoty 0. Riešením je vynechanie prázdnych políčok Na tento účel nastavte druhý argument na hodnotu 1:
=TOCOL(A2:C5, 1)
Na ignorovať chyby , nastavte druhý argument na hodnotu 2:
=TOCOL(A2:C5, 2)
Vylúčenie oboch, prázdne miesta a chyby , použite 3 pre ignorovať argument:
=TOCOL(A2:C5, 3)
Skenovanie poľa horizontálne alebo vertikálne
S predvoleným nastavením scan_by_column (FALSE alebo vynechaný), funkcia TOCOL prehľadáva pole horizontálne podľa riadkov. Ak chcete spracovať hodnoty podľa stĺpcov, nastavte tento argument na TRUE alebo 1. Napríklad:
=TOCOL(A2:C5, ,TRUE)
Všimnite si, že v oboch prípadoch majú vrátené polia rovnakú veľkosť, ale hodnoty sú usporiadané v inom poradí.
Spojenie viacerých rozsahov do jedného stĺpca
Ak máte do činenia s niekoľkými nesúvislými rozsahmi, potom môžete najprv vertikálne spojiť rozsahy do jedného poľa pomocou funkcie VSTACK a potom pomocou funkcie TOCOL transformovať spojené pole na stĺpec.
Za predpokladu, že prvý rozsah je A2:C4 a druhý rozsah je A8:C9, vzorec má tento tvar:
=TOCOL(VSTACK(A2:C4, A8:C9))
Tento vzorec demonštruje predvolené správanie - číta kombinované polia horizontálne zľava doprava, ako je znázornené v stĺpci E na obrázku nižšie.
Ak chcete čítať hodnoty vertikálne zhora nadol, nastavte tretí argument TOCOL na TRUE:
=TOCOL(VSTACK(A2:C4, A8:C9), ,TRUE)
Dajte pozor na to, že v tomto prípade vzorec najprv vráti hodnoty zo stĺpca A oboch polí, potom zo stĺpca B a tak ďalej. Dôvodom je, že TOCOL prehľadáva jedno poskladané pole, nie pôvodné jednotlivé rozsahy.
Ak vaša obchodná logika vyžaduje ukladanie pôvodných rozsahov na seba horizontálne a nie vertikálne, použite funkciu HSTACK namiesto VSTACK.
Na pripojenie každého nasledujúceho poľa napravo od predchádzajúceho poľa a horizontálne čítanie kombinovaných polí sa použije vzorec:
=TOCOL(HSTACK(A2:C4, A8:C10))
Vzorec na pridanie každého nasledujúceho poľa napravo od predchádzajúceho poľa a vertikálne skenovanie zlúčených polí je nasledovný:
=TOCOL(HSTACK(A2:C4, A8:C10), ,TRUE)
Výpis jedinečných hodnôt z rozsahu viacerých stĺpcov
Funkcia Excel UNIQUE dokáže ľahko nájsť unikáty v jednom stĺpci alebo riadku, ako aj vrátiť unikátne riadky, ale nedokáže získať unikátne hodnoty z viacstĺpcového poľa. Riešením je použiť ju spolu s funkciou TOCOL.
Napríklad na získanie všetkých rôznych (odlišných) hodnôt z rozsahu A2:C7 sa použije vzorec:
=UNIQUE(TOCOL(A2:C7))
Okrem toho môžete vyššie uvedený vzorec zabaliť do funkcie SORT, aby ste vrátenú tabuľku usporiadali v abecednom poradí:
=SORT(UNIQUE(TOCOL(A2:C7))
Ako previesť rozsah na stĺpec v programe Excel 365 - 2010
Vo verziách programu Excel, v ktorých nie je podporovaná funkcia TOCOL, existuje niekoľko alternatívnych spôsobov transformácie rozsahu buniek na stĺpec. Tieto riešenia sú pomerne zložité, ale v každom prípade fungujú.
Čítanie rozsahu podľa riadkov:
INDEX( rozsah , KVOCIENT(RIADOK(A1)-1, STĹPCE( rozsah ))+1, MOD(RIADOK(A1)-1, STĹPCE( rozsah ))+1)Čítanie rozsahu podľa stĺpcov:
INDEX( rozsah , MOD(RIADOK(A1)-1, RIADKY( rozsah ))+1, KVOCIENT(RIADOK(A1)-1, RIADKY( rozsah ))+1)Pre náš vzorový súbor údajov sú vzorce nasledovné:
Skenovanie rozsahu horizontálne zľava doprava :
=INDEX($A$2:$C$5, KVOCIENT(RIADOK(A1)-1, STĹPCE($A$2:$C$5))+1, MOD(RIADOK(A1)-1, STĹPCE($A$2:$C$5))+1)
Tento vzorec je ekvivalentný funkcii TOCOL s 3. argumentom nastaveným na FALSE alebo vynechaným:
=TOCOL(A2:C5)
Skenovanie rozsahu vertikálne zhora nadol :
=INDEX($A$2:$C$5, MOD(RIADOK(A1)-1, RIADKY($A$2:$C$5))+1, KVOCIENT(RIADOK(A1)-1, RIADKY($A$2:$C$5))+1)
Tento vzorec je porovnateľný s funkciou TOCOL s tretím argumentom nastaveným na TRUE:
=TOCOL(A2:C5, ,TRUE)
Na rozdiel od TOCOL by sa alternatívne vzorce mali zadávať do každej bunky, v ktorej chcete, aby sa výsledky zobrazovali. V našom prípade sa vzorce dostanú do buniek E2 (podľa riadkov) a G2 (podľa stĺpcov) a potom sa skopírujú do riadku 13.
Ak sa vzorce skopírujú do väčšieho počtu riadkov, ako je potrebné, v bunkách "navyše" sa objaví chyba #REF! Aby ste tomu zabránili, môžete vzorce vložiť do funkcie IFERROR takto:
=IFERROR(INDEX($A$2:$C$5, KVOCIENT(RIADOK(A1)-1, STĹPCE($A$2:$C$5))+1, MOD(RIADOK(A1)-1, STĹPCE($A$2:$C$5))+1), "")
Všimnite si, že pre správne kopírovanie vzorcov sme rozsah uzamkli pomocou absolútnych odkazov na bunky ($A$2:$C$5). Namiesto toho môžete použiť pomenovaný rozsah.
Ako tieto vzorce fungujú
Nižšie uvádzame podrobný rozpis prvého vzorca, ktorý usporadúva bunky podľa riadkov:
=INDEX($A$2:$C$5, KVOCIENT(RIADOK(A1)-1, STĹPCE($A$2:$C$5))+1, MOD(RIADOK(A1)-1, STĹPCE($A$2:$C$5))+1)
Ide o použitie funkcie INDEX na vrátenie hodnoty určitej bunky na základe jej relatívneho čísla riadku a stĺpca v rozsahu.
Stránka číslo riadku sa vypočíta touto kombináciou:
KVOCIENT(RIADOK(A1)-1, STĹPCE($A$2:$C$5))+1
QUOTIENT vráti celočíselnú časť delenia.
Pre čitateľ , použijete ROW(A1)-1, ktorý vráti poradové číslo od 0 v E2 (prvá bunka, do ktorej bol vzorec zadaný) po 11 v E13 (posledná bunka, do ktorej bol vzorec zadaný).
Stránka menovateľ prinesie COLUMNS($A$2:$C$5)) je konštantná a rovná sa počtu stĺpcov vo vašom rozsahu (v našom prípade 3).
Ak teraz skontrolujete výsledok QUOTIENT pre prvé 3 bunky (E2:E4), zistíte, že sa rovná 0 (pretože celočíselná časť delenia je nulová). Pripočítaním 1 získate číslo riadku 1.
Pre ďalšie 3 bunky (E5:E5) vráti QUOTIENT číslo 1 a operácia +1 prinesie číslo riadku 2. A tak ďalej.
Inými slovami, táto časť vzorca vytvorí opakujúcu sa postupnosť čísel, napríklad 1,1,1,2,2,2,3,3,3,4,4,4,... Každé číslo sa opakuje toľkokrát, koľko je stĺpcov vo vašom rozsahu.
Výpočet číslo stĺpca , vytvoríte vhodnú postupnosť čísel pomocou funkcie MOD:
MOD(RIADOK(A1)-1, STĹPCE($A$2:$C$5))+1
Keďže v našom rozsahu sú 3 stĺpce (A2:C5), postupnosť musí byť 1,2,3,1,2,3,...
Funkcia MOD vracia zvyšok po delení.
V E2, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)
sa stáva
MOD(1-1, 3)+1)
a vráti 1.
V E3, MOD(ROW(A2)-1, COLUMNS($A$2:$C$5))+1)
sa stáva
MOD(2-1, 3)+1)
a vráti 2.
Po zadaní čísla riadku a stĺpca nemá INDEX žiadne problémy s načítaním požadovanej hodnoty.
V E2 INDEX($A$2:$C$5, 1, 1) vráti hodnotu z 1. riadku a 1. stĺpca odkazovaného rozsahu, t. j. z bunky A2.
V E3 INDEX($A$2:$C$5, 1, 2) vráti hodnotu z 1. riadku a 2. stĺpca, t. j. z bunky B2.
A tak ďalej.
Druhý vzorec, ktorý prehľadáva rozsah podľa stĺpcov, funguje podobne. Rozdiel je v tom, že na získanie čísla riadku používa MOD a na získanie čísla stĺpca QUOTIENT.
Nefunguje funkcia TOCOL
Ak funkcia TOCOL vyhodí chybu, je to s najväčšou pravdepodobnosťou jeden z týchto dôvodov:
TOCOL nie je vo vašom programe Excel podporovaný
Keď sa zobrazí chyba #NAME?, v prvom rade je potrebné skontrolovať správny pravopis názvu funkcie. Ak je názov správny, ale chyba pretrváva, funkcia nie je vo vašej verzii programu Excel k dispozícii. V takom prípade zvážte použitie alternatívy TOCOL.
Pole je príliš veľké
Chyba #NUM znamená, že pole sa nezmestí do stĺpca. Typickým prípadom je, keď sa odvolávate na celé stĺpce alebo riadky.
Nie je dostatok prázdnych buniek
Keď sa vyskytne chyba #SPILL, skontrolujte, či je v stĺpci, v ktorom je vzorec zadaný, dostatok prázdnych buniek na vyplnenie výsledkami. Ak sú bunky vizuálne prázdne, skontrolujte, či v nich nie sú medzery a iné netlačové znaky. Ďalšie informácie nájdete v časti Ako opraviť chybu #SPILL v programe Excel.
Takto môžete použiť funkciu TOCOL v programe Excel 365 a alternatívne riešenia v predchádzajúcich verziách na transformáciu dvojrozmerného poľa na jeden stĺpec. Ďakujem vám za prečítanie a dúfam, že sa uvidíme na našom blogu budúci týždeň!
Cvičný zošit
Funkcia Excel TOCOL - príklady vzorcov (.xlsx súbor)