Estou tentando usar as funções SPLIT
e JOIN
no Planilhas Google (a nova versão) para manipular alguns dados e estou tendo problemas porque SPLIT
não preserva entradas em branco.
A fonte de dados é configurada assim, essencialmente:
| A B C D
-----------------------
1 | q 5 r 2
2 | s t 4
3 | u 8 v
4 | w 3 x 6
(As entradas em branco neste conjunto de dados representam "nenhuma medida", que é diferente de uma medida de 0
)
Nas colunas A
e C
, estou obtendo o resultado desejado usando a fórmula:
=SPLIT(JOIN("~",A1:A4,C1:C4),"~")
Isso produz uma linha que passa, como esperado q
s
u
w
r
t
v
x
, cada uma em sua própria célula.
No entanto, esse método não funciona em colunas B
e D
. JOIN
funciona como esperado, fornecendo a saída:
5~~8~3~2~4~~6
Realizando SPLIT
em que a saída, no entanto, resulta em um problema: Eu sou deixado com 5
8
3
2
4
6
, sem células vazios entre 5
e 8
ou entre 4
e 6
, o que significa que os pares são divididos (por exemplo, s
e v
deve corresponder ao esvaziar células, mas em vez disso w
e x
fazer). O problema parece ser SPLIT
interpretar ~~
como um único delimitador, e não como dois delimitadores com uma entrada nula entre eles.
Alguém sabe como preservar entradas em branco nesse tipo de cenário?
A saída desejada ficaria assim
q s u w r t v x
5 8 3 2 4 6
fonte
IF()
para converter automaticamente campos vazios em espaços.=ARRAYFORMULA(IF(ISBLANK(B1:B4)," ",B1:B4))
para criar um conjunto fictício de colunas com "" nas células em branco, que são usadas paraSPLIT
eJOIN
. Porém, ainda espero que alguém tenha uma solução mais elegante: isso adiciona um monte de coisas extras ao meu documento e ainda é necessário que eu atualize os números das linhas em alguns lugares diferentes, à medida que mais medidas são adicionadas ao conjunto de dados. (Graças a AI E., pelo menos, deixar-me triturar os dados por agora!)Respostas:
Tente a seguinte solução.
Fórmula
Explicado
Você já nos mostrou que a
SPLIT
função ignora células vazias, portanto, eu escolher essa string como delimitador:" ,"
. O resultado intermediário daJOIN
função é assim:I escolher o delimitador para a
SPLIT
função a ser esta:","
. O resultado intermediário daSPLIT
função é assim:Agora, no entanto, temos que lidar com os espaços em branco extras. Portanto, usei a
TRIM
função para remover todos os espaços em branco à direita ou à esquerda (em combinação com oARRAYFORMULA
). Compare osLEN
valores de cada resultado intermediário.Resultado
Exemplo
Eu criei um arquivo de exemplo para você: SPLIT para preservar células em branco
fonte
Tente a seguinte solução.
Código
Uso
Adicione quantos intervalos desejar à função e eles serão processados. Adicione esse pequeno script ao editor de scripts da sua planilha (Ferramentas> Editor de scripts; pressione o botão Salvar).
Exemplo
Eu criei um arquivo de exemplo para você: SPLIT para preservar células em branco
fonte
Resposta curta
A fórmula a seguir retorna o resultado desejado.
Resposta estendida
Essa resposta é focada em fornecer uma maneira de obter o resultado desejado, em vez de discutir como fazer a abordagem escolhida funcionar.
O problema XY
O OP deseja obter X e acha que Y deve retornar esse resultado. Essa abordagem é problemática porque Y tem algumas ressalvas. Isso pode ser um problema maior, já que o OP pergunta sobre como fazer Y funcionar, em vez de pedir uma maneira de obter o X, mas não é tão grande porque fornece contexto e o resultado desejado.
Solução
O Planilhas Google pode lidar com resultados com vários valores de uma maneira muito simples do ponto de vista dos usuários finais. Por outro lado, permite usar uma notação especial para permitir que os usuários finais definam matrizes.
Os recursos acima possibilitam obter o resultado esperado sem o uso das funções SPLIT () e JOIN () e sem as advertências inerentes a elas.
Explicação da fórmula
É uma matriz 2 X 8 feita por duas matrizes / faixas 2 X 4. O ponto-e-vírgula (
;
) é usado assumindo que o separador decimal da planilha é um ponto (.
). Se o separador decimal fosse uma vírgula, substitua-o por uma barra invertida (\
).Converte a matriz 2 X 8 em uma matriz 8 X 2.
Uma das vantagens desse método é que ele não requer tratamento especial de células em branco. Outras vantagens são que é uma fórmula muito compacta e muito fácil de adaptar.
Referências
fonte
Se você ingressar e fazer com que o delimitador seja "," basicamente uma vírgula com um espaço anterior, ele preservará automaticamente esse espaço quando você o dividir novamente:
fonte