mygems

Excel 없이 CSV 파일의 열 합계 구하는 방법

Excel 없이 CSV 열의 합계, 평균, 개수와 카테고리별 합계를 구합니다. 터미널, Sheets, 휴대폰용 한 줄 방법.

작성: mygems ·

열 합계를 구하는 일은 CSV로 가장 흔히 하는 작업이고, 답은 대개 파일을 연 프로그램에서 한 번의 클릭이면 나옵니다. 문제는 틀린 합계가 맞는 합계와 똑같이 보인다는 점입니다. 통화 기호, 내보내기 과정에서 맨 아래에 붙은 합계 행, 수백 줄의 중복만 있어도 합계는 어긋나지만, 화면에는 그걸 알려 주는 것이 아무것도 없습니다.

빠른 답

  • Excel 또는 Sheets: 열을 선택합니다. 합계는 아래쪽 상태 표시줄에 나옵니다.
  • 카테고리별: 피벗 테이블 또는 SUMIF를 씁니다.
  • 명령줄: csvstat, mlr, 또는 DuckDB 쿼리 한 줄. 아래에서 설명합니다.
  • 휴대폰: 선택 영역 통계를 보여 주는 CSV 앱에서 열을 선택합니다.
  • 매번: 숫자의 개수와 비어 있지 않은 셀의 개수를 비교합니다. 다르면 더해지지 않은 값이 있다는 뜻입니다.

한 번의 클릭으로 합계

Excel에서는 열 문자를 클릭합니다. 아래쪽 상태 표시줄에 평균, 개수, 합계가 표시됩니다. 상태 표시줄을 마우스 오른쪽 버튼으로 클릭하면 최소값, 최대값, 숫자 셀 개수를 추가할 수 있습니다.

Google Sheets에서는 열을 선택하면 오른쪽 아래에 합계가 나타납니다. 클릭하면 평균, 개수, 최소, 최대로 바꿀 수 있습니다.

대부분의 오류를 잡아내는 확인법: 개수(비어 있지 않은 셀)와 숫자 셀 개수를 비교합니다. 금액이 5,000개인 열이라면 둘 다 5,000이어야 합니다. 숫자 셀 개수가 4,870이라면 130개 셀은 텍스트이고, 합계에서 빠져 있는 것입니다.

수식으로

=SUM(D:D)
=SUMIF(B:B, "Travel", D:D)
=SUMIFS(D:D, B:B, "Travel", C:C, ">=2026-01-01")

SUMIF는 다른 열이 조건에 맞는 행만 합산합니다. SUMIFS는 조건을 원하는 만큼 받습니다.

카테고리별 합계

'카테고리별 총지출'은 카테고리마다 수식을 쓰는 것이 아니라 피벗 테이블로 구합니다.

  • Excel: 삽입 → 피벗 테이블에서 카테고리를 행으로, 금액을 값으로 끕니다. 기본값은 합계입니다. 개수로 나온다면 그 열은 텍스트입니다(아래 참고).
  • Sheets: 삽입 → 피벗 테이블, 방식은 같습니다.

명령줄에서

csvkit은 모든 열 또는 한 열을 요약합니다.

csvstat -c amount expenses.csv

Miller로 카테고리별로 묶어 합계를 구합니다.

mlr --icsv --opprint stats1 -a sum,mean,count -f amount -g category expenses.csv

DuckDB는 어떤 크기의 파일이든, 어떤 질문이든 처리합니다.

duckdb -c "SELECT category, sum(amount) AS total, count(*) AS rows FROM 'expenses.csv' GROUP BY ALL ORDER BY total DESC"

awk -F,는 쓰지 마세요. Stack Overflow 답변마다 권하지만, 이 방법은 모든 쉼표에서 나눕니다. "Smith, Jane"처럼 따옴표로 묶인 필드 안의 쉼표도 마찬가지여서, 아무 경고 없이 엉뚱한 열을 더합니다.

합계가 틀리는 이유

아래 경우는 모두 그럴듯한 숫자를 만들어 냅니다.

숫자가 아닌 값

  • 통화 기호: $1,200.00. 많은 도구가 텍스트로 취급하고 건너뜁니다.
  • 천 단위 구분 기호: CSV의 1,200은 따옴표로 묶인 텍스트인 경우가 많습니다.
  • 소수점 쉼표: 유럽 시스템에서 나온 1.200,50은 독일어 사용자에게는 천이백이지만, 영어권 도구에서는 텍스트이거나 1.2입니다.
  • 회계식 음수: (450.00)은 재무 내보내기에서는 −450을 뜻하지만, 다른 도구에서는 텍스트입니다. 대개 환불이라서 건너뛰면 합계가 실제보다 커집니다.
  • 자리 표시자: N/A, -, TBC.

위의 개수 확인으로 이 모두를 잡을 수 있습니다. 가능하면 원본에서 고치고, 어렵다면 합산하기 전에 열을 정리하세요.

있으면 안 되는 행

  • 합계 행. 은행이나 회계 내보내기는 "Total"이나 "Closing balance"로 끝나는 경우가 많습니다. 포함하면 합계가 두 배가 됩니다. 첫 합계를 믿기 전에 마지막 몇 줄을 확인하세요.
  • 중복. 겹치는 내보내기를 이어 붙인 파일은 겹친 부분을 두 번 셉니다. CSV에서 중복 행을 제거하는 방법을 참고하세요.
  • 반복된 헤더 행. 여러 CSV를 손으로 이어 붙이면 헤더 줄이 데이터 중간에 들어갑니다. 텍스트라서 건너뛰지만, 비교 대상인 행 수는 부풀립니다.

