Función TOCOL de Excel para converter o rango nunha única columna

  • Comparte Isto
Michael Brown

Un xeito sinxelo de transformar unha matriz ou un intervalo nunha columna coa función TOCOL.

A capacidade de transpoñer datos de columnas a filas e á inversa está en Excel desde hai bastante tempo. un intre. Pero converter un rango de celas nunha soa columna foi unha tarefa complicada de romper. Agora, iso está a cambiar finalmente. Microsoft presentou unha nova función, chamada TOCOL, que pode facer unha transformación de matriz a columna nun parpadeo. A continuación móstrase unha lista de tarefas que esta nova función pode resolver facilmente.

    Función TOCOL de Excel

    A función TOCOL en Excel converte unha matriz ou rango de celas nunha única columna.

    A función toma tres argumentos, pero só é necesario o primeiro.

    TOCOL(matriz, [ignorar], [escanear_por_columna])

    Onde:

    Matriz (obrigatorio): unha matriz ou intervalo para transformar nunha columna.

    Ignorar (opcional) - define se ignorar os espazos en branco ou/ou os erros. Pode ser un destes valores:

    • 0 ou omitido (predeterminado) - manter todos os valores
    • 1 - ignorar os espazos en branco
    • 2 - ignorar os erros
    • 3 - ignorar os espazos en branco e os erros

    Scan_by_column (opcional) - determina se se explora a matriz horizontal ou verticalmente:

    • FALSO ou omitido (predeterminado): explora a matriz por fila de esquerda a dereita.
    • VERDADEIRO: explora a matriz por columna de arriba a abaixo.

    Consellos:

    • Para converter unha matriz nunha única fila, use o TOROWfunción.
    • Para facer a transformación oposta de columna a matriz, use a función WRAPCOLS para axustar por columna ou a función WRAPROWS para axustar por fila.
    • Para transpoñer unha matriz de horizontal a vertical ou viceversa, é dicir, cambiar as filas a columnas, utilizar a función TRANSPOSE.

    Dispoñibilidade de TOCOL

    TOCOL é unha función nova, que se admite en Excel para Microsoft 365 (para Windows e Mac) e Excel para a web.

    Fórmula TOCOL básica para transformar rango en columna

    A fórmula TOCOL na súa forma máis sinxela require só un argumento: matriz . Por exemplo, para colocar unha matriz bidimensional formada por 3 columnas e 4 filas nunha única columna, a fórmula é:

    =TOCOL(A2:C5)

    A fórmula introdúcese só nunha cela (E2 en este exemplo) e derramase nas celas de abaixo automaticamente. En termos de Excel, o resultado chámase intervalo de derrame.

    Como funciona esta fórmula:

    Técnicamente, o rango A2:C5 convértese primeiro nunha matriz bidimensional. Observe as filas separadas por punto e coma e as columnas delimitadas por comas:

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

    A función TOCOL escanea a matriz de esquerda a dereita e transfórmaa nunha matriz vertical unidimensional:

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

    O resultado colócase na cela E2, a partir da cal se derrama nas celas de abaixo.

    Como usar a función TOCOL en Excel: exemplos de fórmulas

    Para obter máis comprensión doposibilidades da función TOCOL e que tarefas pode cubrir, vexamos algúns exemplos de fórmulas.

    Transformar matriz en columna ignorando os espazos en branco e os erros

    Como xa notaches no exemplo anterior , a fórmula TOCOL predeterminada mantén todos os valores da matriz de orixe, incluídas as celas en branco e os erros.

    Na matriz resultante, as celas baleiras represéntanse con ceros, o que pode resultar bastante confuso, especialmente se a matriz orixinal ten 0 valores. A solución é omitir espazos en branco . Para iso, establece o segundo argumento en 1:

    =TOCOL(A2:C5, 1)

    Para ignorar os erros , establece o segundo argumento en 2:

    =TOCOL(A2:C5, 2)

    Para excluír ambos, os espazos en branco e os erros , use 3 para o argumento ignorar :

    =TOCOL(A2:C5, 3)

    Escanear matriz horizontal ou verticalmente

    Co argumento predeterminado scan_by_column (FALSO ou omitido), a función TOCOL explora a matriz horizontalmente por fila. Para procesar valores por columna, estableza este argumento como TRUE ou 1. Por exemplo:

    =TOCOL(A2:C5, ,TRUE)

    Observe que, en ambos casos, as matrices devoltas teñen o mesmo tamaño, pero os valores están dispostos. nunha orde diferente.

    Combinar varios rangos nunha columna

    Se está a tratar con varios rangos non contiguos, primeiro pode combinar os rangos verticalmente nunha única matriz coa axuda da función VSTACK, e logo use TOCOL para transformar a matriz combinada nunha columna.

    Asumindo que o primeiro intervalo é A2:C4 e o segundo intervalo é A8:C9, a fórmula toma esta forma:

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

    Esta fórmula mostra o comportamento predeterminado: le as matrices combinadas horizontalmente desde a esquerda á dereita como se mostra na columna E da imaxe de abaixo.

    Para ler os valores verticalmente de arriba a abaixo, estableces o terceiro argumento de TOCOL como TRUE:

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

    Preste atención a que, neste caso, a fórmula devolve primeiro os valores da columna A de ambas as matrices, despois da columna B e así por diante. O motivo é que TOCOL analiza unha única matriz apilada, non os intervalos individuais orixinais.

    Se a súa lóxica empresarial require apilar os intervalos orixinais horizontalmente e non verticalmente, use a función HSTACK en lugar de VSTACK.

    Para engadir cada matriz posterior á dereita da matriz anterior e lea o matrices combinadas horizontalmente, a fórmula é:

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

    Para engadir cada matriz posterior á dereita da matriz anterior e escanear as matrices combinadas verticalmente, a fórmula é:

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

    Extraer valores únicos dun intervalo de varias columnas

    A función UNIQUE de Excel pode atopar facilmente elementos únicos nunha soa columna ou fila, así como devolver filas únicas, pero non pode extraer valores únicos de unha matriz de varias columnas. A solución é usalo xunto coa función TOCOL.

    Por exemplo, para extraer todos os diferentes valores (distintos) do intervaloA2:C7, a fórmula é:

    =UNIQUE(TOCOL(A2:C7))

    Ademais, pode envolver a fórmula anterior na función ORDENAR para organizar a matriz devolta en orde alfabética:

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

    Como converter un intervalo en columna en Excel 365 - 2010

    En versións de Excel onde non se admite a función TOCOL, existen un par de formas alternativas de transformar un intervalo de celas nunha columna. Estas solucións son bastante complicadas, pero de todos os xeitos funcionan.

    Para ler o intervalo por fila:

    INDEX( intervalo , QUOCIENT(ROW(A1)-1, COLUMNS( intervalo ))+1, MOD(FILA(A1)-1, COLUMNAS( intervalo ))+1)

    Para ler o intervalo por columna:

    INDEX( intervalo , MOD(FILA(A1)-1, FILAS( intervalo ))+1, QUOCIENT(FILA(A1)-1, FILAS( intervalo ))+1 )

    Para o noso conxunto de datos de mostra, as fórmulas son as seguintes:

    Para analizar o intervalo horizontalmente de esquerda a dereita :

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

    Esta fórmula é equivalente á función TOCOL co 3º argumento definido como FALSO ou omitido:

    =TOCOL(A2:C5)

    Para escanear o intervalo verticalmente de arriba a abaixo :

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

    Esta fórmula é comparable á función TOCOL co 3.º argumento definido como TRUE:

    =TOCOL(A2:C5, ,TRUE)

    A diferenza de TOCOL, as fórmulas alternativas deben introducirse en cada cela onde desexa que aparezan os resultados. No noso caso, as fórmulas van ás celas E2 (por fila) e G2 (por columna), e despois cópiase na fila 13.

    Se as fórmulas se copian en máis filas das necesarias, un#REF! o erro aparecerá nas celas "extra". Para evitar que isto ocorra, pode aniñar as fórmulas na función IFERROR do seguinte xeito:

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

    Teña en conta que para que as fórmulas se copien correctamente, bloqueamos o intervalo usando referencias de cela absolutas ($ A $ 2: $ C $ 5). Pola contra, pode usar un intervalo con nome.

    Como funcionan estas fórmulas

    A continuación móstrase un desglose detallado da primeira fórmula que ordena as celas por 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)

    A idea é utilizar a función INDEX para devolver o valor dunha determinada cela en función dos seus números relativos de fila e columna no intervalo.

    O número de fila calcúlase mediante esta combinación. :

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

    QUOCIENT devolve a parte enteira dunha división.

    Para numerador , usa ROW(A1)-1, que devolve un número de serie desde 0 en E2 (primeira cela onde se introduciu a fórmula) ata 11 en E13 (a última cela na que se introduciu a fórmula).

    O denominador trae por COLUMNAS($A $2:$C$5)) é constante e é igual ao número de columnas do teu intervalo (3 no noso caso).

    Agora, se verificas o resultado do QUOCIENT para as 3 primeiras celas (E2:E4) , verás que é igual a 0 (porque a parte enteira da división é cero). Engadindo 1 o número de fila 1.

    Para as 3 celas seguintes (E5:E5), QUOCIENT devolve 1 e a operación +1 proporciona o número de fila 2. E así por diante.

    Noutras palabras, esta parte da fórmula crea unha repeticiónsecuencia numérica como 1,1,1,2,2,2,3,3,3,4,4,4,... Cada número repítese tantas veces como columnas haxa no seu intervalo.

    Para calcula o número de columna , constrúe unha secuencia numérica adecuada usando a función MOD:

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

    Como hai 3 columnas no noso rango (A2:C5), o a secuencia debe ser 1,2,3,1,2,3,...

    A función MOD devolve o resto despois da división.

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

    convértese en

    MOD(1-1, 3)+1)

    e devolve 1.

    En E3, MOD(FILA(A2)-1, COLUMNAS($A$2:$C$5))+1)

    convértese en

    MOD(2-1, 3) +1)

    e devolve 2.

    Cos números de fila e columna establecidos, INDEX non ten problemas para obter o valor necesario.

    En E2, INDEX($A$2 :$C$5, 1, 1) devolve o valor da 1a fila e da 1a columna do intervalo referenciado, é dicir, da cela A2.

    En E3, INDEX($A$2:$C$5, 1 , 2) devolve o valor da 1a fila e da 2a columna, é dicir, da cela B2.

    E así por diante.

    A segunda fórmula que analiza o intervalo mediante c olumn, funciona de forma similar. A diferenza é que usa MOD para obter o número de fila e QUOTIENT para obter o número de columna.

    A función TOCOL non funciona

    Se a función TOCOL arroxa un erro, o máis probable é para ser un destes motivos:

    TOCOL non se admite no teu Excel

    Cando obtén un #NAME? erro, a ortografía correcta do nome da función é o primeirocomprobar. Se o nome é correcto pero o erro persiste, a función non está dispoñible na túa versión de Excel. Neste caso, considere usar unha alternativa TOCOL.

    A matriz é demasiado grande

    Un erro #NUM indica que a matriz non pode caber nunha columna. Un caso típico é cando se refire a columnas ou filas enteiras.

    Non hai suficientes celas baleiras

    Cando se produce un erro #SPILL, comprobe que a columna onde se introduce a fórmula ten suficientes celas baleiras para encher os resultados. Se as celas están visualmente en branco, asegúrese de que non hai espazos nin outros caracteres non imprimibles nelas. Para obter máis información, consulte Como corrixir o erro #SPILL en Excel.

    É así como pode usar a función TOCOL en Excel 365 e solucións alternativas en versións anteriores para transformar unha matriz bidimensional nunha única columna. Grazas por ler e espero verte no noso blog a próxima semana!

    Caderno de prácticas

    Función TOCOL de Excel - exemplos de fórmulas (ficheiro .xlsx)

    Michael Brown é un entusiasta da tecnoloxía dedicada á súa paixón por simplificar procesos complexos mediante ferramentas de software. Con máis dunha década de experiencia na industria tecnolóxica, perfeccionou as súas habilidades en Microsoft Excel e Outlook, así como en Follas de cálculo e Documentos de Google. O blog de Michael está dedicado a compartir o seu coñecemento e experiencia con outros, proporcionando consellos e titoriais fáciles de seguir para mellorar a produtividade e a eficiencia. Tanto se es un profesional experimentado como un principiante, o blog de Michael ofrece valiosas ideas e consellos prácticos para sacar o máximo proveito destas ferramentas de software esenciais.