Tartalomjegyzék
Egy gyors módja annak, hogy egy cellatartományt egyetlen sorba alakítsunk át a TOROW funkció.
A Microsoft Excel 365 számos új függvényt vezetett be a tömbökkel való különféle manipulációk elvégzésére. A TOROW segítségével pillanatok alatt elvégezhetünk tartományok közötti átalakításokat. Íme egy lista azokról a feladatokról, amelyeket ez az új függvény elvégezhet:
Excel TOROW funkció
Az Excel TOROW funkciója egy tömb vagy cellatartomány egyetlen sorba történő átalakítására szolgál.
A függvény összesen három argumentumot fogad el, amelyek közül csak az elsőre van szükség.
TOROW(array, [ignore], [scan_by_column])Hol:
Array (kötelező) - egy tömb vagy tartomány, amelyet egyetlen sorba kell átalakítani.
Ne törődj a (opcionális) - meghatározza, hogy figyelmen kívül hagyja-e az üres részeket és/vagy a hibákat. A következő értékek egyikét veheti fel:
- 0 vagy elhagyva (alapértelmezett) - minden érték megtartása
- 1 - figyelmen kívül hagyja az üres részeket
- 2 - hibák figyelmen kívül hagyása
- 3 - figyelmen kívül hagyja az üres részeket és a hibákat
Scan_by_column (opcionális) - meghatározza a tömb beolvasásának módját:
- FALSE vagy elhagyva (alapértelmezett) - a tömböt vízszintesen, soronként vizsgálja.
- TRUE - a tömb függőlegesen, oszloponként történő beolvasása.
Tippek:
- Egy tömb egyetlen oszloppá alakításához használja a TOCOL függvényt.
- A fordított sor-tábla transzformáció elvégzéséhez használja a WRAPCOLS függvényt az oszlopokba való becsomagoláshoz, vagy a WRAPROWS függvényt a tömb sorokba való becsomagolásához.
- A sorok oszlopokká alakításához használja a TRANSPOSE funkciót.
TOROW elérhetőség
A TOROW egy új funkció, amelyet csak az Excel for Microsoft 365 (Windows és Mac) és az Excel for the web támogat.
Alapvető TOROW-képlet Excelben
Egy egyszerű tartomány-sor transzformáció elvégzéséhez használjuk a TOROW képletet az alapformájában. Ehhez csak az első argumentumot kell definiálnunk ( array ).
Például, ha egy kétdimenziós, 3 oszlopból és 3 sorból álló tömböt egyetlen sorba akarunk alakítani, a képlet a következő:
=TOROW(A3:C6)
A képletet csak egy cellába (esetünkben az A10-es cellába) írja be, és az automatikusan annyi cellába ömlik, ahány cella szükséges az összes eredmény tárolásához. Az Excel nyelvén a vékony kék szegéllyel körülvett kimeneti tartományt nevezzük kiöntési tartománynak.
Hogyan működik ez a képlet:
Először a megadott cellatartományt kétdimenziós tömbté alakítja át. Vegye figyelembe a vesszővel elválasztott oszlopokat és a pontosvesszővel elválasztott sorokat:
{"Apple","Banana","Cherry";1,2,3;4,5,6;7,8,9}
Ezután a TOROW függvény balról jobbra haladva beolvassa a tömböt, és egydimenziós vízszintes tömbtá alakítja:
{"Apple","Banana","Cherry",1,2,3,4,5,6,7,8,9}
Az eredmény az A10-es cellába kerül, ahonnan a jobb oldali szomszédos cellába ömlik.
A tartomány sorra történő átalakítása az üres részek és hibák figyelmen kívül hagyásával
Alapértelmezés szerint a TOROW függvény megtartja az összes értéket a forrástömbből, beleértve az üres cellákat és a hibákat is. A kimeneten az üres cellák helyén nulla értékek jelennek meg, ami elég zavaró lehet.
A címre. üres részek kizárása , állítsa be a figyelmen kívül hagyja érv értéke 1:
=TOROW(A3:C5, 1)
A címre. hibák figyelmen kívül hagyása , állítsa be a figyelmen kívül hagyja érv a 2:
=TOROW(A3:C5, 2)
Mindkettő kihagyása, üres részek és hibák , a 3-t használja a figyelmen kívül hagyja érv:
=TOROW(A3:C5, 3)
Az alábbi képen mindhárom forgatókönyv látható működés közben:
Tömb olvasása vízszintesen vagy függőlegesen
Az alapértelmezett viselkedés esetén a TOROW függvény a tömböt vízszintesen balról jobbra haladva dolgozza fel. Ha az értékeket oszloponként, felülről lefelé szeretné átvizsgálni, akkor a 3. argumentumot ( scan_by_column ) értéke TRUE vagy 1.
Például a forrás tartomány soronkénti kiolvasásához az E3-ban szereplő képlet a következő:
=TOROW(A3:C5)
A tartomány oszloponkénti beolvasásához az E8-ban lévő képlet a következő:
=TOROW(A3:C5, ,TRUE)
Mindkét esetben a kapott tömbök mérete megegyezik, de az értékek más sorrendben vannak elrendezve.
Több tartomány összevonása egy sorba
Több nem szomszédos tartomány egyetlen sorba történő egyesítéséhez először vízszintesen vagy függőlegesen egymásra kell halmozni őket egyetlen tömbbe a HSTACK vagy VSTACK segítségével, majd a TOROW függvénnyel az egyesített tömböt sorba kell alakítani.
Az üzleti logikától függően az alábbi képletek egyike fogja elvégezni a feladatot.
Tömbök vízszintes halmozása és soronkénti konvertálása
Ha az első tartomány az A3:C4, a második tartomány pedig az A8:C9, az alábbi képlet a két tartományt vízszintesen egy tömbbe halmozza, majd az értékeket balról jobbra olvasó sorba alakítja át. Az eredmény az alábbi képen az E3-ban látható.
=TOROW(HSTACK(A3:C4, A8:C9))
Tömbök vízszintes halmozása és oszloponkénti konvertálása
Az egymásra helyezett tömb függőlegesen, fentről lefelé történő olvasásához a TOROW 3. argumentumát TRUE-ra kell állítani, ahogy az az alábbi képen az E5-ben látható:
=TOROW(HSTACK(A3:C4, A8:C9), ,TRUE)
Tömbök függőlegesen történő egymásra halmozása és soronkénti konvertálása
Ha minden egyes következő tömböt az előző tömb aljához csatolunk, és a kombinált tömböt vízszintesen olvassuk, az E12 képlet a következő:
=TOROW(VSTACK(A3:C4, A8:C9))
Tömbök függőlegesen történő halmozása és oszloponkénti konvertálása
Ha minden egyes következő tömböt hozzáadunk az előző tömb aljához, és a kombinált tömböt függőlegesen szkenneljük, a képlet a következő:
=TOROW(VSTACK(A3:C4, A8:C9), ,TRUE)
A logika jobb megértéséhez figyelje meg az értékek eltérő sorrendjét a kapott tömbökben:
Egyedi értékek kivonása egy tartományból egy sorba
A Microsoft Excel 2016-tól kezdve van egy csodálatos függvényünk, az UNIQUE, amellyel könnyen kaphatunk egyedi értékeket egyetlen oszlopból vagy sorból. Több oszlopos tömböket azonban nem tud kezelni. Ennek a korlátozásnak a leküzdéséhez használjuk az UNIQUE és a TOROW függvényeket együtt.
Például, ha az A2:C7 tartományból az összes különböző (különálló) értéket ki akarjuk vonni, és az eredményeket egy sorba akarjuk helyezni, a képlet a következő:
=UNIQUE(TOROW(A2:C7), TRUE)
Mivel a TOROW egy egydimenziós vízszintes tömböt ad vissza, a 2. ( by_col ) argumentumot TRUE értékre állítja, hogy az oszlopokat összehasonlítsa egymással.
Ha azt szeretné, hogy az eredmények alfabetikus sorrendben legyenek elrendezve, akkor a fenti képletet a SORT függvénybe csomagolja:
=SORT(UNIQUE(TOROW(A2:C7), TRUE), , ,TRUE )
Az UNIQUE-hoz hasonlóan a by_col argumentuma is TRUE értékre van állítva.
TOROW alternatíva az Excel 365 - 2010 számára
Azokban az Excel verziókban, ahol a TOROW funkció nem áll rendelkezésre, egy tartományt egyetlen sorba alakíthat át néhány különböző, a régebbi verziókban is működő függvény kombinációjával. Ezek a megoldások bonyolultabbak, de működnek.
A tartomány vízszintes letapogatásához az általános képlet a következő:
INDEX( tartomány , QUOTIENT(OSZLOP (A1)-1, OSZLOPOK( tartomány ))+1, MOD(OSZLOP(A1)-1, OSZLOPOK( tartomány ))+1)A tartomány függőleges beolvasásához az általános képlet a következő:
INDEX( tartomány , MOD(OSZLOP(A1)-1, OSZLOPOK( tartomány ))+1, QUOTIENT(OSZLOP (A1)-1, OSZLOPOK( tartomány ))+1)Az A3:C5 mintaadatkészletünk esetében a képletek a következőképpen alakulnak:
A tartomány soronkénti keresése:
=INDEX($A$3:$C$5, QUOTIENT(OSZLOP(A1)-1, OSZLOPOK($A$3:$C$5))+1, MOD(OSZLOP(A1)-1, OSZLOPOK($A$3:$C$5))+1)
Ez a képlet a TOROW függvény alternatívája, ha a 3. argumentumot FALSE-ra állítjuk vagy elhagyjuk:
=TOROW(A3:C5)
A tartomány oszloponkénti keresése:
=INDEX($A$3:$C$5, MOD(OSZLOP(A1)-1, OSZLOPOK($A$3:$C$5))+1, QUOTIENT(OSZLOP(A1)-1, OSZLOPOK($A$3:$C$5))+1)
Ez a képlet megegyezik a TOROW függvénnyel, amelynek 3. argumentuma TRUE:
=TOROW(A3:C5, ,TRUE)
Felhívjuk a figyelmet arra, hogy a dinamikus tömb TOROW függvénnyel ellentétben ezeket a hagyományos képleteket minden egyes cellába be kell írni, ahol az eredményeket meg akarjuk jeleníteni. Esetünkben az első képlet (soronként) az E3-ba kerül, és az M3-on keresztül másoljuk át. A második képlet (oszloponként) az E8-ban landol, és az M8-on keresztül húzza át.
Ahhoz, hogy a képletek helyesen másolódjanak, a tartományt abszolút hivatkozásokkal rögzítjük ($A$3:$C$5). A megnevezett tartomány is megfelel.
Ha a szükségesnél több cellába másolta a képleteket, akkor az "extra" cellákban #REF! hiba jelenik meg. Ezt úgy tudja kijavítani, hogy a képletet az IFERROR függvénybe csomagolja, így:
=IFERROR(INDEX($A$3:$C$5, QUOTIENT(OSZLOP(A1)-1, OSZLOPOK($A$3:$C$5))+1, MOD(OSZLOP(A1)-1, OSZLOPOK($A$3:$C$5))+1), "")
Hogyan működnek ezek a képletek
Az alábbiakban részletesen bemutatjuk az első képletet, amely soronként rendezi az értékeket:
=INDEX($A$3:$C$5, QUOTIENT(OSZLOP(A1)-1, OSZLOPOK($A$3:$C$5))+1, MOD(OSZLOP(A1)-1, OSZLOPOK($A$3:$C$5))+1)
A képlet középpontjában az INDEX függvényt használjuk, hogy egy cella értékét a tartományban elfoglalt relatív pozíciója alapján kapjuk meg.
A sorszám a következő képlettel számítjuk ki:
QUOTIENT(OSZLOP(A1)-1, OSZLOPOK($A$3:$C$5))+1
Az ötlet az, hogy egy ismétlődő számsorozatot állítsunk elő, például 1,1,1,1,2,2,2,2,3,3,3, ..., ahol minden szám annyiszor ismétlődik, ahány oszlop van a forrás tartományban. És itt van, hogyan csináljuk ezt:
A QUOTIENT az osztás egész szám részét adja vissza.
A oldalon. számláló , a COLUMN(A1)-1-et használjuk, amely egy sorszámot ad vissza a 0-tól az első cellában, ahol a képletet beírtuk, a következő cellákig. n (a tartományban lévő értékek teljes száma mínusz 1) az utolsó cellában, ahová a képletet beírtuk. Ebben a példában az E2-ben 0, az M3-ban pedig 8 van.
A oldalon. nevező , használjuk a COLUMNS($A$3:$C$5))). Ez egy konstans számot ad vissza, amely megegyezik a tartomány oszlopainak számával (esetünkben 3).
Ennek eredményeképpen a QUOTIENT függvény az első 3 cellában (E3:G3) 0-t ad vissza, amihez hozzáadunk 1-et, így a sorszám 1 lesz.
A következő 3 cellára (H3:J3) a QUOTIENT 1, a +1 pedig a 2. sorszámot adja. És így tovább.
Az alábbiak kiszámításához oszlopszám , akkor a MOD funkció segítségével megfelelő számsorozatot állíthatsz össze:
MOD(OSZLOP(A1)-1, OSZLOPOK($A$3:$C$5))+1
Mivel a tartományunkban 3 oszlop van, a sorrendnek így kell kinéznie: 1,2,3,1,2,3,....
A MOD függvény az osztás utáni maradékot adja vissza.
Az E3-ban MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+
lesz
MOD(1-1, 3)+1)
és 1-et ad vissza.
Az F3-ban MOD(COLUMN(B1)-1, COLUMNS($A$3:$C$5))+
lesz
MOD(2-1, 3)+1)
és visszatér 2.
Ha a sor- és oszlopszámok már meg vannak határozva, az INDEX egyszerűen megkeresi a sor és az oszlop metszéspontjában lévő értéket.
Az E3-ban az INDEX($A$3:$C$5, 1, 1) a hivatkozott tartomány 1. sorából és 1. oszlopából, azaz az A3-as cellából ad vissza egy értéket.
Az F3-ban az INDEX($A$3:$C$5, 1, 2) az 1. sorból és a 2. oszlopból, azaz a B3 cellából ad vissza egy értéket.
És így tovább.
A második képlet, amely oszloponként vizsgálja a tartományt, hasonlóan működik. A különbség az, hogy a MOD-ot a sorszám kiszámításához, a QUOTIENT-et pedig az oszlopszám kiszámításához használjuk.
A TOROW funkció nem működik
Ha a TOROW funkció hibát eredményez, annak nagy valószínűséggel a következő okok valamelyike az oka:
#NAME? hiba
A legtöbb Excel-funkció esetében a #NAME? hiba egyértelműen azt jelzi, hogy a funkció neve rosszul van írva. A TOROW esetében ez azt is jelentheti, hogy a funkció nem érhető el az Excelben. Ha az Excel verziója nem a 365-ös, próbáljon meg egy TOROW-alternatívát használni.
#NUM hiba
A #NUM hiba azt jelzi, hogy a visszaadott tömb nem fér el egy sorban. Ez leggyakrabban akkor fordul elő, ha egy kisebb tartomány helyett egész oszlopokra és/vagy sorokra hivatkozik.
#SPILL hiba
A legtöbb esetben a #SPILL hiba arra utal, hogy a sor, ahová a képletet beírta, nem rendelkezik elegendő üres cellával ahhoz, hogy az eredményeket kiöntse. Ha a szomszédos cellák vizuálisan üresek, győződjön meg arról, hogy nincsenek-e bennük szóközök vagy más nem nyomtatott karakterek. További információért lásd: Mit jelent a #SPILL hiba az Excelben.
Így használja a TOROW függvényt az Excelben, hogy egy 2 dimenziós tömböt vagy tartományt egyetlen sorba konvertáljon. Köszönöm, hogy elolvastad, és remélem, hogy jövő héten találkozunk a blogon!
Gyakorlati munkafüzet letölthető
Excel TOROW funkció - képlet példák (.xlsx fájl)