Ofrezco dos versiones, dependiendo de si las celdas en blanco deben mantenerse. La idea básica es la misma:
- Elija un personaje que no esté contenido en su tabla (por ejemplo, un personaje exótico de Unicode accesible mediante
CHAR
).
- Úselo en el
JOIN
comando para cada una de las tres columnas.
- Concatenar los resultados, agregando el carácter en el medio.
SPLIT
la cadena concatenada por el mismo caracter.
TRANSPOSE
el resultado.
Por ejemplo:
=TRANSPOSE( SPLIT( JOIN(CHAR(57344),A1:A) &CHAR(57344)& JOIN(CHAR(57344),B1:B) &CHAR(57344)& JOIN(CHAR(57344),C1:C), CHAR(57344) ) )
donde para unir / dividir, elegí el carácter CHAR(57344)
, que está designado para uso privado y, por lo tanto, no debe estar presente en ninguna entrada válida.
La fórmula anterior elimina las entradas en blanco , porque esto es lo que SPLIT
hace. Esto puede ser conveniente si sus datos no tienen espacios en blanco: le ahorra la molestia de rastrear dónde está la última fila de datos. Pero otras veces, los espacios en blanco deben conservarse.
Para preservar los espacios en blanco, sigo la respuesta de Jacob Jan Tuinstra, excepto que usé otro Unicode de uso privado en lugar de espacio (quién sabe, tal vez tienes algunas celdas que contienen solo un espacio y quieres conservarlas). Esto implica dos pasos adicionales: después de unir todo como antes, solía SUBSTITUTE
reemplazar CHAR(57344)
por CHAR(57344)&CHAR(57345)
, luego dividir como antes y reemplazar CHAR(57345)
por una cadena vacía.
=TRANSPOSE( ARRAYFORMULA(SUBSTITUTE( SPLIT( SUBSTITUTE(...joins... , CHAR(57344),CHAR(57344)&CHAR(57345)), CHAR(57344) ), CHAR(57345), "")))
El resultado completo se ve así (observe que ahora especifico dónde está la última fila de datos):
=TRANSPOSE( ARRAYFORMULA(SUBSTITUTE( SPLIT( SUBSTITUTE(JOIN(CHAR(57344),A1:A9) &CHAR(57344)& JOIN(CHAR(57344),B1:B9) &CHAR(57344)& JOIN(CHAR(57344),C1:C9), CHAR(57344),CHAR(57344)&CHAR(57345)), CHAR(57344) ), CHAR(57345), "" )))
Una advertencia más: las cadenas en las Hojas de cálculo de Google no pueden superar los 50000 caracteres de longitud. Si sus datos son demasiado grandes para que funcione el enfoque basado en cadenas, use un script ( este es un buen lugar para comenzar).