Excel TOCOL funkció a tartomány egyetlen oszlopba történő átalakításához

  • Ossza Meg Ezt
Michael Brown

Egyszerű módja egy tömb vagy tartomány oszlopká alakításának a TOCOL függvénnyel.

Az adatok oszlopokból sorokba és fordítva történő transzponálásának képessége már jó ideje megtalálható az Excelben. De egy cellatartomány egyetlen oszloppá alakítása trükkös feladat volt. Most ez végre megváltozik. A Microsoft bevezetett egy új, TOCOL nevű függvényt, amely egy szempillantás alatt képes elvégezni a tömb-oszlop átalakítást. Az alábbiakban felsoroljuk azokat a feladatokat, amelyeket ez az új függvény könnyen megoldhat.

    Excel TOCOL funkció

    Az Excel TOCOL funkciója egy tömböt vagy cellatartományt egyetlen oszloppá alakít át.

    A függvény három argumentumot vesz fel, de csak az elsőre van szükség.

    TOCOL(array, [ignore], [scan_by_column])

    Hol:

    Array (kötelező) - egy tömb vagy tartomány, amelyet oszlopká kell alakítani.

    Ne törődj a (opcionális) - meghatározza, hogy figyelmen kívül kell-e hagyni az üres részeket és/vagy a hibákat. Az alábbi értékek egyike lehet:

    • 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, hogy a tömböt vízszintesen vagy függőlegesen vizsgálja-e:

    • FALSE vagy elhagyva (alapértelmezett) - a tömböt soronként balról jobbra haladva vizsgálja.
    • TRUE - a tömb oszloponkénti beolvasása felülről lefelé.

    Tippek:

    • Egy tömb egyetlen sorba való átalakításához használja a TOROW függvényt.
    • Az ellentétes oszlop-sor transzformációhoz használjuk a WRAPCOLS függvényt az oszlopok szerint történő tekercseléshez, vagy a WRAPROWS függvényt a sorok szerint történő tekercseléshez.
    • Ha egy tömböt vízszintesből függőlegesbe vagy fordítva, azaz sorokat oszlopokká kíván transzponálni, használja a TRANSPOSE függvényt.

    TOCOL elérhetőség

    A TOCOL egy új funkció, amelyet az Excel for Microsoft 365 (Windows és Mac) és az Excel for the web támogat.

    Alapvető TOCOL formula a tartomány oszlopokká alakításához

    A TOCOL formula legegyszerűbb formájában csak egy argumentumot igényel - array Ha például egy 3 oszlopból és 4 sorból álló kétdimenziós tömböt egyetlen oszlopba szeretnénk helyezni, a képlet a következő:

    =TOCOL(A2:C5)

    A képletet csak egy cellába (ebben a példában az E2-be) írjuk be, és az automatikusan átterjed az alatta lévő cellákra. Az Excel szempontjából az eredményt átterjedési tartománynak nevezzük.

    Hogyan működik ez a képlet:

    Technikailag az A2:C5 tartományt először kétdimenziós tömbté alakítjuk át. Vegyük észre a pontosvesszővel elválasztott sorokat és a vesszővel elválasztott oszlopokat:

    {"Apple","Banana","Cherry";1,0,3;4,#N/A,6;7,8,9}

    A TOCOL függvény balról jobbra haladva átnézi a tömböt, és egydimenziós függőleges tömbté alakítja:

    {"Apple";"Banana";"Cherry";1;0;3;4;#N/A;6;7;8;9}

    Az eredmény az E2-es cellába kerül, ahonnan az alábbi cellákba ömlik.

    A TOCOL funkció használata Excelben - képletpéldák

    Hogy jobban megértsük a TOCOL funkció lehetőségeit, és hogy milyen feladatokat tud lefedni, nézzünk meg néhány képletpéldát.

    Tömb átalakítása oszlopokká az üres részek és hibák figyelmen kívül hagyásával

    Amint azt az előző példában észrevehette, az alapértelmezett TOCOL formula megtartja a forrásmező összes értékét, beleértve az üres cellákat és a hibákat is.

    Az eredményül kapott tömbben az üres cellákat nullák jelölik, ami elég zavaró lehet, különösen, ha az eredeti tömbben 0 értékek vannak. A megoldás a következő üres részek kihagyása Ehhez a 2. argumentumot 1-re kell állítani:

    =TOCOL(A2:C5, 1)

    A címre. hibák figyelmen kívül hagyása , a 2. argumentumot állítsa 2-re:

    =TOCOL(A2:C5, 2)

    Mindkettő kizárása, üres részek és hibák , használd a 3-at a figyelmen kívül hagyja érv:

    =TOCOL(A2:C5, 3)

    Tömb vízszintes vagy függőleges pásztázása

    Az alapértelmezett scan_by_column argumentummal (FALSE vagy elhagyva), a TOCOL függvény vízszintesen soronként vizsgálja a tömböt. Ha oszloponként szeretné feldolgozni az értékeket, állítsa ezt az argumentumot TRUE-ra vagy 1-re. Például:

    =TOCOL(A2:C5, ,TRUE)

    Vegyük észre, hogy mindkét esetben a visszaadott tömbök mérete megegyezik, de az értékek más sorrendben vannak elrendezve.

    Több tartomány kombinálása egy oszlopba

    Ha több nem egybefüggő tartományról van szó, akkor a VSTACK függőlegesen először egyetlen tömbben egyesítheti a tartományokat a VSTACK függvény segítségével, majd a TOCOL segítségével az egyesített tömböt oszlopokká alakíthatja.

    Feltételezve, hogy az első tartomány A2:C4, a második tartomány pedig A8:C9, a képlet a következő formát ölti:

    =TOCOL(VSTACK(A2:C4, A8:C9))

    Ez a képlet az alapértelmezett viselkedést mutatja - a kombinált tömböket vízszintesen, balról jobbra olvassa, ahogy az alábbi kép E oszlopában látható.

    Az értékek függőlegesen, fentről lefelé történő olvasásához a TOCOL 3. argumentumát TRUE-ra kell állítani:

    =TOCOL(VSTACK(A2:C4, A8:C9), ,TRUE)

    Kérjük, figyeljen arra, hogy ebben az esetben a képlet először mindkét tömb A oszlopának értékeit adja vissza, majd a B oszlopét, és így tovább. Ennek oka, hogy a TOCOL egyetlen egymásra helyezett tömböt vizsgál, nem pedig az eredeti egyedi tartományokat.

    Ha az üzleti logika megköveteli az eredeti tartományok vízszintes, nem pedig függőleges egymásra helyezését, akkor a VSTACK helyett a HSTACK függvényt használja.

    Ha minden egyes következő tömböt az előző tömb jobb oldalához csatolunk, és a kombinált tömböket vízszintesen olvassuk, a képlet a következő:

    =TOCOL(HSTACK(A2:C4, A8:C10))

    Ha minden egyes következő tömböt az előző tömb jobb oldalához adunk hozzá, és az egyesített tömböket függőlegesen vizsgáljuk, a képlet a következő:

    =TOCOL(HSTACK(A2:C4, A8:C10), ,TRUE)

    Egyedi értékek kivonása több oszlopos tartományból

    Az Excel UNIQUE függvénye könnyen megtalálja az egyediséget egy oszlopban vagy sorban, valamint visszaadja az egyedi sorokat, de nem tud egyedi értékeket kinyerni egy több oszlopos tömbből. A megoldás az, hogy a TOCOL függvénnyel együtt használjuk.

    Például az A2:C7 tartományból az összes különböző (különálló) érték kivonásához a képlet a következő:

    =UNIQUE(TOCOL(A2:C7))

    Ezen kívül a fenti képletet a SORT függvénybe csomagolhatja, hogy a visszaadott tömböt betűrendbe rendezze:

    =SORT(UNIQUE(TOCOL(A2:C7)))

    Hogyan alakíthat át tartományt oszlopba az Excel 365 - 2010-ben?

    Azokban az Excel verziókban, ahol a TOCOL funkció nem támogatott, létezik néhány alternatív módja annak, hogy egy cellatartományt oszlopokká alakítsunk át. Ezek a megoldások meglehetősen trükkösek, de mindenképpen működnek.

    A tartomány soronkénti kiolvasása:

    INDEX( tartomány , QUOTIENT(SOR(A1)-1, OSZLOPOK( tartomány ))+1, MOD(SOR(A1)-1, OSZLOPOK( tartomány ))+1)

    A tartomány oszloponkénti olvasása:

    INDEX( tartomány , MOD(SOR(A1)-1, SOROK( tartomány ))+1, QUOTIENT(SOR(A1)-1, SOROK( tartomány ))+1)

    A mintaadatkészletünk esetében a képletek a következők:

    A tartomány letapogatása vízszintesen balról jobbra :

    =INDEX($A$2:$C$5, QUOTIENT(SOR(A1)-1, OSZLOPOK($A$2:$C$5))+1, MOD(SOR(A1)-1, OSZLOPOK($A$2:$C$5))+1)

    Ez a képlet megegyezik a TOCOL függvénnyel, ha a 3. argumentumot FALSE-ra állítjuk vagy elhagyjuk:

    =TOCOL(A2:C5)

    A tartomány letapogatása függőlegesen felülről lefelé :

    =INDEX($A$2:$C$5, MOD(SOR(A1)-1, SOR($A$2:$C$5))+1, QUOTIENT(SOR(A1)-1, SOR($A$2:$C$5))+1)

    Ez a képlet a TOCOL függvényhez hasonlítható, ha a 3. argumentumot TRUE-ra állítjuk:

    =TOCOL(A2:C5, ,TRUE)

    A TOCOL-tól eltérően az alternatív képleteket minden olyan cellába be kell írni, ahol az eredményeket meg akarjuk jeleníteni. Esetünkben a képletek az E2 (soronkénti) és a G2 (oszloponkénti) cellákba kerülnek, majd lemásoljuk őket a 13. sorba.

    Ha a képleteket a szükségesnél több sorba másoljuk, akkor az "extra" cellákban #REF! hiba jelenik meg. Ennek megakadályozására a képleteket az IFERROR függvénybe fészkelhetjük be a következőképpen:

    =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), "")

    Vegye észre, hogy a képletek helyes másolásához a tartományt abszolút cellahivatkozásokkal ($A$2:$C$5) rögzítjük. Ehelyett használhat nevesített tartományt is.

    Hogyan működnek ezek a képletek

    Az alábbiakban részletesen ismertetjük az első képletet, amely a cellákat soronként rendezi:

    =INDEX($A$2:$C$5, QUOTIENT(SOR(A1)-1, OSZLOPOK($A$2:$C$5))+1, MOD(SOR(A1)-1, OSZLOPOK($A$2:$C$5))+1)

    Az ötlet az, hogy az INDEX függvényt arra használjuk, hogy visszaadjuk egy adott cella értékét a tartományban lévő relatív sor- és oszlopszámok alapján.

    A sorszám ezzel a kombinációval számítjuk ki:

    QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1

    A QUOTIENT az osztás egész szám részét adja vissza.

    A oldalon. számláló , akkor a ROW(A1)-1-et használja, amely egy sorszámot ad vissza az E2-ben lévő 0-tól (az első cella, ahová a képletet beírta) az E13-ban lévő 11-ig (az utolsó cella, ahová a képletet beírta).

    A nevező által hozott COLUMNS($A$2:$C$5)) állandó és egyenlő a tartomány oszlopainak számával (esetünkben 3).

    Ha most az első 3 cellában (E2:E4) megnézzük a QUOTIENT eredményét, láthatjuk, hogy az 0 (mert az osztás egész szám része nulla). 1 hozzáadásával a sorszám 1 lesz.

    A következő 3 cellára (E5:E5) a QUOTIENT 1, a +1 művelet pedig a 2 sorszámot adja vissza. És így tovább.

    Más szóval, a képlet ezen része egy ismétlődő számsorozatot hoz létre, például 1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,... Minden szám annyiszor ismétlődik, ahány oszlop van a tartományban.

    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(SOR(A1)-1, OSZLOPOK($A$2:$C$5))+1

    Mivel a tartományunkban (A2:C5) 3 oszlop van, a sorrendnek 1,2,3,1,2,3,... kell lennie.

    A MOD függvény az osztás utáni maradékot adja vissza.

    Az E2-ben MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)

    lesz

    MOD(1-1, 3)+1)

    és 1-et ad vissza.

    E3-ban MOD(ROW(A2)-1, COLUMNS($A$2:$C$5))+1)

    lesz

    MOD(2-1, 3)+1)

    és visszatér 2.

    A sor- és oszlopszámok megadása után az INDEX-nek nem okoz gondot a kívánt érték lekérése.

    Az E2-ben az INDEX($A$2:$C$5, 1, 1) a hivatkozott tartomány 1. sorának és 1. oszlopának értékét adja vissza, azaz az A2 cellából.

    Az E3-ban az INDEX($A$2:$C$5, 1, 2) az 1. sor és a 2. oszlop értékét adja vissza, azaz a B2 cellából.

    És így tovább.

    A második képlet, amely oszloponként vizsgálja a tartományt, hasonlóan működik, azzal a különbséggel, hogy a MOD-ot a sorszám, a QUOTIENT-et pedig az oszlopszám megadásához használja.

    A TOCOL funkció nem működik

    Ha a TOCOL függvény hibát dob, annak nagy valószínűséggel a következő okok valamelyike lehet az oka:

    A TOCOL nem támogatott az Excelben

    Ha #NAME? hibát kap, először a függvény nevének helyes írásmódját kell ellenőrizni. Ha a név helyes, de a hiba továbbra is fennáll, a függvény nem érhető el az Ön Excel-verziójában. Ebben az esetben fontolja meg egy TOCOL alternatíva használatát.

    A tömb túl nagy

    A #NUM hiba azt jelzi, hogy a tömb nem fér el egy oszlopban. Tipikus eset, amikor egész oszlopokra vagy sorokra hivatkozik.

    Nincs elég üres cella

    A #SPILL hiba megjelenésekor ellenőrizze, hogy a képlet beírásának oszlopában van-e elegendő üres cella. Ha a cellák vizuálisan üresek, győződjön meg arról, hogy nincsenek-e bennük szóközök és egyéb nem nyomtatott karakterek. További információért lásd: Hogyan javítható a #SPILL hiba az Excelben.

    Így használhatja a TOCOL függvényt az Excel 365-ben és a korábbi verziók alternatív megoldásaiban, hogy egy 2 dimenziós tömböt egyetlen oszloppá alakítson át. Köszönöm, hogy elolvastad, és remélem, jövő héten találkozunk a blogon!

    Gyakorló munkafüzet

    Excel TOCOL funkció - képlet példák (.xlsx fájl)

    Michael Brown elkötelezett technológiai rajongó, aki szenvedélyesen egyszerűsíti a bonyolult folyamatokat szoftvereszközök segítségével. A technológiai iparban szerzett több mint egy évtizedes tapasztalatával a Microsoft Excel és az Outlook, valamint a Google Táblázatok és a Dokumentumok területén fejlesztette tudását. Michael blogja célja, hogy megossza tudását és szakértelmét másokkal, könnyen követhető tippeket és oktatóanyagokat adva a termelékenység és a hatékonyság javításához. Akár tapasztalt szakember, akár kezdő, Michael blogja értékes betekintést és gyakorlati tanácsokat kínál, amelyek segítségével a legtöbbet hozhatja ki ezekből az alapvető szoftvereszközökből.