Ir para a ferramenta
ViewCSV
Sem upload de arquivos

Juntar arquivos CSV: empilhar linhas ou cruzar por coluna

2 arquivos
  1. customers.csv8 linhas · customer_id, name, country, segment
  2. invoices.csv10 linhas · customer_id, invoice_no, total, paid
Como juntar
Resultado
Resultado
#customer_idnamecountrysegmentinvoice_nototalpaid
100301Alice RibeiroBrasilretail···
200302Cecília OliveiraBrasileducation···
300303Arthur CostaBrasilretail···
400304Théo OliveiraBrasilretail···
500305Alice SilvaBrasilbusiness···
600306Laura LimaBrasilbusiness···
700307Heitor RibeiroBrasilbusiness···
800308Maria Clara CostaBrasileducation···
900304···INV-2400463.92true
1000301···INV-2401908.27true
1100306···INV-240242.44true
1200308···INV-2403413.18true
1300309···INV-2404219.38true
1400306···INV-2405372.06true
1500303···INV-2406689.38false
1600306···INV-240795.80true
1700301···INV-2408898.29true
1800304···INV-2409404.27true

18 linhas · 7 colunas

Para juntar arquivos CSV, adicione dois ou mais arquivos e escolha como combiná-los. Empilhar linhas coloca as linhas de todos os arquivos em uma única tabela, associando as colunas pelo nome do cabeçalho: uma coluna que só alguns arquivos têm é mantida e fica vazia nos demais. É o que a maioria das pessoas quer ao juntar exportações mensais ou de várias filiais. Combinar por chave cruza dois arquivos lado a lado por uma ou mais colunas-chave, como um PROCV de planilha, e informa quantas linhas tiveram correspondência, quais chaves se repetem e quantas linhas a mais isso gerou. A tabela juntada é atualizada conforme você muda as opções, e os arquivos são processados no seu navegador, sem upload.

Como juntar arquivos CSV

  1. Adicione os arquivos. Cada um é lido com delimitador e codificação detectados, e a primeira linha vira o cabeçalho. A lista mostra quantas linhas cada arquivo tem e as primeiras colunas; mova os arquivos para cima ou para baixo para definir a ordem.
  2. Escolha empilhar para colocar as linhas de todos os arquivos uma depois da outra, ou combinar por chave para cruzar as linhas dos dois primeiros arquivos.
  3. Confira a prévia e os avisos acima dela; depois baixe o resultado em CSV ou abra no editor de CSV para continuar trabalhando.

As linhas seguem a ordem da lista de arquivos: todas as linhas do primeiro arquivo, depois todas as do segundo, e assim por diante. Para juntar várias exportações mensais, adicione todas de uma vez e ative a coluna com o nome do arquivo, para que cada linha continue indicando de onde veio.

Empilhar: arquivos com colunas diferentes

Ao empilhar, há três jeitos de alinhar as colunas. Escolha o que corresponde à diferença entre os seus arquivos.

Por nome (padrão)O resultado tem todos os cabeçalhos de todos os arquivos, na ordem em que aparecem pela primeira vez. Uma linha de um arquivo que não tem certa coluna fica com valor vazio nela. Os nomes precisam ser idênticos: SKU e sku viram duas colunas.
Exigir as mesmas colunasPara com um erro que indica o primeiro arquivo cujos cabeçalhos diferem em nome, quantidade ou ordem. Use quando todos os arquivos deveriam vir da mesma exportação e uma coluna renomeada indica que algo deu errado.
Por posiçãoA coluna 1 vai embaixo da coluna 1, e assim por diante. Os cabeçalhos vêm do arquivo com mais colunas; os arquivos mais curtos ganham valores vazios no fim. Use apenas quando os arquivos não têm um cabeçalho aproveitável ou têm o mesmo layout com nomes diferentes.
Coluna com o nome do arquivoAcrescenta uma última coluna, chamada source_file se você não mudar o nome, com o nome do arquivo de cada linha. Esse nome não pode coincidir com um cabeçalho já existente.
Remover linhas repetidas exatamenteDepois de empilhar, descarta toda linha idêntica a uma anterior e informa quantas foram removidas. A primeira cópia fica. Os valores precisam ser exatamente iguais, inclusive maiúsculas e espaços; a coluna com o nome do arquivo não entra na comparação, então a mesma linha em dois arquivos conta como repetida.

Associar por posição coloca valores sob o cabeçalho errado quando um arquivo tem uma coluna a mais ou em outra ordem: no exemplo abaixo, o qty de abril cairia em name. Associar por nome evita isso sempre que os arquivos têm cabeçalho.

Combinar por chave: cruzar dois arquivos

A combinação usa os dois primeiros arquivos da lista como primeiro (esquerdo) e segundo (direito). Escolha um ou mais pares de colunas-chave; cada par pode ter nomes diferentes, como customer_id no primeiro arquivo e id no segundo. Com vários pares, uma linha só corresponde quando todos os pares coincidem.

Todas as linhas do primeiro arquivo (left join, padrão)Todas as linhas do primeiro arquivo, com as colunas do segundo preenchidas onde a chave coincidiu e vazias onde não coincidiu.
Só as linhas presentes nos dois (inner join)Apenas as linhas do primeiro arquivo cuja chave existe no segundo.
Todas as linhas do segundo arquivo (right join)Todas as linhas do segundo arquivo: as que coincidiram, na ordem do primeiro arquivo, seguidas das que não coincidiram com nada.
Todas as linhas dos dois arquivos (full join)Todas as linhas dos dois arquivos: o resultado do left join seguido das linhas do segundo arquivo que não coincidiram com nada.
Ignorar maiúsculas/minúsculas e espaços nas pontas das chaves C02 corresponde a c02. O texto da chave gravado no resultado é o do primeiro arquivo.

