Estoy tratando de usar las funciones SPLIT
y JOIN
en las Hojas de cálculo de Google (la nueva versión) para manipular algunos datos, y estoy teniendo problemas porque SPLIT
no está preservando las entradas en blanco.
La fuente de datos se configura así, esencialmente:
| A B C D
-----------------------
1 | q 5 r 2
2 | s t 4
3 | u 8 v
4 | w 3 x 6
(Las entradas en blanco en este conjunto de datos representan "ninguna medición", que es distinta de una medición de 0
)
En las columnas A
y C
obtengo el resultado que quiero usando la fórmula:
=SPLIT(JOIN("~",A1:A4,C1:C4),"~")
Eso produce una fila que va, como se esperaba q
s
u
w
r
t
v
x
, cada uno en su propia celda.
Sin embargo, este método no funciona en columnas B
y D
. JOIN
funciona como se esperaba, dando la salida:
5~~8~3~2~4~~6
SPLIT
Sin embargo, realizar esa salida da como resultado un problema: me quedo con 5
8
3
2
4
6
, sin celdas vacías entre 5
y 8
o entre 4
y 6
, lo que significa que los pares se dividen (por ejemplo, s
y v
deberían corresponder a celdas vacías, pero en su lugar w
y x
hacer). El problema parece ser que SPLIT
se interpreta ~~
como un delimitador único, en lugar de dos delimitadores con una entrada nula entre ellos.
¿Alguien sabe cómo preservar las entradas en blanco en este tipo de escenario?
El resultado deseado se vería así
q s u w r t v x
5 8 3 2 4 6
fuente
IF()
para convertir automáticamente los campos vacíos en espacios.=ARRAYFORMULA(IF(ISBLANK(B1:B4)," ",B1:B4))
para hacer un conjunto ficticio de columnas con "" en las celdas en blanco, que luego se usan paraSPLIT
yJOIN
. Sin embargo, todavía espero que alguien tenga una solución más elegante: esto agrega un montón de cosas adicionales a mi documento, y todavía necesita que actualice los números de fila en algunos lugares diferentes a medida que se agregan más mediciones al conjunto de datos. (¡Gracias a AI E. por al menos permitirme analizar los datos por ahora!)Respuestas:
Prueba la siguiente solución.
Fórmula
Explicado
Ya nos mostró que la
SPLIT
función ignora las celdas vacías, por lo tanto eligen esta cadena como delimitador:" ,"
. El resultado intermedio de laJOIN
función se ve así:Elijo el delimitador para la
SPLIT
función de ser la siguiente:","
. El resultado intermedio de laSPLIT
función se ve así:Ahora, sin embargo, tenemos que lidiar con los espacios en blanco adicionales agregados. Por lo tanto, utilicé la
TRIM
función para eliminar todos los espacios en blanco al final o al final (en combinación conARRAYFORMULA
). Compare losLEN
valores de cada resultado intermedio.Resultado
Ejemplo
He creado un archivo de ejemplo para usted: SPLIT para preservar celdas en blanco
fuente
Prueba la siguiente solución.
Código
Uso
Agregue tantos rangos a la función como desee y se procesarán. Agregue este pequeño script al editor de script de su hoja de cálculo (Herramientas> Editor de script; presione el botón Guardar).
Ejemplo
He creado un archivo de ejemplo para usted: SPLIT para preservar celdas en blanco
fuente
Respuesta corta
La siguiente fórmula devuelve el resultado deseado.
Respuesta extendida
Esta respuesta se centra en proporcionar una forma de obtener el resultado deseado en lugar de discutir cómo hacer que el enfoque elegido funcione.
El problema XY
El OP quiere obtener X y piensa que Y debería devolver ese resultado. Este enfoque es problemático porque Y tiene algunas advertencias. Este podría ser un problema importante ya que el OP pregunta sobre cómo hacer que Y funcione en lugar de pedir una forma de obtener X, pero no es tan grande porque proporciona el contexto y el resultado deseado.
Solución
Google Sheets es capaz de manejar resultados de valores múltiples de una manera muy simple desde el punto de vista de los usuarios finales. Por otro lado, permite utilizar una notación especial para permitir a los usuarios finales definir matrices.
Las características anteriores permiten obtener el resultado esperado sin el uso de las funciones SPLIT () y JOIN () y sin las advertencias inherentes a ellas.
Explicación de la fórmula
Es una matriz de 2 X 8 hecha por dos matrices / rangos de 2 X 4. El punto y coma (
;
) se utiliza suponiendo que el separador decimal de la hoja de cálculo es un punto (.
). Si el separador decimal fuera una coma, reemplácelo por una barra diagonal inversa (\
).Convierte la matriz 2 X 8 en una matriz 8 X 2.
Una de las ventajas de este método es que no requiere un manejo especial de las celdas en blanco. Otras ventajas son que es una fórmula muy compacta y es muy fácil de adaptar.
Referencias
fuente
Si se une y hace que el delimitador sea "," básicamente una coma con un espacio anterior, conservará automáticamente ese espacio cuando lo divida nuevamente:
fuente