부호

출금을 음수, 입금을 양수로 쓰는 내보내기도 있고, 둘을 별도 열로 나누는 것도 있으며, 양수 금액에 "차변/대변" 열을 따로 두는 것도 있습니다. 세 번째 유형에서 금액 열을 합산하면 잔액이 아니라 총 거래액이 나옵니다. 은행 거래 내역 CSV 가이드에서 흔한 형식을 살펴봅니다.

Excel이 먼저 값을 바꿨다

열이 금액이 아니라 긴 ID나 코드였다면, 더블클릭으로 열 때 이미 반올림되었을 수 있습니다. 합계보다 조회에 더 큰 문제지만 원인은 같습니다. Excel은 CSV 데이터를 바꿉니다. 파일을 여는 순간에 일어납니다.

휴대폰에서

휴대폰의 스프레드시트 앱도 선택 영역의 합계를 보여 주지만, CSV를 변환한 뒤에야 가능합니다. CSV 앱은 파일에서 바로 계산할 수 있습니다.

Smart CSV Viewer에서는 열 이름을 탭해 선택한 다음, 아래쪽 바 위의 요약 줄을 탭하면 Selection stats가 열립니다. 크기, 채워진 셀과 빈 셀, 숫자의 경우 개수, 합계, 평균, 최소, 최대가 나옵니다. 1,234.50, $5, 1.234,50처럼 쓴 값도 모두 계산됩니다. 숫자를 탭하면 복사됩니다.

Budget 열의 Selection stats 시트: 셀 30개, 비어 있지 않은 셀 30개, 숫자 30개, 합계 75,100, 평균 2,503.33, 최소 900, 최대 6,500
Numbers 30 / Non-empty 30: 건너뛴 값 없음

Numbers 줄과 Non-empty 줄을 비교하는 것이 앞에서 말한 개수 확인이며, 이미 내장되어 있습니다. 먼저 필터를 걸면 통계가 일치하는 행에만 적용되므로, 피벗 테이블 없이 카테고리별 합계를 얻을 수 있습니다.

CSV File Viewer - Smart CSViPhone 및 iPad · Android

iPhone이나 Android에서 열을 선택하면 개수, 합계, 평균, 최소, 최대를 보여 줍니다. 통화 기호와 두 가지 소수 표기를 인식하고, 먼저 필터를 걸면 소계도 구할 수 있습니다.

기능

30초 점검

합계를 이메일에 쓰기 전에 확인하세요.

  1. 개수와 숫자의 수. 비어 있지 않은 모든 셀이 숫자로 계산되었는가.
  2. 마지막 다섯 행. 합계, 잔액, 바닥글 행이 없는가.
  3. 가장 큰 값. 내림차순으로 정렬해 맨 위를 봅니다. 소수점 하나가 잘못 놓여 합계가 100배 틀리는 것이 가장 흔한 실수입니다.

자주 묻는 질문

CSV 파일의 열 합계는 어떻게 구하나요?
Excel이나 Google Sheets에서 열고 열을 선택하면 창 아래쪽에 합계가 나타납니다. 스프레드시트 없이는 csvkit의 csvstat, Miller의 stats1, 또는 SELECT sum(amount) FROM 'file.csv' 같은 DuckDB 쿼리를 사용합니다.
CSV 열의 합계가 틀리는 이유는 무엇인가요?
대개 일부 값이 텍스트이기 때문입니다. 통화 기호, 천 단위 구분 기호, 소수점 쉼표, 괄호로 쓴 회계식 음수, N/A 같은 자리 표시자가 원인입니다. 숫자 셀의 개수와 비어 있지 않은 셀의 개수를 비교하면 알 수 있습니다. 내보낸 파일 맨 아래에 합계 행이 있는지, 중복 행이 있는지도 확인하세요.
CSV 열을 카테고리별로 합산하려면 어떻게 하나요?
Excel이나 Google Sheets의 피벗 테이블에서 카테고리를 행에, 금액을 값에 넣습니다. 명령줄에서는 DuckDB의 GROUP BY 쿼리나 -g를 붙인 Miller의 stats1이 한 줄로 같은 일을 합니다.
Excel에서 합계 대신 개수가 표시되는 이유는 무엇인가요?
열이 텍스트로 저장되어 있어서 Excel이 셀을 셀 수는 있어도 더할 수는 없기 때문입니다. 열을 숫자로 변환하거나, 값이 숫자로 읽히지 않게 만드는 통화 기호와 구분 기호를 제거하세요.
Excel 없이 CSV 열을 합산할 수 있나요?
네. Google Sheets는 무료이고, csvkit, Miller, DuckDB 같은 명령줄 도구는 한 줄로 열을 합산합니다. 휴대폰의 일부 CSV 앱은 선택한 열의 합계, 평균, 최소, 최대를 바로 보여 줍니다.

mygems — CSV Editor와 Smart CSV Viewer를 만듭니다. 스프레드시트가 큰 파일 앞에서 포기하기 때문에 나온 두 앱입니다.