Mesclando várias versões da mesma planilha do Excel

0

Então, aqui está a situação:

Eu tenho várias versões da mesma planilha - cada uma tem os mesmos rótulos de linha e coluna.

A diferença entre quaisquer duas planilhas fornecidas é que os dados em uma planilha não devem estar no outro (mas, às vezes, podem acontecer).

Existe alguma maneira de mesclar todas elas em uma "cópia mestre" (ou apenas uma versão em branco) da planilha? (basicamente, usando os dados de várias versões dessa planilha para preencher a principal)

Copiar e colar é extremamente tedioso e não permite copiar blocos de linhas SE a numeração de linhas não for contígua. (Por exemplo, as linhas 1, 2, 3, 6 estão em um bloco, mas as linhas 4 e 5 simplesmente não existem.)

Idéias? Pesquisando não encontrou nada que parecesse diretamente relevante para esse problema.

    
por GrinReaper 02.07.2013 / 17:32

2 respostas

1

De aqui :

To merge Microsoft Excel files together, it is best to save them as CSV files first. Open the Excel files and in the menu bar, click File, Save As. In the Save as type drop-down list, select CSV (comma delimited) from the list.

Do this for each Excel file you want to merge, then place all the CSV files in the same folder. For ease, place them in a folder in the root of the C: drive (e.g. c:\csvfiles).

Open the Windows command prompt and navigate to the folder containing the CSV files. Type dir to view the files in the folder and ensure all the files are there.

Type in the below command to merge all CSV files in the folder into a new CSV file titled "newfile.csv" (any name could be used).

copy *.csv newfile.csv

     

Após a criação do novo arquivo, abra o novo arquivo CSV na Microsoft   Excel e salve-o como um arquivo do Excel.

    
por 02.07.2013 / 17:44
1

Não conheço uma maneira de fazer isso com o Excel. Se você salvar como um arquivo CSV, isso é muito fácil de fazer em R .

file1 <- read.csv("file1.csv", header=TRUE, nrows=50000) # read the file into memory
file2 <- read.csv("file2.csv", header=TRUE, nrows=50000)
file3 <- read.csv("file3.csv", header=TRUE, nrows=50000)

merge12 <- merge(file1, file2, all=TRUE)                 # merge the files
final <- merge(merge12, file3, all=TRUE)

write.csv(final, "merged-data.csv", quote=FALSE, row.names=FALSE) # save the output as CSV

Quando você tiver a saída CSV, poderá importar de volta para o Excel, salvar como XLSX e estará no caminho.

Nas declarações read.csv() , nrows é uma maneira de limitar a quantidade de memória alocada para esses dados. Eu costumo arredondar para os próximos 1.000 (então se o seu arquivo tiver 1.200 linhas, eu colocaria 2.000). Isso não é necessário, mas acho que ajuda no desempenho do R se você estiver trabalhando com muitos dados.

    
por 02.07.2013 / 18:00