Obsah
Rýchly spôsob, ako premeniť rozsah buniek na jeden riadok pomocou TOROW funkcie.
Microsoft Excel 365 predstavil niekoľko nových funkcií na vykonávanie rôznych manipulácií s poliami. Pomocou funkcie TOROW môžete v okamihu vykonávať transformácie z rozsahu na riadok. Tu je zoznam úloh, ktoré táto nová funkcia dokáže vykonať:
Funkcia Excel TOROW
Funkcia TOROW v programe Excel sa používa na prevod poľa alebo rozsahu buniek do jedného riadku.
Funkcia prijíma celkom tri argumenty, z ktorých je potrebný len prvý.
TOROW(pole, [ignorovať], [scan_by_column])Kde:
Pole (povinné) - pole alebo rozsah, ktorý sa má transformovať na jeden riadok.
Ignorovať (nepovinné) - určuje, či sa majú ignorovať prázdne miesta a/alebo chyby. Môže nadobúdať jednu 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é) - definuje spôsob skenovania poľa:
- FALSE alebo vynechané (predvolené) - skenovanie poľa horizontálne po riadkoch.
- TRUE - skenovanie poľa vertikálne podľa stĺpcov.
Tipy:
- Ak chcete transformovať pole na jeden stĺpec, použite funkciu TOCOL.
- Ak chcete vykonať opačnú transformáciu z riadku na pole, použite buď funkciu WRAPCOLS na zabalenie do stĺpcov, alebo funkciu WRAPROWS na zabalenie poľa do riadkov.
- Ak chcete zmeniť riadky na stĺpce, použite funkciu TRANSPOSE.
Dostupnosť TOROW
TOROW je nová funkcia, ktorá je podporovaná len v aplikácii Excel pre Microsoft 365 (pre Windows a Mac) a v aplikácii Excel pre web.
Základný vzorec TOROW v programe Excel
Ak chcete vykonať jednoduchú transformáciu z rozsahu na riadok, použite vzorec TOROW v jeho základnej forme. Na tento účel musíte definovať len prvý argument ( pole ).
Napríklad na premenu dvojrozmerného poľa pozostávajúceho z 3 stĺpcov a 3 riadkov na jeden riadok sa použije vzorec:
=TOROW(A3:C6)
Vzorec zadáte len do jednej bunky (v našom prípade A10) a automaticky sa rozleje do toľkých buniek, koľko je potrebné na uloženie všetkých výsledkov. V terminológii Excelu sa výstupný rozsah ohraničený tenkým modrým okrajom nazýva rozletový rozsah.
Ako tento vzorec funguje:
Najprv sa dodaný rozsah buniek transformuje na dvojrozmerné pole. Všimnite si stĺpce oddelené čiarkami a riadky oddelené bodkočiarkami:
{"Apple","Banana","Cherry";1,2,3;4,5,6;7,8,9}
Potom funkcia TOROW prečíta pole zľava doprava a prevedie ho na jednorozmerné horizontálne pole:
{"Apple","Banana","Cherry",1,2,3,4,5,6,7,8,9}
Výsledok sa dostane do bunky A10, z ktorej sa preleje do susednej bunky vpravo.
Transformácia rozsahu na riadok s ignorovaním prázdnych miest a chýb
Funkcia TOROW v predvolenom nastavení zachováva všetky hodnoty zo zdrojového poľa vrátane prázdnych buniek a chýb. Vo výstupe sa namiesto prázdnych buniek zobrazujú nulové hodnoty, čo môže byť dosť mätúce.
Na vylúčenie prázdnych políčok , nastavte ignorovať na 1:
=TOROW(A3:C5, 1)
Na ignorovať chyby , nastavte ignorovať argument na 2:
=TOROW(A3:C5, 2)
Vynechanie oboch, prázdne miesta a chyby , použite 3 pre ignorovať argument:
=TOROW(A3:C5, 3)
Na nasledujúcom obrázku sú znázornené všetky tri scenáre v akcii:
Čítanie poľa horizontálne alebo vertikálne
Pri predvolenom správaní funkcia TOROW spracúva pole horizontálne zľava doprava. Ak chcete prehľadávať hodnoty podľa stĺpcov zhora nadol, nastavte 3. argument ( scan_by_column ) na TRUE alebo 1.
Napríklad na načítanie zdrojového rozsahu podľa riadkov je vzorec v E3 nasledovný:
=TOROW(A3:C5)
Ak chcete prehľadávať rozsah podľa stĺpcov, vzorec v E8 je:
=TOROW(A3:C5, ,TRUE)
V oboch prípadoch majú výsledné polia rovnakú veľkosť, ale hodnoty sú usporiadané v inom poradí.
Zlúčenie viacerých rozsahov do jedného riadku
Ak chcete spojiť niekoľko nesúvislých rozsahov do jedného riadku, najprv ich pomocou funkcie HSTACK alebo VSTACK poskladajte horizontálne alebo vertikálne do jedného poľa a potom použite funkciu TOROW na prevod spojeného poľa na riadok.
V závislosti od vašej obchodnej logiky vykoná úlohu jeden z nasledujúcich vzorcov.
Vodorovné stohovanie polí a konverzia podľa riadkov
S prvým rozsahom v A3:C4 a druhým rozsahom v A8:C9 nasledujúci vzorec poskladá oba rozsahy horizontálne do jedného poľa a potom ho transformuje na riadok čítajúci hodnoty zľava doprava. Výsledok je na obrázku nižšie v poli E3.
=TOROW(HSTACK(A3:C4, A8:C9))
Vodorovné stohovanie polí a konverzia podľa stĺpcov
Ak chcete čítať stohované pole vertikálne zhora nadol, nastavte 3. argument príkazu TOROW na hodnotu TRUE, ako je znázornené na obrázku E5 nižšie:
=TOROW(HSTACK(A3:C4, A8:C9), ,TRUE)
Vertikálne stohovanie polí a konverzia podľa riadkov
Ak chcete pripojiť každé nasledujúce pole na koniec predchádzajúceho poľa a čítať kombinované pole horizontálne, vzorec v E12 je:
=TOROW(VSTACK(A3:C4, A8:C9))
Vertikálne stohovanie polí a konverzia podľa stĺpcov
Vzorec na pridanie každého nasledujúceho poľa na spodok predchádzajúceho poľa a vertikálne skenovanie spojeného poľa je:
=TOROW(VSTACK(A3:C4, A8:C9), ,TRUE)
Pre lepšie pochopenie logiky si všimnite rôzne poradie hodnôt vo výsledných poliach:
Výpis jedinečných hodnôt z rozsahu do riadku
Od aplikácie Microsoft Excel 2016 máme k dispozícii úžasnú funkciu s názvom UNIQUE, ktorá dokáže jednoducho získať jedinečné hodnoty z jedného stĺpca alebo riadku. Nedokáže však spracovať polia s viacerými stĺpcami. Ak chcete toto obmedzenie prekonať, použite funkcie UNIQUE a TOROW spoločne.
Napríklad na extrakciu všetkých rôznych (odlišných) hodnôt z rozsahu A2:C7 a umiestnenie výsledkov do jedného riadku je vzorec:
=UNIQUE(TOROW(A2:C7), TRUE)
Keďže TOROW vracia jednorozmerné horizontálne pole, nastavíme 2. ( by_col ) argumentu UNIQUE na TRUE, aby sa stĺpce navzájom porovnali.
V prípade, že chcete mať výsledky usporiadané v abecednom poradí, zabaľte vyššie uvedený vzorec do funkcie SORT:
=SORT(UNIQUE(TOROW(A2:C7), TRUE), , ,TRUE )
Rovnako ako v prípade UNIQUE by_col argument SORT je tiež nastavený na TRUE.
TOROW alternatíva pre Excel 365 - 2010
Vo verziách programu Excel, v ktorých nie je k dispozícii funkcia TOROW, môžete rozsah transformovať na jeden riadok pomocou kombinácie niekoľkých rôznych funkcií, ktoré fungujú v starších verziách. Tieto riešenia sú zložitejšie, ale fungujú.
Ak chcete skenovať rozsah horizontálne, všeobecný vzorec je:
INDEX( rozsah , KVOCIENT(STĹPEC (A1)-1, STĹPCE( rozsah ))+1, MOD(STĹPEC(A1)-1, STĹPCE( rozsah ))+1)Ak chcete skenovať rozsah vertikálne, všeobecný vzorec je:
INDEX( rozsah , MOD(STĹPEC(A1)-1, STĹPCE( rozsah ))+1, KVOCIENT(STĹPEC (A1)-1, STĹPCE( rozsah ))+1)Pre náš vzorový súbor údajov v A3:C5 majú vzorce tento tvar:
Prehľadávanie rozsahu podľa riadkov:
=INDEX($A$3:$C$5, KVOCIENT(STĹPEC(A1)-1, STĹPCE($A$3:$C$5))+1, MOD(STĹPEC(A1)-1, STĹPCE($A$3:$C$5))+1)
Tento vzorec je alternatívou funkcie TOROW s 3. argumentom nastaveným na FALSE alebo vynechaným:
=TOROW(A3:C5)
Prehľadávanie rozsahu podľa stĺpcov:
=INDEX($A$3:$C$5, MOD(STĹPEC(A1)-1, STĹPCE($A$3:$C$5))+1, KVOCIENT(STĹPEC(A1)-1, STĹPCE($A$3:$C$5))+1)
Tento vzorec je ekvivalentný funkcii TOROW s tretím argumentom nastaveným na TRUE:
=TOROW(A3:C5, ,TRUE)
Upozorňujeme, že na rozdiel od funkcie dynamického poľa TOROW by sa tieto tradičné vzorce mali zadávať do každej bunky, v ktorej chcete, aby sa výsledky zobrazovali. V našom prípade prvý vzorec (podľa riadku) patrí do E3 a je skopírovaný cez M3. Druhý vzorec (podľa stĺpca) pristane v E8 a je pretiahnutý cez M8.
Aby sa vzorce správne kopírovali, uzamkneme rozsah pomocou absolútnych odkazov ($A$3:$C$5). Postačí aj pomenovaný rozsah.
Ak ste skopírovali vzorce do väčšieho počtu buniek, ako bolo potrebné, v "extra" bunkách sa objaví chyba #REF! Ak to chcete opraviť, zabaľte vzorec do funkcie IFERROR takto:
=IFERROR(INDEX($A$3:$C$5, KVOCIENT(STĹPEC(A1)-1, STĹPCE($A$3:$C$5))+1, MOD(STĹPEC(A1)-1, STĹPCE($A$3:$C$5))+1), "")
Ako tieto vzorce fungujú
Nižšie je uvedený podrobný rozpis prvého vzorca, ktorý zoraďuje hodnoty podľa riadkov:
=INDEX($A$3:$C$5, KVOCIENT(STĹPEC(A1)-1, STĹPCE($A$3:$C$5))+1, MOD(STĹPEC(A1)-1, STĹPCE($A$3:$C$5))+1)
V jadre vzorca používame funkciu INDEX na získanie hodnoty bunky na základe jej relatívnej pozície v rozsahu.
Stránka číslo riadku sa vypočíta podľa tohto vzorca:
KVOCIENT(STĹPEC(A1)-1, STĹPCE($A$3:$C$5))+1
Ide o to, aby sme vytvorili opakujúcu sa postupnosť čísel, napríklad 1,1,1,2,2,2,3,3,3, ..., kde sa každé číslo opakuje toľkokrát, koľko je stĺpcov v zdrojovom rozsahu. A tu je spôsob, ako to urobíme:
QUOTIENT vráti celočíselnú časť delenia.
Pre čitateľ , použijeme COLUMN(A1)-1, ktorý vráti poradové číslo od 0 v prvej bunke, kde je vzorec zadaný, po n (celkový počet hodnôt v rozsahu mínus 1) v poslednej bunke, v ktorej je vzorec zadaný. V tomto príklade máme 0 v E2 a 8 v M3.
Pre menovateľ , použijeme COLUMNS($A$3:$C$5)). Toto vráti konštantné číslo rovnajúce sa počtu stĺpcov vo vašom rozsahu (v našom prípade 3).
Výsledkom je, že funkcia QUOTIENT vráti 0 v prvých troch bunkách (E3:G3), ku ktorým pripočítame 1, takže číslo riadku je 1.
Pre ďalšie 3 bunky (H3:J3) QUOTIENT vráti 1 a +1 dá číslo riadku 2. A tak ďalej.
Výpočet číslo stĺpca , vytvoríte vhodnú postupnosť čísel pomocou funkcie MOD:
MOD(STĹPEC(A1)-1, STĹPCE($A$3:$C$5))+1
Keďže v našom rozsahu sú 3 stĺpce, postupnosť musí vyzerať takto: 1,2,3,1,2,3,...
Funkcia MOD vracia zvyšok po delení.
V E3, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+
sa stáva
MOD(1-1, 3)+1)
a vráti 1.
V F3, MOD(COLUMN(B1)-1, COLUMNS($A$3:$C$5))+
sa stáva
MOD(2-1, 3)+1)
a vráti 2.
Po určení čísla riadku a stĺpca INDEX ľahko vyhľadá hodnotu v priesečníku tohto riadku a stĺpca.
V E3 INDEX($A$3:$C$5, 1, 1) vráti hodnotu z 1. riadku a 1. stĺpca odkazovaného rozsahu, t. j. z bunky A3.
V F3 INDEX($A$3:$C$5, 1, 2) vráti hodnotu z 1. riadku a 2. stĺpca, t. j. z bunky B3.
A tak ďalej.
Druhý vzorec, ktorý prehľadáva rozsah podľa stĺpcov, funguje podobne. Rozdiel je v tom, že na výpočet čísla riadku použijeme MOD a na zistenie čísla stĺpca QUOTIENT.
Nefunguje funkcia TOROW
Ak funkcia TOROW spôsobí chybu, je to s najväčšou pravdepodobnosťou jeden z týchto dôvodov:
#NAME? chyba
Pri väčšine funkcií programu Excel je chyba #NAME? jasným znakom toho, že názov funkcie je nesprávne napísaný. V prípade funkcie TOROW to môže znamenať aj to, že funkcia nie je vo vašom programe Excel k dispozícii. Ak máte inú verziu programu Excel ako 365, skúste použiť alternatívu TOROW.
Chyba #NUM
Chyba #NUM znamená, že vrátené pole sa nezmestí do riadku. Najčastejšie k tomu dochádza, keď sa odkazujete na celé stĺpce a/alebo riadky namiesto menšieho rozsahu.
Chyba #SPILL
Vo väčšine prípadov chyba #SPILL naznačuje, že v riadku, do ktorého ste zadali vzorec, nie je dostatok prázdnych buniek, do ktorých by sa dali výsledky vysypať. Ak sú susedné bunky vizuálne prázdne, skontrolujte, či v nich nie sú medzery alebo iné netlačové znaky. Ďalšie informácie nájdete v časti Čo znamená chyba #SPILL v programe Excel.
Takto sa v programe Excel používa funkcia TOROW na prevod dvojrozmerného poľa alebo rozsahu na jeden riadok. Ďakujem vám za prečítanie a dúfam, že sa na našom blogu uvidíme budúci týždeň!
Cvičebnica na stiahnutie
Funkcia Excel TOROW - príklady vzorcov (.xlsx súbor)