Funció TOCOL d'Excel per convertir l'interval a una sola columna

  • Comparteix Això
Michael Brown

Una manera senzilla de transformar una matriu o un interval en una columna amb la funció TOCOL.

La capacitat de transposar dades de columnes a files i a la inversa ha estat a Excel des de fa bastant una estona. Però convertir un rang de cel·les en una sola columna va ser una tasca difícil de trencar. Ara, finalment això està canviant. Microsoft ha introduït una nova funció, anomenada TOCOL, que pot fer una transformació de matriu a columna en un parpelleig. A continuació es mostra una llista de tasques que aquesta nova funció pot resoldre fàcilment.

    Funció TOCOL d'Excel

    La funció TOCOL d'Excel converteix una matriu o rang de cel·les en una única columna.

    La funció pren tres arguments, però només cal el primer.

    TOCOL(matriu, [ignorar], [escanejar_per_columna])

    On:

    Matriu (obligatori): una matriu o un interval per transformar en una columna.

    Ignora (opcional) - defineix si s'han d'ignorar els espais en blanc o/o els errors. Pot ser un d'aquests valors:

    • 0 o omès (per defecte) - mantenir tots els valors
    • 1 - ignorar els espais en blanc
    • 2 - ignorar els errors
    • 3: ignora els espais en blanc i els errors

    Scan_by_column (opcional) - determina si escaneja la matriu horitzontalment o verticalment:

    • FALSE o s'omet (per defecte): escaneja la matriu per fila d'esquerra a dreta.
    • VERTADER: explora la matriu per columna de dalt a baix.

    Consells:

    • Per convertir una matriu en una sola fila, utilitzeu TOROWfunció.
    • Per fer la transformació oposada de columna a matriu, utilitzeu la funció WRAPCOLS per embolicar per columna o la funció WRAPROWS per embolicar per fila.
    • Per transposar una matriu d'horitzontal a vertical o viceversa, és a dir, canvieu les files a columnes, utilitzeu la funció TRANSPOSE.

    Disponibilitat de TOCOL

    TOCOL és una funció nova, compatible amb Excel per a Microsoft 365 (per a Windows i Mac) i Excel per al web.

    Fórmula TOCOL bàsica per transformar l'interval en columna

    La fórmula TOCOL en la seva forma més senzilla només requereix un argument: matriu . Per exemple, per col·locar una matriu bidimensional que consta de 3 columnes i 4 files en una sola columna, la fórmula és:

    =TOCOL(A2:C5)

    La fórmula només s'introdueix en una cel·la (E2 a aquest exemple) i s'aboca automàticament a les cel·les següents. En termes d'Excel, el resultat s'anomena interval de vessament.

    Com funciona aquesta fórmula:

    Tècnicament, el rang A2:C5 es converteix primer en una matriu bidimensional. Tingueu en compte les files separades per punt i coma i les columnes delimitades per comes:

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

    La funció TOCOL escaneja la matriu d'esquerra a dreta i la transforma en una matriu vertical unidimensional:

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

    El resultat es col·loca a la cel·la E2, des de la qual s'aboca a les cel·les següents.

    Com utilitzar la funció TOCOL a Excel - exemples de fórmules

    Per obtenir més comprensió delpossibilitats de la funció TOCOL i quines tasques pot cobrir, donem un cop d'ull a alguns exemples de fórmules.

    Transformar matriu en columna ignorant els espais en blanc i els errors

    Com haureu notat a l'exemple anterior , la fórmula TOCOL predeterminada manté tots els valors de la matriu d'origen, incloses les cel·les en blanc i els errors.

    A la matriu resultant, les cel·les buides es representen amb zeros, cosa que pot ser força confús, especialment si la matriu original té 0 valors. La solució és ometre espais en blanc . Per a això, establiu el segon argument a 1:

    =TOCOL(A2:C5, 1)

    Per ignorar els errors , establiu el segon argument a 2:

    =TOCOL(A2:C5, 2)

    Per excloure tots dos, espais en blanc i errors , utilitzeu 3 per a l'argument ignore :

    =TOCOL(A2:C5, 3)

    Escaneja la matriu horitzontalment o verticalment

    Amb l'argument predeterminat scan_by_column (FALSE o omès), la funció TOCOL explora la matriu horitzontalment per fila. Per processar valors per columna, establiu aquest argument com a TRUE o 1. Per exemple:

    =TOCOL(A2:C5, ,TRUE)

    Observeu que, en ambdós casos, les matrius retornades tenen la mateixa mida, però els valors estan ordenats. en un ordre diferent.

    Combina diversos rangs en una sola columna

    Si estàs tractant amb diversos rangs no contigus, primer pots combinar els rangs verticalment en una sola matriu amb l'ajuda de la funció VSTACK i a continuació, utilitzeu TOCOL per transformar la matriu combinada en una columna.

    Suposant que el primer rang és A2:C4 i el segon rang és A8:C9, la fórmula pren aquesta forma:

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

    Aquesta fórmula demostra el comportament predeterminat: llegeix les matrius combinades horitzontalment des de l'esquerra. a la dreta, tal com es mostra a la columna E de la imatge següent.

    Per llegir els valors verticalment de dalt a baix, establiu el tercer argument de TOCOL a TRUE:

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

    Si us plau, tingueu en compte que, en aquest cas, la fórmula retorna primer valors de la columna A d'ambdues matrius, després de la columna B, i així successivament. El motiu és que TOCOL escaneja una única matriu apilada, no els intervals individuals originals.

    Si la vostra lògica empresarial requereix apilar els intervals originals horitzontalment en lloc de verticalment, feu servir la funció HSTACK en lloc de VSTACK.

    Per afegir cada matriu posterior a la dreta de la matriu anterior i llegiu el matrius combinades horitzontalment, la fórmula és:

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

    Per afegir cada matriu posterior a la dreta de la matriu anterior i escanejar les matrius combinades verticalment, la fórmula és:

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

    Extreu valors únics d'un interval de diverses columnes

    La funció EXCEL UNIQUE pot trobar fàcilment únics en una sola columna o fila, així com retornar files úniques, però no pot extreure valors únics de una matriu de diverses columnes. La solució és utilitzar-lo juntament amb la funció TOCOL.

    Per exemple, per extreure tots els diferents valors (diferents) de l'interval.A2:C7, la fórmula és:

    =UNIQUE(TOCOL(A2:C7))

    A més, podeu embolicar la fórmula anterior a la funció SORT per organitzar la matriu retornada en ordre alfabètic:

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

    Com convertir l'interval en columna a Excel 365 - 2010

    En les versions d'Excel on la funció TOCOL no s'admet, hi ha un parell de maneres alternatives de transformar un interval de cel·les en una columna. Aquestes solucions són bastant complicades, però de totes maneres funcionen.

    Per llegir l'interval per fila:

    INDEX( interval , QUOTIENT(ROW(A1)-1, COLUMNS( rang ))+1, MOD(LINEA(A1)-1, COLUMNS( interval ))+1)

    Per llegir l'interval per columna:

    INDEX( rang , MOD(FILA(A1)-1, FILES( interval ))+1, QUOCIENT(FILA(A1)-1, FILES( interval ))+1 )

    Per al nostre conjunt de dades de mostra, les fórmules són les següents:

    Per escanejar l'interval horitzontalment d'esquerra a dreta :

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

    Aquesta fórmula és equivalent a la funció TOCOL amb el tercer argument establert a FALSE o omès:

    =TOCOL(A2:C5)

    Per escanejar l'interval verticalment de dalt a baix :

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

    Aquesta fórmula és comparable a la funció TOCOL amb el tercer argument establert en TRUE:

    =TOCOL(A2:C5, ,TRUE)

    A diferència de TOCOL, les fórmules alternatives s'han d'introduir a cada una. cel·la on voleu que apareguin els resultats. En el nostre cas, les fórmules van a les cel·les E2 (per fila) i G2 (per columna) i després es copien a la fila 13.

    Si les fórmules es copien a més files de les necessàries, un#REF! l'error apareixerà a les cel·les "extra". Per evitar que això succeeixi, podeu anidar les fórmules a la funció IFERROR de la següent manera:

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

    Tingueu en compte que perquè les fórmules es copien correctament, bloquegem l'interval mitjançant referències de cel·les absolutes ($ A$2:$C$5). En lloc d'això, podeu utilitzar un interval amb nom.

    Com funcionen aquestes fórmules

    A continuació es mostra un desglossament detallat de la primera fórmula que organitza les cel·les per fila:

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

    La idea és utilitzar la funció INDEX per retornar el valor d'una cel·la determinada en funció dels seus números relatius de fila i columna de l'interval.

    El número de fila es calcula amb aquesta combinació. :

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

    QUOCIENT retorna la part entera d'una divisió.

    Per a numerador , feu servir ROW(A1)-1, que retorna un número de sèrie de 0 a E2 (primera cel·la on s'ha introduït la fórmula) a 11 a E13 (l'última cel·la on s'ha introduït la fórmula).

    El denominador portat per COLUMNS($A $2:$C$5)) és constant i és igual al nombre de columnes del vostre interval (3 en el nostre cas).

    Ara, si comproveu el resultat del QUOCIENT per a les 3 primeres cel·les (E2:E4) , veureu que és igual a 0 (perquè la part sencera de la divisió és zero). Afegir 1 dóna el número de fila 1.

    Per a les 3 cel·les següents (E5:E5), QUOCIENT retorna 1 i l'operació +1 proporciona el número de fila 2. I així successivament.

    En altres paraules, aquesta part de la fórmula crea una repeticióseqüència numèrica com ara 1,1,1,2,2,2,3,3,3,4,4,4,... Cada número es repeteix tantes vegades com hi hagi columnes al vostre rang.

    Per calculeu el número de columna , creeu una seqüència numèrica adequada mitjançant la funció MOD:

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

    Com que hi ha 3 columnes al nostre rang (A2:C5), el la seqüència ha de ser 1,2,3,1,2,3,...

    La funció MOD retorna la resta després de la divisió.

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

    es converteix en

    MOD(1-1, 3)+1)

    i retorna 1.

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

    es converteix en

    MOD(2-1, 3) +1)

    i retorna 2.

    Amb els números de fila i columna establerts, INDEX no té problemes per obtenir el valor requerit.

    A E2, INDEX($A$2 :$C$5, 1, 1) retorna el valor de la 1a fila i la 1a columna de l'interval de referència, és a dir, de la cel·la A2.

    A E3, INDEX($A$2:$C$5, 1). , 2) retorna el valor de la 1a fila i la 2a columna, és a dir, de la cel·la B2.

    I així successivament.

    La segona fórmula que explora l'interval per c olumn, funciona de manera similar. La diferència és que utilitza MOD per obtenir el número de fila i QUOTIENT per obtenir el número de columna.

    La funció TOCOL no funciona

    Si la funció TOCOL genera un error, és molt probable que per ser un d'aquests motius:

    TOCOL no s'admet al vostre Excel

    Quan obteniu un #NAME? error, l'ortografia correcta del nom de la funció és el primer que calcomprovar. Si el nom és correcte però l'error persisteix, la funció no està disponible a la vostra versió d'Excel. En aquest cas, considereu utilitzar una alternativa TOCOL.

    La matriu és massa gran

    Un error #NUM indica que la matriu no pot cabre en una columna. Un cas típic és quan feu referència a columnes o files senceres.

    No hi ha prou cel·les buides

    Quan es produeix un error #SPILL, comproveu que la columna on s'introdueix la fórmula té prou cel·les buides per omplir-se amb els resultats. Si les cel·les estan visualment en blanc, assegureu-vos que no hi hagi espais ni altres caràcters que no s'imprimeixin. Per obtenir més informació, vegeu Com corregir l'error #SPILL a Excel.

    Així és com podeu utilitzar la funció TOCOL a Excel 365 i solucions alternatives en versions anteriors per transformar una matriu bidimensional en una sola columna. Us agraeixo la lectura i espero veure-us al nostre bloc la setmana vinent!

    Quader de pràctiques

    Funció TOCOL d'Excel - exemples de fórmules (fitxer .xlsx)

    Michael Brown és un entusiasta de la tecnologia dedicat amb una passió per simplificar processos complexos mitjançant eines de programari. Amb més d'una dècada d'experiència en la indústria tecnològica, ha perfeccionat les seves habilitats en Microsoft Excel i Outlook, així com en Google Sheets i Docs. El bloc de Michael es dedica a compartir els seus coneixements i experiència amb altres persones, oferint consells i tutorials fàcils de seguir per millorar la productivitat i l'eficiència. Tant si sou un professional experimentat com si sou un principiant, el bloc de Michael ofereix valuoses idees i consells pràctics per treure el màxim profit d'aquestes eines de programari essencials.