O resultado tem todas as colunas do primeiro arquivo e, em seguida, as colunas do segundo, exceto as colunas-chave. Uma coluna do segundo arquivo com nome já usado recebe (2), por exemplo total (2), e os avisos listam as colunas renomeadas. Quando uma linha do segundo arquivo não coincide com nada, a chave dela é gravada na coluna-chave do primeiro arquivo e as outras colunas do primeiro ficam vazias.

Se uma chave aparece mais de uma vez no segundo arquivo, cada linha correspondente do primeiro é repetida uma vez por ocorrência. Os avisos contam as linhas combinadas, as que só existem no primeiro e as que só existem no segundo arquivo, as chaves repetidas de cada lado e as linhas a mais criadas. Assim, uma busca que deveria ser um para um mostra na hora quando não é.

Valores, cabeçalhos e delimitadores diferentes

  • Os valores são texto e continuam exatamente como foram escritos, então 00123 mantém os zeros à esquerda. As chaves também são comparadas como texto: 00123 e 123 não coincidem, nem ignorando maiúsculas e espaços.
  • Delimitadores, aspas e quebras de linha entre aspas dentro de um valor são lidos conforme a RFC 4180 e voltam a ficar entre aspas no download quando necessário.
  • Dentro de um arquivo, um cabeçalho em branco vira Column 3 e um repetido vira name (2). Esses nomes gerados entram na associação por nome como qualquer outro.
  • Os arquivos podem usar delimitadores e codificações diferentes; cada um é detectado separadamente. O download é separado por vírgula, e as quebras de linha e a codificação seguem o primeiro arquivo da lista. Codificações que o navegador não consegue gravar, como Shift_JIS, são salvas em UTF-8.

Problemas ao empilhar ou cruzar arquivos

  • Colunas aparecem duas vezes com nomes quase iguais. Os arquivos escrevem um cabeçalho de jeitos diferentes (Email e email, ou com um espaço no fim). Renomeie um deles em Renomear e reordenar colunas do CSV antes de juntar ou, se os layouts forem idênticos, associe por posição.
  • A combinação por chave quase não encontrou correspondências. Confira se as chaves estão escritas do mesmo jeito nos dois arquivos: zeros à esquerda, prefixos e espaços fazem diferença. Ative a opção de ignorar maiúsculas/minúsculas e espaços nas pontas ou tire os espaços da coluna antes com Limpar dados do CSV.
  • O resultado tem mais linhas do que o primeiro arquivo. O segundo arquivo repete uma chave; os avisos mostram quantas chaves se repetem e quantas linhas a mais elas criaram. Remova as duplicadas ou escolha um par de chaves mais específico.
  • A tabela unificada passa do limite do navegador. O resultado pode ter no máximo 100.000 linhas e 2 milhões de células. Filtre os arquivos de entrada antes ou junte menos arquivos de cada vez.

Limites da junção e privacidade

Cada arquivo pode ter até 25 MB, 100.000 linhas, 250 colunas e 2 milhões de células, e o resultado empilhado ou combinado tem o mesmo teto de 100.000 linhas e 2 milhões de células. A junção não funciona em streaming: todos os arquivos são carregados na memória.

Os arquivos são lidos por um worker em segundo plano nesta aba e juntados no seu navegador. Eles nunca são enviados a um servidor. Para ver o que mudou entre duas versões de um arquivo, em vez de juntá-las, use Comparar arquivos CSV; para cortar um arquivo em vários, use Dividir arquivos CSV.

Exemplo: empilhar dois arquivos de estoque com colunas diferentes

Duas exportações de estoque com colunas diferentes, empilhadas por nome com a coluna do nome do arquivo ativada. name e warehouse existem em só um dos arquivos, então as linhas do outro ficam vazias nessas colunas, e os SKUs mantêm os zeros à esquerda.

CSV
march.csv
sku,name,qty
00123,"Desk lamp, brass",4
00456,Shelf,2

april.csv
sku,qty,warehouse
00789,10,North
00456,2,
merged.csv
sku,name,qty,warehouse,source_file
00123,"Desk lamp, brass",4,,march.csv
00456,Shelf,2,,march.csv
00789,,10,North,april.csv
00456,,2,,april.csv

Perguntas frequentes

Dá para combinar mais de dois arquivos por chave?

Não em uma única etapa. A combinação por chave usa os dois primeiros arquivos da lista. Baixe ou abra o resultado e depois combine-o com o próximo arquivo. Empilhar não tem esse limite e junta todos os arquivos que você adicionar.

Remover linhas repetidas compara só uma coluna-chave?

Não. Uma linha só é removida quando todos os valores são exatamente iguais aos de uma linha anterior. Para manter uma linha por ID, passe o resultado por Limpar dados do CSV e remova as duplicadas por coluna-chave lá.

Por que a associação por posição colocou valores sob o cabeçalho errado?

O modo por posição ignora os nomes dos cabeçalhos e usa os do arquivo com mais colunas. Se um arquivo tem uma coluna que os outros não têm, todos os valores seguintes se deslocam. Mude para a associação por nome.

Padrões e referências