Tengo una hoja de Google vinculada a un formulario que recopila respuestas de tres personas diferentes sobre el mismo tema usando el mismo formulario y editando tres veces. Esto crea una hoja que contiene tres columnas que indican dónde se encuentran las tres personas.
Necesito producir una vista / consulta que tome esas tres columnas y las ponga 'debajo' una de la otra, y no una al lado de la otra. En una base de datos, habría hecho algo como la consulta a continuación, llamé a mi 'hoja' tblMain y dije las cuatro columnas relevantes (también necesito el ID del asunto).
tblMain:
ID RALocation RBLocation RCLocation
Consulta:
Select ID, RALocation as Location, 'RA' as Role from tblMain
Union
Select ID, RBLocation as Location, 'RB' as Role from tblMain
Union
Select ID, RCLocation as Location, 'RC' as Role from tblMain
¿Alguien sabe si hay una manera de hacerlo en Google Sheets? No me importa construir más de una hoja y luego combinarlas al final, pero estoy un poco atascado en cómo hacer esto.
Respuestas:
Ofrezco dos versiones, dependiendo de si las celdas en blanco deben mantenerse. La idea básica es la misma:
CHAR
).JOIN
comando para cada una de las tres columnas.SPLIT
la cadena concatenada por el mismo caracter.TRANSPOSE
el resultado.Por ejemplo:
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
reemplazarCHAR(57344)
porCHAR(57344)&CHAR(57345)
, luego dividir como antes y reemplazarCHAR(57345)
por una cadena vacía.El resultado completo se ve así (observe que ahora especifico dónde está la última fila de datos):
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).
fuente
Es posible hacer una unión en la hoja de cálculo de Google muy fácilmente hoy en día con esta fórmula:
Ver más información en la Ayuda de Google Docs: Uso de matrices en Hojas de cálculo de Google
fuente
Respuesta corta
Google Sheets es una herramienta muy poderosa que tiene varias alternativas para lograr un resultado similar a UNION-SELECT.
Alternativas
Arrays integrados
Una alternativa para usar la forma SPLIT-TRANSPOSE-JOIN-CHAR es usar matrices incrustadas. Una ventaja de este método es que no requiere construir / deconstruir cadenas, por lo que el límite del número de caracteres no es relevante.
Filtración
Lo anterior podría usarse en combinación con FILTER () para aquellos casos que requieren que el filtrado tenga un comportamiento similar de UNION-SELECT. Ejemplo
También podría usarse en combinación con QUERY () pero sus resultados incluyen una línea de encabezados. Para obtener información sobre cómo deshacerse de los encabezados, consulte Deshacerse de la fila como resultado de la consulta de Hojas de cálculo de Google .
Cómo crear una columna de valores
Use TRANSPOSE-SPLIT-REPT para crear una columna de valores.
También QUERY () podría usarse para crear una columna de valores, pero eliminar la fila de encabezados podría hacer que la fórmula sea más compleja. Úselo solo si las limitaciones de longitud de la cadena causan problemas.
Solución utilizando matrices integradas y TRANSPOSE-SPLIT-REPT
Suponga que el rango tblMain es A1: D7, donde A1: D1 son los encabezados de la tabla y los datos están en A2: D7.
Referencias
Anexar matrices de hojas de cálculo de Google - StackOverflow
fuente