Tabla de contenido
Una forma rápida de convertir un rango de celdas en una única fila con la ayuda de la función TORO función.
Microsoft Excel 365 ha introducido varias funciones nuevas para realizar diversas manipulaciones con matrices. Con TOROW, puede realizar transformaciones de rango a fila en un abrir y cerrar de ojos. Aquí tiene una lista de tareas que puede realizar esta nueva función:
Función TOROW de Excel
La función TOROW en Excel se utiliza para convertir una matriz o rango de celdas en una fila.
La función toma un total de tres argumentos, de los cuales sólo se requiere el primero.
TOROW(array, [ignore], [scan_by_column])Dónde:
Matriz (obligatorio) - una matriz o rango para transformar en una sola fila.
Ignore (opcional) - determina si se ignoran los espacios en blanco y/o los errores. Puede tomar uno de estos valores:
- 0 u omitido (por defecto) - mantener todos los valores
- 1 - ignorar los espacios en blanco
- 2 - ignorar errores
- 3 - ignorar los espacios en blanco y los errores
Escanear_por_columna (opcional) - define cómo escanear el array:
- FALSE u omitido (por defecto) - escanear el array horizontalmente por filas.
- TRUE - escanea el array verticalmente por columnas.
Consejos:
- Para transformar una matriz en una sola columna, utilice la función TOCOL.
- Para realizar la transformación inversa de fila a matriz, utilice la función WRAPCOLS para envolver en columnas o la función WRAPROWS para envolver la matriz en filas.
- Para convertir filas en columnas, utilice la función TRANSPOSE.
disponibilidad de TOROW
TOROW es una función nueva, que solo se admite en Excel para Microsoft 365 (para Windows y Mac) y Excel para la web.
Fórmula TOROW básica en Excel
Para realizar una transformación simple de rango a fila, utilice la fórmula TOROW en su forma básica. Para ello, sólo tiene que definir el primer argumento ( matriz ).
Por ejemplo, para convertir una matriz bidimensional formada por 3 columnas y 3 filas en una única fila, la fórmula es:
=TOROW(A3:C6)
Se introduce la fórmula en una sola celda (A10 en nuestro caso), y automáticamente se derrama en tantas celdas como sean necesarias para contener todos los resultados. En términos de Excel, el rango de salida rodeado por un fino borde azul se denomina rango de derrame.
Cómo funciona esta fórmula:
En primer lugar, se transforma un rango de celdas suministrado en una matriz bidimensional. Observe las columnas delimitadas por comas y las filas separadas por punto y coma:
{"Apple","Banana","Cherry";1,2,3;4,5,6;7,8,9}
A continuación, la función TOROW lee la matriz de izquierda a derecha y la convierte en una matriz horizontal unidimensional:
{"Apple","Banana","Cherry",1,2,3,4,5,6,7,8,9}
El resultado va a la celda A10, desde donde se derrama a la celda vecina de la derecha.
Transformar rango en fila ignorando espacios en blanco y errores
Por defecto, la función TOROW conserva todos los valores de la matriz de origen, incluidas las celdas vacías y los errores. En la salida, los valores cero aparecen en el lugar de las celdas vacías, lo que puede resultar bastante confuso.
A excluir espacios en blanco , fije el ignore a 1:
=TOROW(A3:C5, 1)
A ignorar errores , fije el ignore a 2:
=TOROW(A3:C5, 2)
Para saltarse ambos, espacios en blanco y errores utilice 3 para el ignore argumento:
=TOROW(A3:C5, 3)
La siguiente imagen muestra los tres escenarios en acción:
Leer matriz horizontal o verticalmente
Con el comportamiento por defecto, la función TOROW procesa el array horizontalmente de izquierda a derecha. Para escanear los valores por columnas de arriba a abajo, se establece el 3er argumento ( escanear_por_columna ) a TRUE o 1.
Por ejemplo, para leer el rango de origen por fila, la fórmula en E3 es:
=TOROW(A3:C5)
Para escanear el rango por columna, la fórmula en E8 es:
=TOROW(A3:C5, ,TRUE)
En ambos casos, las matrices resultantes tienen el mismo tamaño, pero los valores están dispuestos en un orden diferente.
Combinar varios rangos en una fila
Para combinar varios rangos no adyacentes en una única fila, primero hay que apilarlos horizontal o verticalmente en una única matriz con la ayuda de HSTACK o VSTACK, respectivamente, y luego utilizar la función TOROW para convertir la matriz combinada en una fila.
Dependiendo de su lógica de negocio, una de las siguientes fórmulas realizará la tarea.
Apilar matrices horizontalmente y convertir por filas
Con el primer rango en A3:C4 y el segundo rango en A8:C9, la siguiente fórmula apilará los dos rangos horizontalmente en un único array, y luego lo transformará en una fila leyendo los valores de izquierda a derecha. El resultado está en E3 en la imagen de abajo.
=TOROW(HSTACK(A3:C4, A8:C9))
Apilar matrices horizontalmente y convertir por columnas
Para leer la matriz apilada verticalmente de arriba a abajo, se establece el 3er argumento de TOROW a TRUE como se muestra en E5 en la imagen de abajo:
=TOROW(HSTACK(A3:C4, A8:C9), ,TRUE)
Apilar matrices verticalmente y convertir por filas
Para anexar cada matriz subsiguiente a la parte inferior de la matriz anterior y leer la matriz combinada horizontalmente, la fórmula en E12 es:
=TOROW(VSTACK(A3:C4, A8:C9))
Apilar matrices verticalmente y convertir por columnas
Para añadir cada matriz posterior a la parte inferior de la anterior y escanear la matriz combinada verticalmente, la fórmula es:
=TOROW(VSTACK(A3:C4, A8:C9), ,TRUE)
Para comprender mejor la lógica, observe el diferente orden de los valores en las matrices resultantes:
Extraer valores únicos de un rango en una fila
A partir de Microsoft Excel 2016, tenemos una función maravillosa, llamada UNIQUE, que puede obtener fácilmente valores únicos de una sola columna o fila. Sin embargo, no puede manejar matrices de varias columnas. Para superar esta limitación, utilice las funciones UNIQUE y TOROW juntas.
Por ejemplo, para extraer todos los valores diferentes (distintos) del intervalo A2:C7 y colocar los resultados en una fila, la fórmula es:
=UNIQUE(TOROW(A2:C7), TRUE)
Como TOROW devuelve una matriz horizontal unidimensional, establecemos el 2º ( by_col ) de UNIQUE a TRUE para comparar las columnas entre sí.
En caso de que desee que los resultados se ordenen alfabéticamente, envuelva la fórmula anterior en la función SORT:
=SORT(UNIQUE(TOROW(A2:C7), TRUE), , ,TRUE )
Como en el caso de UNIQUE, el by_col de SORT también se establece en TRUE.
TOROW alternativa para Excel 365 - 2010
En las versiones de Excel en las que la función TOROW no está disponible, puede transformar un rango en una sola fila utilizando una combinación de algunas funciones diferentes que funcionan en versiones anteriores. Estas soluciones son más complejas, pero funcionan.
Para escanear el rango horizontalmente, la fórmula genérica es:
ÍNDICE( gama COCIENTE(COLUMNA (A1)-1, COLUMNAS( gama ))+1, MOD(COLUMNA(A1)-1, COLUMNAS( gama ))+1)Para escanear el rango verticalmente, la fórmula genérica es:
ÍNDICE( gama MOD(COLUMNA(A1)-1, COLUMNAS( gama ))+1, COCIENTE(COLUMNA (A1)-1, COLUMNAS( gama ))+1)Para nuestro conjunto de datos de muestra en A3:C5, las fórmulas adoptan esta forma:
Para escanear el rango por filas:
=ÍNDICE($A$3:$C$5, COCIENTE(COLUMNA(A1)-1, COLUMNAS($A$3:$C$5))+1, MOD(COLUMNA(A1)-1, COLUMNAS($A$3:$C$5))+1)
Esta fórmula es una alternativa a la función TOROW con el 3er argumento fijado en FALSE u omitido:
=TOROW(A3:C5)
Para escanear el rango por columnas:
=ÍNDICE($A$3:$C$5, MOD(COLUMNA(A1)-1, COLUMNAS($A$3:$C$5))+1, COCIENTE(COLUMNA(A1)-1, COLUMNAS($A$3:$C$5))+1)
Esta fórmula es equivalente a la función TOROW con el tercer argumento ajustado a TRUE:
=TOROW(A3:C5, ,TRUE)
Tenga en cuenta que, a diferencia de la función TOROW de matriz dinámica, estas fórmulas tradicionales deben introducirse en cada celda en la que desee que aparezcan los resultados. En nuestro caso, la primera fórmula (por fila) va a E3 y se copia a través de M3. La segunda fórmula (por columna) va a E8 y se arrastra a través de M8.
Para que las fórmulas se copien correctamente, bloqueamos el rango utilizando referencias absolutas ($A$3:$C$5). Un rango con nombre también servirá.
Si has copiado las fórmulas en más celdas de las necesarias, aparecerá un error #REF! en las celdas "extra". Para solucionarlo, envuelve tu fórmula en la función IFERROR de la siguiente manera:
=IFERROR(INDEX($A$3:$C$5, COCIENTE(COLUMNA(A1)-1, COLUMNAS($A$3:$C$5))+1, MOD(COLUMNA(A1)-1, COLUMNAS($A$3:$C$5))+1), "")
Cómo funcionan estas fórmulas
A continuación se detalla la primera fórmula que ordena los valores por filas:
=ÍNDICE($A$3:$C$5, COCIENTE(COLUMNA(A1)-1, COLUMNAS($A$3:$C$5))+1, MOD(COLUMNA(A1)-1, COLUMNAS($A$3:$C$5))+1)
En el corazón de la fórmula, utilizamos la función ÍNDICE para obtener el valor de una celda en función de su posición relativa en el rango.
En número de fila se calcula mediante esta fórmula:
COCIENTE(COLUMNA(A1)-1, COLUMNAS($A$3:$C$5))+1
La idea es producir una secuencia numérica repetitiva como 1,1,1,2,2,2,3,3,3, ... donde cada número se repite tantas veces como columnas hay en el rango fuente. Y así es como lo hacemos:
QUOTIENT devuelve la parte entera de una división.
Para numerador utilizamos COLUMN(A1)-1, que devuelve un número de serie desde 0 en la primera celda donde se introduce la fórmula hasta n (número total de valores en el rango menos 1) en la última celda donde se introdujo la fórmula. En este ejemplo, tenemos 0 en E2 y 8 en M3.
Para denominador Esto devuelve un número constante igual al número de columnas del rango (3 en nuestro caso).
Como resultado, la función CUOTIENTAS devuelve 0 en las 3 primeras celdas (E3:G3), a las que sumamos 1, por lo que el número de fila es 1.
Para las 3 celdas siguientes (H3:J3), QUOTIENT devuelve 1, y +1 da el número de fila 2. Y así sucesivamente.
Para calcular el número de columna se construye una secuencia numérica adecuada utilizando la función MOD:
MOD(COLUMNA(A1)-1, COLUMNAS($A$3:$C$5))+1
Como hay 3 columnas en nuestro rango, la secuencia debe ser: 1,2,3,1,2,3,...
La función MOD devuelve el resto tras la división.
En E3, MOD(COLUMNA(A1)-1, COLUMNA($A$3:$C$5))+
se convierte en
MOD(1-1, 3)+1)
y devuelve 1.
En F3, MOD(COLUMNA(B1)-1, COLUMNA($A$3:$C$5))+
se convierte en
MOD(2-1, 3)+1)
y devuelve 2.
Una vez establecidos los números de fila y columna, INDEX obtiene fácilmente el valor en la intersección de esa fila y columna.
En E3, INDEX($A$3:$C$5, 1, 1) devuelve un valor de la 1ª fila y la 1ª columna del rango referenciado, es decir, de la celda A3.
En F3, INDEX($A$3:$C$5, 1, 2) devuelve un valor de la 1ª fila y la 2ª columna, es decir, de la celda B3.
Y así sucesivamente.
La segunda fórmula, que recorre el rango por columnas, funciona de forma similar. La diferencia es que utilizamos MOD para calcular el número de fila y CUOTA para averiguar el número de columna.
La función TOROW no funciona
Si la función TOROW produce un error, lo más probable es que se deba a uno de estos motivos:
#Error
Con la mayoría de las funciones de Excel, un error #NAME? es una clara indicación de que el nombre de la función está mal escrito. Con TOROW, también puede significar que la función no está disponible en su Excel. Si su versión de Excel es distinta de 365, intente utilizar una alternativa a TOROW.
Error #NUM
Un error #NUM indica que la matriz devuelta no puede caber en una fila. Lo más frecuente es que esto ocurra cuando se hace referencia a columnas y/o filas enteras en lugar de a un rango más pequeño.
Error #SPILL
En la mayoría de los casos, un error #SPILL sugiere que la fila en la que ha introducido la fórmula no tiene suficientes celdas en blanco en las que verter los resultados. Si las celdas vecinas están visualmente vacías, asegúrese de que no hay espacios ni otros caracteres no imprimibles en ellas. Para obtener más información, consulte Qué significa el error #SPILL en Excel.
Así es como se utiliza la función TOROW en Excel para convertir una matriz o rango de 2 dimensiones en una sola fila. Gracias por leer y ¡espero verte en nuestro blog la semana que viene!
Cuaderno de prácticas para descargar
Función TOROW de Excel - ejemplos de fórmulas (archivo .xlsx)