주식 내역 정리, 왜 맨날 엑셀에서 막히는가
매일 장 마감 후 토스증권이나 키움증권에서 거래 내역을 캡처하고, 엑셀에 하나씩 옮겨 적다가 지쳐 본 적이 있을 것이다. 주식 실현손익을 엑셀로 정리하려다가 수식 꼬이고 포기하는 건 아주 흔한 일이다. 문제는 엑셀 함수의 어려움이 아니라, 데이터를 어떻게 설계하느냐에 있다. 내가 1인 사업을 시작했을 때 매출과 투자 내역을 수기로 엑셀에 옮기다가 수식이 엉켜 포스테고(Posthego) 시스템을 만들었던 뼈아픈 경험이 있다. 단순히 숫자를 나열하는 게 아니라 ‘구조’를 잡지 않으면 엑셀은 무용지물이 된다. 매매일지를 쓰다가 포기하는 가장 큰 이유는 수기 입력의 번거로움 때문이다. 사람이라 매일은 커녕 일주일만 건너뛰어도 데이터는 쓰레기가 되고, 손익 계산은 엉망이 된다.
복잡한 수식을 외우기 전에 데이터 구조를 먼저 점검해야 한다. 종목 코드, 매수/매도 구분, 단가, 수량, 수수료, 날짜가 철저하게 분리되어 있어야 자동화가 가능하다. 주식 투자 내역을 정리할 때 숫자만 쫓아가지 말고, 그 데이터가 어떤 식으로 쌓일지를 먼저 고민해야 막히지 않는다.
매매일지 쓰다가 포기하는 이유
매매일지를 작성하는 목적은 기록보다는 회고에 있다. 그런데 엑셀의 셀 하나하나를 클릭해서 값을 넣는 과정에서 의욕이 사라진다. 장이 끝나고 피곤한 상태에서 복잡한 엑셀 파일을 열어 숫자를 맞추는 건 고역이다. 내가 운영하는 자동화 시스템들도 처음에는 사람이 손으로 입력해야 했는데, 그것이 얼마나 비효율적인지 뼈저리게 느꼈다.
복잡한 수식보다 중요한 ‘데이터 구조’
주식 실현손익을 계산하는 핵심은 ‘어떤 매수 건이 매도되었는가’를 매칭하는 것이다. 이를 위해선 데이터 구조가 표준화되어야 한다. 날짜 형식이 ‘YYYY-MM-DD’로 통일되어 있는지, 종목명 대신 종목코드를 쓰는지 같은 사소한 차이가 나중에 엄청난 수식 오류를 만든다.
증권사 MTS에서 엑셀로 뽑는 기본 기능 한계
대부분의 증권사 앱은 엑셀 다운로드 기능을 제공한다. 토스증권이나 나무증권에서 CSV로 내보내기를 누르면 데이터가 쏟아진다. 하지만 그걸로 끝이 아니다. 파일을 열어보면 날짜 포맷이 깨져 있거나, 콤마(,) 구분이 엉망인 경우가 허다하다. 여러 증권사 API를 테스트하며 느낀 건데, 증권사별 데이터 퀄리티 차이가 생각보다 훨씬 크다. 어디는 날짜를 숫자로 찍어주고, 어디는 텍스트로 준다. 이걸 사람이 손으로 고치다 보면 엑셀 자동화의 의미가 퇴색된다.
토스증권/나무증권 CSV 내보내기 실전
CSV를 다운로드 후 바로 엑셀에서 열지 말고, 메모장으로 먼저 확인해 보라. 콤마 위치가 이상하면 데이터가 쪼개진다. 특히 한글 종목명이 깨지는 경우도 있으니 인코딩을 UTF-8로 맞춰야 한다. 토스증권 엑셀 다운로드나 주식 거래내역 CSV 추출 시 가장 많이 발생하는 에러가 바로 이 ‘구분자’ 문제다.
자동화가 불가능한 수기 입력 영역 식별하기
MTS에서 뽑은 데이터에는 기본적인 체결 정보만 있다. 배당금 수령이나 합병 같은 비정상적 이벤트는 반드시 수기로 넣어야 한다. 이 부분을 식별하지 못하고 덜컥 자동화를 돌리면 잔고가 맞지 않아 골머리를 앓게 된다. 자동화를 하려면 먼저 사람 손이 꼭 필요한 영역을 명확히 구분해야 한다.
손익 계산 꼬이는 지점: 분할 매수와 환율 처리
주식 실현손익 계산에서 가장 골치 아픈 건 분할 매수다. 10주를 사고 나중에 5주를 팔 때, 어느 시점에 산 10주 중 어떤 5주를 판 것으로 볼 것인가가 문제다. 이때 선입선출(FIFO) 방식과 평균단가 방식에 따라 결과가 달라진다. SaaS 재무 회계 처리를 할 때 ‘분할 결제’ 로직 때문에 가장 많은 버그가 발생했었다. 엑셀 수식으로 이걸 구현하려면 배열 수식이나 매크로를 써야 하는데, 관리가 어려워 금방 꼬인다.
분할 매수 시 선입선출(FIFO) 로직 구현
선입선출(FIFO)이란 가장 먼저 산 주식부터 먼저 판 것으로 간주하는 방식이다. 엑셀에서는 `SUMIFS` 함수와 `IF` 함수를 조합해 누적 수수량을 계산해야 한다. 예를 들어, 매도 시점의 누적 수량이 이전 매수 수량을 넘어서는 시점을 잡아내야 하는데, 이 로직을 일반 엑셀 유저가 짜기엔 난이도가 높다. 수식 하나 잘못 끼워 넣으면 엉뚱한 평가단가가 나온다.
선입선출 방식은 주식 실현손익 계산의 정석으로, 가장 먼저 매수한 주식부터 먼저 매도된 것으로 가정하여 손익을 산출하는 방식이다.
해외 주식 환율 재평가 손익 엑셀 수식
해외 주식은 더 복잡하다. 달러로 샀는데 원화 환율이 변하면 주식 가격이 그대로여도 평가손익이 바뀐다. 엑셀로 ‘환율 재평가 손익’과 ‘실현 손익’을 동시에 처리하려면 별도의 환율 테이블이 필요하다. 하지만 엑셀의 한계 때문에 이 둘을 섞어서 계산하려다 보면 오류가 난다. 환헤지 손익을 정확히 계산하려면 매수일 환율과 현재 환율, 그리고 매도일 환율을 별도 칼럼으로 관리해야 하는데, 일반적인 엑셀 템플릿은 이를 지원하지 않는다.

