[태그:] 엑셀정리

  • 주식 실현손익 엑셀로 자동 정리하는 법

    주식 실현손익 엑셀로 자동 정리하는 법

    주식 내역 정리, 왜 맨날 엑셀에서 막히는가

    매일 장 마감 후 토스증권이나 키움증권에서 거래 내역을 캡처하고, 엑셀에 하나씩 옮겨 적다가 지쳐 본 적이 있을 것이다. 주식 실현손익을 엑셀로 정리하려다가 수식 꼬이고 포기하는 건 아주 흔한 일이다. 문제는 엑셀 함수의 어려움이 아니라, 데이터를 어떻게 설계하느냐에 있다. 내가 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 연동 툴 활용법

    엑셀이 아닌 API와 자동화 툴 연동법

    엑셀에 복사 붙여넣기 하다가 손목이 아파오면 이제는 자동화를 고려해야 한다. 엑셀 내려받기 없이 데이터를 긁어오는 방법은 크게 두 가지다. 하나는 증권사 OPEN API를 쓰는 것이고, 다른 하나는 자동화 툴을 활용하는 것이다. 내 SaaS들이 크론잡(Cron Job)으로 데이터를 긁어오는 건 전자에 속하고, 일반 사용자가 쓸 수 있는 저진입 툴은 후자에 속한다.

    엑셀 내려받기 없이 데이터 긁어오는 방법

    자바스크립트를 조금 할 줄 안다면 브라우저 개발자 도구를 열어 네트워크 패킷을 확인해 볼 수 있다. 하지만 이건 보안 문제도 있고 유지보수가 귀찮다. 차라리 ‘구글 스프레드시트’의 `IMPORTXML`이나 `IMPORTDATA` 함수를 쓰거나, 자동화 플랫폼을 이용해 웹훅(Webhook)을 받아 스프레드시트에 찍어내는 게 훨씬 낫다.

    평가손익과 실현손익 자동 구분 테크닉

    자동화 툴을 쓸 때 장점은 데이터가 들어오는 순간 로직을 태울 수 있다는 점이다. ‘전일 종가 대비 등락률’을 계산해 평가손익 칼럼에 넣고, 체결이 발생하면 실현손익 칼럼으로 넘기는 식이다. 이건 엑셀 수식만으로는 불가능한 이벤트 기반 처리다. 주식 투자 API를 연동하면 수기 입력의 실수를 원천 차단할 수 있다.

    주식 투자 API는 증권사 시스템과 사용자의 데이터 관리 프로그램을 연결하여, 실시간으로 주식 매매 내역과 잔고 정보를 자동으로 가져올 수 있는 프로그래밍 인터페이스를 말한다.

    복기용 가장 깔끔한 자동 정리 솔루션

    엑셀로 일일이 정리하다 보면 결국 귀찮아서 안 하게 된다. 나는 매일 아침 자동으로 집계되는 리포트를 보며 나의 투자 성향을 파악한다. 어떤 종목을 얼마나 오래 들고 있었는지, 감정으로 매수한 건은 수익률이 어땠는지 기계적으로 보여주니 감정 통제가 훨씬 쉬워졌다. 단순히 숫자를 넘는 데이터 활용 인사이트가 중요하다.

    엑셀 정리 대신 더 쉬운 자동화 솔루션은 없나?

    자동화를 위해 엑셀 VBA나 파이썬을 배우는 건 시간 낭비일 수 있다. 요즘은 노코드(No-Code) 연동 솔루션이 많다. 지프(Zap)나 메이크(Make) 같은 툴을 쓰면 복잡한 코딩 없이도 이메일이나 카카오톡 알림으로 내 계좌 손익을 받아볼 수 있다. 유지보수도 훨씬 쉽다. 시간 효율을 따져서, 엑셀을 계속 고치는 게 손해라면 과감하게 툴로 넘어가야 한다.

    투자 회고를 위한 데이터 시각화 팁

    손익을 표로만 보면 잘 안 와닿는다. 그래프로 그려보라. 월간 수익률 꺾은선 그래프라든가, 종목별 손익 분포 도넛 차트를 보면 내가 어디서 돈을 잃고 있는지 한눈에 보인다. 이건 엑셀보다는 데이터 시각화 툴이나 대시보드를 쓰는 게 훨씬 낫다.

    투자 복기란 단순히 손익 금액을 확인하는 것이 아니라, 자신의 매매 시점과 심리 상태를 데이터와 매핑하여 반복적인 실수를 줄이는 과정이다.


    AILEEGO TOOLKIT

    이 글의 내용을 도구로 바로 쓰고 싶다면

    토스증권 read-only 연동으로 실현손익·환손익·양도세·월간 회고를 사실 그대로 집계하는 투자 복기 도구 — 제가 직접 만들어 운영 중인 복기(bokki)에서 바로 해볼 수 있습니다.

    이 블로그의 글도 매일 아침 AI 파이프라인이 자동 발행합니다. 어떻게 만들었는지 궁금하다면 포트폴리오를 구경해 보세요.

    자주 묻는 질문

    증권사에서 엑셀로 내려받기 후 바로 열면 데이터가 깨지는 이유는?

    파일 확장자는 엑셀이지만 실제 내용은 콤마(,)로 구분된 CSV라서 그렇습니다. 메모장으로 먼저 열어서 인코딩을 UTF-8로 맞추고 콤마 위치를 확인한 뒤 엑셀로 불러와야 날짜와 글자가 깨지지 않습니다.

    분할 매수 시 손익 계산을 제대로 하려면 어떤 방식을 써야 하나요?

    선입선출(FIFO) 방식을 적용해야 가장 먼저 산 주식부터 팔린 것으로 간주하여 손익을 명확히 계산할 수 있습니다. 엑셀 수식으로는 누적 수량을 계산하는 복잡한 로직이 필요하므로 수식 오류에 주의해야 합니다.

    해외 주식 투자 내역을 엑셀로 정리할 때 가장 주의할 점은?

    단순히 주가 변동뿐만 아니라 환율 변동에 따른 ‘환율 재평가 손익’을 별도로 관리해야 합니다. 매수일과 매도일의 환율을 각각의 칼럼으로 분리해서 기록하지 않으면 정확한 실현손익을 알 수 없습니다.

    매매일지를 쓰다가 포기하는 가장 큰 이유는?

    장 마감 후 피곤한 상태에서 엑셀 셀 하나하나를 클릭해 수기로 입력하는 번거로움 때문입니다. 사람이 매일 기록하기는 어렵기 때문에 수식이 꼬이거나 데이터가 누락되어 결국 포기하게 됩니다.

    엑셀 다운로드 없이 주식 내역을 자동으로 가져오는 방법은?

    증권사에서 제공하는 OPEN API를 연동하거나 크롬 확장 프로그램 같은 자동화 툴을 사용하면 됩니다. 이렇게 하면 복사 붙여넣기 없이 실시간으로 데이터를 긁어와 엑셀에 정리할 수 있습니다.

  • 주식 투자 내역 엑셀로 변환하는 3단계

    주식 투자 내역 엑셀로 변환하는 3단계

    흩어진 증권사 앱 속, 내 손익의 진짜 모습을 찾아서

    토스에서 몇 천 원씩 수익이 났는데 키움 계좌에선 적자가 나는 바람에, 내 지금 총 자산이 정확히 얼마인지 모르는 상황이 반복되는 적 있다. 증권사 앱 화면에 뜨는 총평가금액이 달라질 때마다 머릿속이 복잡해진다. 주식 투자 내역 엑셀로 변환하는 작업은 단순히 기록을 남기는 게 아니라 흩어진 데이터를 내 통제하에 두기 위한 첫걸음이다.

    1인 개발자로 SaaS를 여러 개 운영할 때도 서버 로그나 결제 내역이 각기 다른 플랫폼에 흩어져 있으면 파악이 안 됐다. 그래서 모든 데이터를 한 곳으로 모으는 파이프라인을 만들었듯, 투자 내역도 마찬가지다. 여러 증권사 앱을 오가며 눈으로 확인하는 방식은 감정에 휘둘리기 딱 좋다. 엑셀로 뽑아두면 내가 실제로 벌어오고 있는지, 아니면 껍데기만 수익인지 명확하게 드러난다.

    1단계: 증권사별 엑셀(거래 내역) 다운로드 정확한 위치

    대부분의 증권사가 데이터 내보내기를 지원하지만, 메뉴가 은근 깊숙한 곳에 숨겨져 있다. 버튼을 못 찾아 포기하기 전에 각 앱의 정확한 경로를 짚어보자.

    토스증권은 접근성이 좋아 보이지만 엑셀 저장 버튼이 메인 화면에 없다. ‘더보기’에서 투자 메뉴로 들어간 뒤, 주식 내역 탭을 누르고 ‘내역 보기’까지 들어가야 상단에 엑셀 저장 아이콘이 나온다. 여기서 기간을 ‘전체’로 설정하고 받는 게 핵심이다.

    키움증권이나 나무증권 같은 전통 증권사는 HTS( PC 프로그램)보다 웹 MTS(환매사이트)에서 다운로드하는 것이 훨씬 빠르다. HTS는 로그인 세션이 금방 끊기거나 레거시 UI 때문에 파일 형식 설정이 번거롭다. 웹 사이트의 [조회/공시] 메뉴에 들어가 ‘거래내역조회’를 선택하고 파일 형식을 ‘엑셀(또는 CSV)’로 맞추면 된다.

    메리츠증권이나 한국투자증권 역시 비슷하다. 종합계좌 내역 조회 페이지에서 다운로드 옵션을 찾을 수 있는데, 이때 확장자가 꼭 CSV나 Excel로 되어 있는지 확인해야 한다. 가끔 hwp나 워드 형식으로만 지원되는 구형 증권사가 있는데, 그건 나중에 변환 작업이 두 배로 드니 피하는 게 상책이다.

    2단계: 깨진 글자와 날짜 데이터, 손쉽게 정제하는 법

    파일을 다운로드하고 엑셀로 바로 열면 가장 먼저 마주치는 문제가 ‘한글 깨짐’이다. 글자가 죄다 밥알 모양으로 변해버리는 상황. 이건 인코딩 문제다. 엑셀에서 파일을 더블 클릭해서 열면 안 된다. 빈 엑셀 시트를 하나 띄운 뒤, [데이터 가져오기] > [텍스트/CSV] 메뉴를 통해 파일을 불러와야 한다. 이때 원본 파일의 인코딩이 ‘UTF-8’인지 ‘EUC-KR’인지만 확인해주면 깨짐 없이 깔끔하게 불러와진다.

    날짜 데이터는 더 골치 아프다. 증권사 별로 ‘20250721’로 오기도 하고 ‘2025.07.21’로 오기도 한다. 엑셀은 이걸 글자(Text)로 인식해서 날짜 계산이 안 되는 경우가 많다. 함수로 고치려니 복잡하다. 그럴 땐 [데이터] 탭의 ‘텍스트 나누기’ 기능이 제일 빠르다. 구분 기호를 지정해 연, 월, 일을 나눈 뒤 DATE 함수로 합치거나, 표 서식을 바꿔주는 방식이 훨씬 안정적이다.

    SaaS 자동화 공장을 돌릴 때도 크론잡이 뱉어내는 로그 파일 날짜가 이상하게 들어오곤 했다. 그때 겪은 경험상, 일일이 함수를 쓰는 것보다 엑셀이 제공하는 내장 변환 도구를 쓰는 게 에러율이 훨씬 낮다. 숫자 계산 오류는 쉼표(,)가 포함된 금액 데이터 때문에 발생하곤 한다. 셀 서식을 ‘숫자’나 ‘통화’로 강제로 지정해주거나, 쉼표를 찾아바꾸기 기능으로 지워버리면 SUM 함수가 정상 작동한다.

    데이터 정제 수식 작성

    3단계: 수수료와 이자를 포함한 실제 순수익 수식 만들기

    이제 데이터가 정리됐다. 단순히 (매도 금액 – 매수 금액)으로 계산하면 착시 현상에 빠진다. 수수료, 이자 비용, 배당금까지 모두 반영해야 내 통장에 실제로 남는 돈이 보인다. 주식 순수익 계산 엑셀의 핵심은 비용을 빠트리지 않는 것이다.

    복기 서비스를 만들 때 사용했던 로직을 그대로 가져오면, 기본 구조는 이렇다. 먼저 SUMIF 함수로 종목별 총 매수 금액과 총 매도 금액을 집계한다. 그리고 수수료는 보통 매수/매도 시 발생하니 별도로 합산해 둔다.

    순수익 = (총 매도 금액 – 총 매수 금액 – 총 수수료) + 총 배당금 + 이자 수익

    이 수식을 엑셀에 그대로 녹여보자. 수익률은 단순히 차액만 보는 게 아니라, 내가 실제로 현금 흐름으로 얼마나 냈는지(투자원금) 대비해서 계산해야 의미가 있다.

    실제 수익률(%) = (순수익 / 총 투자원금) * 100

    여기서 총 투자원금은 단순 매수 금액 합계가 아니라, 추가로 낸 입금금이나 차입금(유통주) 상환 등을 감안해야 한다. 이 수식을 한 번 만들어두면, 새로운 거래 내역이 밑에 붙을 때마다 수식 영역만 확장하면 전체 손익이 자동으로 갱신된다. 나는 이 과정을 통해 앱에서는 +3%로 보이던 게 수수료를 제하면 사실 +1.5% 수준이었다는 사실을 알게 되었고, 그게 과매매를 줄이는 계기가 되었다.

    엑셀 관리의 한계와 자동화 툴의 필요성

    엑셀 시트가 완성되면 뿌듯하지만, 이걸 매일 아침마다 손으로 복사해서 붙여넣는 건 생각보다 끔찍한 반복 노동이다. 며칠은 괜찮지만 일주일만 지나도 귀찮음이 밀려온다. 나도 매일 블로그 글이 유튜브에 자동으로 올라가도록 크론잡을 설정해 놓았듯, 투자 내역도 내 손을 거치지 않고 쌓여야 한다.

    매일 증권사 앱을 열고 CSV를 다운로드받아 엑셀에 붙이는 과정을 한 달만 꾸준히 해보라. 시간이 얼마나 낭비되는지 절실하게 느낄 것이다. 그래서 나는 ‘복기(bokki)’ 같은 연동 툴을 쓴다. 증권사 API를 쓸 줄 몰라도, 이런 툴을 이용해 Read-Only(읽기 전용)로 계좌를 한 번만 연동해두면 매일 아침 잠든 사이에前一天의 거래 내역이 엑셀 시트에 쌓인다. 데이터 파이프라인 한 번 깔아두고 매달 나오는 리포트를 확인하는 쪽이 훨씬 생산적이다.

    요약 및 다음 투자를 위한 복기 항목 구성 팁

    엑셀에 숫자만 채워 넣는 것은 반쪽짜리다. 옆에 ‘메모’ 칸을 만들어 당시의 감정과 전략을 남겨야 다음 투자에 밑거름이 된다. 숫자만 보고 “아, 망했군” 하고 넘어가면 똑같은 실수를 반복한다.

    내가 추천하는 복기 컬럼은 다음과 같다. 첫째, ‘매매 이유'( PER 낮음, 뉴스 호재 등), 둘째, ‘당시 감정'(초조함, 탐욕, 두려움), 셋째, ‘시장 상황'(코스피 하락, 외국인 순매수 등). 이 중 하나라도 기록해두면 나중에 시트를 정리할 때 명확한 패턴이 보인다. “감정이 들때 매수하면 망한다”는 걸 데이터로 증명해주는 순간이 오기 때문이다.

    주식 투자 내역을 엑셀로 변환하는 건 단순한 행정 업무가 아니다. 나의 투자 스타일을 객관적으로 들여다보는 거울을 만드는 과정이다. 오늘이라도 파일 하나 열어서 내가 어디서 돈을 잃고 있는지 정확한 위치를 찾아보길 바란다.


    AILEEGO TOOLKIT

    이 글의 내용을 도구로 바로 쓰고 싶다면

    토스증권 read-only 연동으로 실현손익·환손익·양도세·월간 회고를 사실 그대로 집계하는 투자 복기 도구 — 제가 직접 만들어 운영 중인 복기(bokki)에서 바로 해볼 수 있습니다.

    이 블로그의 글도 매일 아침 AI 파이프라인이 자동 발행합니다. 어떻게 만들었는지 궁금하다면 포트폴리오를 구경해 보세요.

    자주 묻는 질문

    증권사별 거래 내역 CSV 파일 다운로드 경로는 어디인가요?

    토스증권은 ‘더보기 > 투자 > 주식 내역 > 내역 보기’ 상단의 엑셀 아이콘을 누르고 기간을 전체로 설정하세요. 키움증권이나 나무증권은 HTS보다 웹 MTS의 [조회/공시] 메뉴에서 파일 형식을 엑셀이나 CSV로 지정해 받는 것이 훨씬 빠릅니다.

    엑셀로 열었을 때 한글이 깨지는 문제는 어떻게 해결하나요?

    파일을 더블 클릭해서 열면 안 되고, 빈 엑셀 시트에서 [데이터 가져오기] > [텍스트/CSV]를 통해 불러와야 합니다. 이때 원본 파일 인코딩이 UTF-8인지 EUC-KR인지만 확인하면 깨짐 없이 깔끔하게 불러와집니다.

    증권사마다 다른 날짜 데이터 형식을 엑셀 날짜로 통일하는 방법은?

    함수보다는 [데이터] 탭의 ‘텍스트 나누기’ 기능을 쓰는 게 에러율이 훨씬 낮습니다. 구분 기호로 연, 월, 일을 나눈 뒤 DATE 함수로 합치거나, 표 서식을 바꿔주는 방식으로 처리하면 됩니다.

    실제 내 통장에 남는 주식 순수익 계산 공식은 어떻게 되나요?

    단순 차액이 아니라 수수료와 배당금을 모두 포함해야 정확합니다. (총 매도 금액 – 총 매수 금액 – 총 수수료) + 총 배당금 + 이자 수익으로 계산하면 실제 손익이 드러납니다.

    수수료를 제외한 실제 수익률을 구하려면 어떤 기준으로 나눠야 하나요?

    단순 매수 금액 합계로 나누면 안 됩니다. 실제 수익률은 앞서 구한 순수익을 총 투자원금으로 나눈 뒤 100을 곱해야 하며, 투자원금에는 추가 입금액이나 차입금 상환까지 감안해야 의미가 있습니다.