CSV 파일을 두 개 이상 추가하면 옵션을 바꾸는 대로 합친 표가 나타납니다. 이어 붙이기(append)는 모든 파일의 행을 한 표에 쌓습니다. 열은 머리글 이름으로 맞추므로 일부 파일에만 있는 열도 남고, 그 열이 없는 파일의 행은 빈칸이 됩니다. 조인(join)은 스프레드시트의 조회 함수처럼 하나 이상의 키 열로 두 파일을 옆으로 붙이고, 일치한 행 수, 반복되는 키, 그로 인해 늘어난 행 수를 알려 줍니다. 파일은 업로드되지 않고 브라우저 안에서 합쳐집니다.
CSV 파일을 합치는 방법
- 파일을 추가하세요. 파일마다 구분 기호와 인코딩을 감지하고 첫 행을 머리글로 읽습니다. 목록에는 파일별 행 수와 앞쪽 열이 표시되며, 파일을 위아래로 옮겨 순서를 정할 수 있습니다.
- 모든 파일의 행을 차례로 이어 붙이려면 이어 붙이기를, 처음 두 파일의 행을 키로 맞추려면 조인을 고르세요.
- 미리 보기와 그 위의 안내를 확인한 뒤 결과를 CSV로 다운로드하거나, 계속 작업하려면 CSV 편집기에서 여세요.
행은 파일 목록의 순서를 따릅니다. 첫 번째 파일의 모든 행, 이어서 두 번째 파일의 모든 행이 오는 식입니다. 매달 내보낸 파일 여러 개를 합칠 때는 한꺼번에 추가하고 출처 열을 켜 두면, 행마다 어느 파일에서 왔는지 남습니다.
이어 붙이기: 열 구성이 다른 파일 쌓기
이어 붙이기에는 열을 맞추는 방법이 세 가지 있습니다. 파일들이 어떻게 다른지에 맞춰 고르세요.
| 머리글 이름으로 맞추기(기본값) | 결과에는 모든 파일의 머리글이 처음 나온 순서대로 들어갑니다. 해당 열이 없는 파일의 행은 그 자리가 빈 값이 됩니다. 이름이 정확히 같아야 하므로 SKU와 sku는 서로 다른 두 열이 됩니다. |
|---|---|
| 머리글이 똑같아야 함 | 머리글의 이름, 개수, 순서가 다른 첫 파일을 알려 주는 오류와 함께 멈춥니다. 모든 파일이 같은 내보내기에서 나와야 하고, 열 이름이 바뀌었다면 무언가 잘못된 것일 때 쓰세요. |
| 위치로 맞추기 | 1번 열 아래에 1번 열을 놓는 식입니다. 머리글은 열이 가장 많은 파일에서 가져오고, 열이 적은 파일은 끝부분이 빈 값이 됩니다. 쓸 만한 머리글이 없거나, 배치는 같은데 이름만 다른 파일일 때만 쓰세요. |
| 출처 열 추가 | 맨 끝에 각 행의 파일 이름을 담은 열을 추가합니다. 이름을 바꾸지 않으면 source_file이며, 이미 있는 머리글과 같은 이름은 쓸 수 없습니다. |
| 중복 행 제거 | 이어 붙인 뒤 앞의 행과 완전히 같은 행을 모두 지우고, 지운 개수를 알려 줍니다. 처음 나온 행이 남습니다. 대소문자와 공백까지 정확히 같아야 하며 출처 열은 비교하지 않으므로, 두 파일에 있는 같은 행도 중복으로 봅니다. |
위치로 맞추면 한 파일에 열이 더 있거나 순서가 다를 때 값이 엉뚱한 머리글 아래로 들어갑니다. 아래 예시라면 4월 파일의 qty가 name 아래로 갑니다. 파일에 머리글이 있다면 머리글 이름으로 맞추기를 쓰면 이런 일이 없습니다.
조인: 키로 두 파일 결합하기
조인은 목록의 처음 두 파일을 왼쪽과 오른쪽으로 씁니다. 키 열 쌍을 하나 이상 고르세요. 왼쪽은 customer_id, 오른쪽은 id처럼 쌍마다 이름이 달라도 됩니다. 쌍이 여러 개면 모든 쌍이 일치해야 행이 일치합니다.
| 왼쪽 조인(기본값) | 왼쪽의 모든 행을 남기고, 키가 일치한 곳은 오른쪽 열을 채우고 일치하지 않은 곳은 비워 둡니다. |
|---|---|
| 내부 조인 | 키가 오른쪽 파일에 있는 왼쪽 행만 남깁니다. |
| 오른쪽 조인 | 오른쪽의 모든 행을 남깁니다. 일치한 행은 왼쪽 파일 순서로 나오고, 그 뒤에 아무것과도 일치하지 않은 오른쪽 행이 옵니다. |
| 완전 조인 | 두 파일의 모든 행을 남깁니다. 왼쪽 조인 결과 뒤에 아무것과도 일치하지 않은 오른쪽 행이 옵니다. |
| 키의 대소문자와 앞뒤 공백 무시 | C02 와 c02가 일치합니다. 결과에는 왼쪽 파일의 키 텍스트를 씁니다. |
결과에는 왼쪽의 모든 열이 먼저 오고, 이어서 키 열을 뺀 오른쪽 파일의 열이 옵니다. 이미 쓰인 이름의 오른쪽 열에는 total (2)처럼 (2)가 붙고, 이름이 바뀐 열은 안내에 표시됩니다. 아무것과도 일치하지 않은 오른쪽 행은 키를 왼쪽 키 열에 쓰고 나머지 왼쪽 열은 비워 둡니다.
오른쪽 파일에 같은 키가 여러 번 나오면, 일치하는 왼쪽 행은 일치한 횟수만큼 반복됩니다. 안내에는 일치한 행, 왼쪽에만 있는 행, 오른쪽에만 있는 행, 양쪽의 반복 키, 늘어난 행 수가 나오므로, 일대일이어야 할 조회가 그렇지 않을 때 바로 알 수 있습니다.
까다로운 데이터의 처리 방식
- 값은 텍스트로 다루며 적힌 그대로 남으므로
00123의 앞자리 0도 유지됩니다. 키도 텍스트로 비교하므로, 대소문자와 공백을 무시하더라도00123과123은 일치하지 않습니다. - 따옴표 안의 구분 기호, 따옴표, 줄 바꿈은 RFC 4180에 따라 읽고, 다운로드할 때 필요한 곳에 다시 따옴표를 붙입니다.
- 한 파일 안의 빈 머리글은
Column 3, 중복된 머리글은name (2)가 됩니다. 이렇게 만들어진 이름도 머리글 이름으로 맞출 때 다른 이름과 똑같이 쓰입니다. - 파일마다 구분 기호와 인코딩이 달라도 되며, 각각 따로 감지합니다. 다운로드 파일은 쉼표 구분이고, 줄 바꿈 문자와 인코딩은 목록의 첫 파일을 따릅니다. Shift_JIS나 EUC-KR처럼 브라우저가 쓸 수 없는 인코딩은 UTF-8로 저장합니다.
문제 해결
- 이름이 살짝 다른 열이 두 번 나옵니다. 파일마다 머리글 철자가 다릅니다(
Email과email, 또는 끝의 공백). 합치기 전에 CSV 열 매핑으로 한쪽 이름을 바꾸거나, 배치가 같다면 위치로 맞추기를 쓰세요. - 조인 결과가 거의 일치하지 않습니다. 두 파일의 키가 같은 방식으로 적혔는지 확인하세요. 앞자리 0, 접두어, 공백이 모두 차이를 만듭니다. 대소문자와 앞뒤 공백 무시를 켜거나, CSV 정리로 먼저 해당 열의 공백을 지우세요.
- 조인 결과의 행이 왼쪽 파일보다 많습니다. 오른쪽 파일에 같은 키가 반복됩니다. 안내에 반복된 키 수와 그로 인해 늘어난 행 수가 나옵니다. 중복을 지우거나 더 구체적인 키 쌍을 고르세요.
- 합친 표가 브라우저 한도를 넘습니다. 결과는 최대 10만 행, 200만 셀입니다. 먼저 입력 파일을 필터링하거나 한 번에 합치는 파일 수를 줄이세요.
한도와 개인정보 보호
파일 하나는 25 MB, 10만 행, 250열, 200만 셀까지 가능하며, 이어 붙이거나 조인한 결과도 같은 10만 행, 200만 셀로 제한됩니다. 합치기는 스트리밍으로 처리하지 않고 모든 파일을 메모리에 불러옵니다.
파일은 이 탭의 백그라운드 워커에서 읽고 브라우저 안에서 합치며, 서버로 보내지 않습니다. 두 버전을 합치는 대신 무엇이 바뀌었는지 찾으려면 CSV 파일 비교를, 파일 하나를 여러 개로 자르려면 CSV 나누기를 사용하세요.
예시
열 구성이 다른 재고 내보내기 파일 두 개를 출처 열을 켜고 머리글 이름으로 이어 붙인 결과입니다. name과 warehouse는 한 파일에만 있으므로 다른 파일의 행에서는 빈칸이 되고, SKU는 앞자리 0을 유지합니다.
march.csv sku,name,qty 00123,"Desk lamp, brass",4 00456,Shelf,2 april.csv sku,qty,warehouse 00789,10,North 00456,2,
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
자주 묻는 질문
파일을 세 개 이상 조인할 수 있나요?
한 번에는 안 됩니다. 조인은 목록의 처음 두 파일을 씁니다. 결과를 다운로드하거나 연 다음, 그 결과와 다음 파일을 다시 조인하세요. 이어 붙이기에는 이런 제한이 없어 추가한 모든 파일을 쌓습니다.
중복 행 제거는 키 열만 비교하나요?
아니요. 모든 값이 앞의 행과 정확히 같을 때만 지웁니다. ID마다 한 행만 남기려면 결과를 CSV 정리에 넣고 키 열 기준으로 중복을 제거하세요.
위치로 맞추기를 했더니 값이 엉뚱한 머리글 아래로 갔습니다. 왜 그런가요?
위치 모드는 머리글 이름을 무시하고 열이 가장 많은 파일의 머리글을 씁니다. 한 파일에만 있는 열이 있으면 그 뒤의 값이 모두 밀립니다. 머리글 이름으로 맞추기로 바꾸세요.