Estou compilando um banco de dados com informações de endereço comercial, incluindo funcionários importantes de cada empresa. A planilha do Google que eu herdei para este projeto inclui uma coluna para 'equipe principal' (na coluna B), com vários nomes de equipe principal listados na mesma célula, separados por quebras de linha (por exemplo, CHAR (10)). Há um negócio por linha. O número de linhas na célula 'equipe principal' varia linha por linha. Minha planilha inicial é assim:
Preciso fazer o seguinte para otimizar esta planilha:
- divida cada célula de "equipe principal" de várias linhas para que cada nome da equipe principal apareça em sua própria linha. Isso requer que novas linhas sejam inseridas abaixo da linha original.
- duplicar os dados de todas as outras células na linha original (ou seja, das colunas A e C: E), para que cada nova linha contenha os dados completos de cada empresa
- Preciso de um processo automatizado - terei cerca de 1000 empresas para processar, portanto não posso fazer isso com nenhuma etapa manual
A folha deve ficar assim:
O uso =TRANSPOSE(SPLIT(B1,CHAR(10)))
obviamente é apenas parte do caminho - ele não insere novas linhas e não duplica as entradas da coluna circundante. Toda ajuda aceita com gratidão!
Respostas:
Antes de tudo, desculpe pela resposta tardia, mas tenho uma solução para você trabalhar.
Código
Explicado
O script avalia cada linha e, particularmente, a segunda coluna de cada linha (nas matrizes JavaScript são baseadas em zero, portanto, a coluna 2 corresponde ao índice 1 da matriz). Ele divide o conteúdo dessa célula em vários valores e usa o
"\n"
como delimitador (avanço de linha). Depois disso, ele adiciona as informações existentes a uma matriz e apenas os resultados individuais, quando atinge o índice 1 (k == 1)
. A linha recém-preparada é adicionada a outra matriz, retornando para mostrar o resultado.Captura de tela
dados
resultado
Exemplo
Eu criei um arquivo de exemplo para você: células com várias linhas em novas linhas .
Adicione o script em Ferramentas> Editor de scripts e pressione o botão Salvar.
fonte
Uma solução repetível precisará de um script.
Mas, para um esforço único, você pode simplesmente usar
=SPLIT(B3,CHAR(10))
. Isso fornecerá todos os nomes das pessoas nas colunas auxiliares lado a lado, assim:Copiar / Colar especial, valoriza o conteúdo da coluna auxiliar.
E para cada coluna auxiliar usada (espero que não seja muitas, porque espero que você não tenha muitas pessoas em uma empresa), copie e cole manualmente o bloco de linhas no final do bloco atual. (Essa não é uma ótima descrição, mas você consegue entender.)
fonte
Para pessoas que talvez não entendam imediatamente como usar a função personalizada útil na resposta aceita :
Você precisa de mais de uma planilha; no exemplo, as duas planilhas são
DATA
eRESULT
. ARESULT
planilha está vazia até que a consulta seja executada. Você pode ver a consulta que se refere àDATA
planilha na captura de tela de Jacob.Você provavelmente precisará modificar o valor de comparação
k
da linha 8, que se refere à coluna onde seus dados para análise devem ser encontrados. O mesmo número precisará entrar no segundo valor da matriz na linha 4.Pode ser necessário modificar o delimitador na linha 4, atualmente
\n
Para facilitar tudo isso, peguei o mesmo código e extraí o delimitador e a coluna de destino em variáveis definidas na parte superior da função. Como Jacob menciona a contagem da coluna de destino , começa com 0 como o primeiro número.
Referências
fonte