엑셀이 아닌 API와 자동화 툴 연동법
엑셀에 복사 붙여넣기 하다가 손목이 아파오면 이제는 자동화를 고려해야 한다. 엑셀 내려받기 없이 데이터를 긁어오는 방법은 크게 두 가지다. 하나는 증권사 OPEN API를 쓰는 것이고, 다른 하나는 자동화 툴을 활용하는 것이다. 내 SaaS들이 크론잡(Cron Job)으로 데이터를 긁어오는 건 전자에 속하고, 일반 사용자가 쓸 수 있는 저진입 툴은 후자에 속한다.
엑셀 내려받기 없이 데이터 긁어오는 방법
자바스크립트를 조금 할 줄 안다면 브라우저 개발자 도구를 열어 네트워크 패킷을 확인해 볼 수 있다. 하지만 이건 보안 문제도 있고 유지보수가 귀찮다. 차라리 ‘구글 스프레드시트’의 `IMPORTXML`이나 `IMPORTDATA` 함수를 쓰거나, 자동화 플랫폼을 이용해 웹훅(Webhook)을 받아 스프레드시트에 찍어내는 게 훨씬 낫다.
평가손익과 실현손익 자동 구분 테크닉
자동화 툴을 쓸 때 장점은 데이터가 들어오는 순간 로직을 태울 수 있다는 점이다. ‘전일 종가 대비 등락률’을 계산해 평가손익 칼럼에 넣고, 체결이 발생하면 실현손익 칼럼으로 넘기는 식이다. 이건 엑셀 수식만으로는 불가능한 이벤트 기반 처리다. 주식 투자 API를 연동하면 수기 입력의 실수를 원천 차단할 수 있다.
주식 투자 API는 증권사 시스템과 사용자의 데이터 관리 프로그램을 연결하여, 실시간으로 주식 매매 내역과 잔고 정보를 자동으로 가져올 수 있는 프로그래밍 인터페이스를 말한다.
복기용 가장 깔끔한 자동 정리 솔루션
엑셀로 일일이 정리하다 보면 결국 귀찮아서 안 하게 된다. 나는 매일 아침 자동으로 집계되는 리포트를 보며 나의 투자 성향을 파악한다. 어떤 종목을 얼마나 오래 들고 있었는지, 감정으로 매수한 건은 수익률이 어땠는지 기계적으로 보여주니 감정 통제가 훨씬 쉬워졌다. 단순히 숫자를 넘는 데이터 활용 인사이트가 중요하다.
엑셀 정리 대신 더 쉬운 자동화 솔루션은 없나?
자동화를 위해 엑셀 VBA나 파이썬을 배우는 건 시간 낭비일 수 있다. 요즘은 노코드(No-Code) 연동 솔루션이 많다. 지프(Zap)나 메이크(Make) 같은 툴을 쓰면 복잡한 코딩 없이도 이메일이나 카카오톡 알림으로 내 계좌 손익을 받아볼 수 있다. 유지보수도 훨씬 쉽다. 시간 효율을 따져서, 엑셀을 계속 고치는 게 손해라면 과감하게 툴로 넘어가야 한다.
투자 회고를 위한 데이터 시각화 팁
손익을 표로만 보면 잘 안 와닿는다. 그래프로 그려보라. 월간 수익률 꺾은선 그래프라든가, 종목별 손익 분포 도넛 차트를 보면 내가 어디서 돈을 잃고 있는지 한눈에 보인다. 이건 엑셀보다는 데이터 시각화 툴이나 대시보드를 쓰는 게 훨씬 낫다.
투자 복기란 단순히 손익 금액을 확인하는 것이 아니라, 자신의 매매 시점과 심리 상태를 데이터와 매핑하여 반복적인 실수를 줄이는 과정이다.
이 글의 내용을 도구로 바로 쓰고 싶다면
토스증권 read-only 연동으로 실현손익·환손익·양도세·월간 회고를 사실 그대로 집계하는 투자 복기 도구 — 제가 직접 만들어 운영 중인 복기(bokki)에서 바로 해볼 수 있습니다.
이 블로그의 글도 매일 아침 AI 파이프라인이 자동 발행합니다. 어떻게 만들었는지 궁금하다면 포트폴리오를 구경해 보세요.
자주 묻는 질문
증권사에서 엑셀로 내려받기 후 바로 열면 데이터가 깨지는 이유는?
파일 확장자는 엑셀이지만 실제 내용은 콤마(,)로 구분된 CSV라서 그렇습니다. 메모장으로 먼저 열어서 인코딩을 UTF-8로 맞추고 콤마 위치를 확인한 뒤 엑셀로 불러와야 날짜와 글자가 깨지지 않습니다.
분할 매수 시 손익 계산을 제대로 하려면 어떤 방식을 써야 하나요?
선입선출(FIFO) 방식을 적용해야 가장 먼저 산 주식부터 팔린 것으로 간주하여 손익을 명확히 계산할 수 있습니다. 엑셀 수식으로는 누적 수량을 계산하는 복잡한 로직이 필요하므로 수식 오류에 주의해야 합니다.
해외 주식 투자 내역을 엑셀로 정리할 때 가장 주의할 점은?
단순히 주가 변동뿐만 아니라 환율 변동에 따른 ‘환율 재평가 손익’을 별도로 관리해야 합니다. 매수일과 매도일의 환율을 각각의 칼럼으로 분리해서 기록하지 않으면 정확한 실현손익을 알 수 없습니다.
매매일지를 쓰다가 포기하는 가장 큰 이유는?
장 마감 후 피곤한 상태에서 엑셀 셀 하나하나를 클릭해 수기로 입력하는 번거로움 때문입니다. 사람이 매일 기록하기는 어렵기 때문에 수식이 꼬이거나 데이터가 누락되어 결국 포기하게 됩니다.
엑셀 다운로드 없이 주식 내역을 자동으로 가져오는 방법은?
증권사에서 제공하는 OPEN API를 연동하거나 크롬 확장 프로그램 같은 자동화 툴을 사용하면 됩니다. 이렇게 하면 복사 붙여넣기 없이 실시간으로 데이터를 긁어와 엑셀에 정리할 수 있습니다.




