[태그:] 주식투자

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

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

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

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

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

    자동화 툴을 쓸 때 장점은 데이터가 들어오는 순간 로직이 곧바로 도는 것이다. ‘전일 종가 대비 등락률’을 계산해 평가손익 칼럼에 넣고, 체결이 발생하면 실현손익 칼럼으로 넘기는 식이다. 입력된 거래를 평가손익과 실현손익으로 분류해 재계산하는 것은 엑셀 수식으로 가능하지만, 외부 체결 이벤트 수신이나 알림·데이터 이동까지 자동화하려면 VBA, Office Scripts 또는 Power Automate 같은 도구가 필요합니다. 주식 투자 API를 연동하면 수기 입력의 실수가 원천 차단된다.

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

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

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

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

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

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

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

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

    근거로 삼은 문서

    고지 — 이 글은 투자 기록을 정리하는 도구 사용법이며 투자 권유나 자문이 아닙니다. 종목 판단은 제공하지 않으며 투자 결정과 그 결과의 책임은 투자자 본인에게 있습니다.


    글쓴이 정보

    이 블로그의 초안은 운영자가 만든 AI 파이프라인이 자동 생성하고, 문체·사실성 자동 검사를 통과한 글만 공개합니다. 검사에서 걸린 초안은 사람이 손을 봅니다. 만드는 과정은 포트폴리오에 정리해 두었습니다.

    자주 나오는 질문

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

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

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

    분할 매수 주식의 손익은 적용 목적과 증권사의 계산 기준을 확인해야 하며, 해외주식 세무에서는 취득시기가 불분명할 때 선입선출법을 적용하되 일정 요건에서는 이동평균법도 사용할 수 있습니다. 엑셀 수식으로는 누적 수량을 계산하는 복잡한 로직이 필요하므로 수식 오류에 주의해야 합니다.

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

    단순히 주가 변동뿐만 아니라 환율 변동에 따른 ‘환율 재평가 손익’을 별도로 관리해야 합니다. 개인 성과 분석에서는 사용할 환율 기준을 일관되게 정하고, 한국 양도소득세 계산용 자료에는 매수·매도 결제대금이 실제 출금·입금된 날의 기준환율 또는 재정환율을 기록해야 합니다.

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

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

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

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

  • 증권사 거래내역 파일, 엑셀에서 깨지지 않게 받는 법

    증권사 거래내역 파일, 엑셀에서 깨지지 않게 받는 법

    파일은 받았는데 엑셀이 못 읽는다

    증권사에서 거래내역을 내려받는 것까지는 어렵지 않다. 문제는 그 다음이다. 파일을 더블 클릭해서 열면 한글이 밥알처럼 깨져 있거나, 날짜 칸이 날짜로 안 잡혀서 정렬조차 안 된다. 종목코드 앞자리 0이 통째로 날아가 있는 경우도 흔하다.

    같은 거래내역 CSV를 인코딩만 바꿔 엑셀로 연 실제 화면 두 장
    같은 내용의 거래내역 CSV 를 인코딩만 바꿔 실제 엑셀에서 연 화면이다(엑셀이 직접 내보낸 렌더링). 위는 국내 증권사 기본인 CP949, 아래는 BOM 없는 UTF-8. 한글 깨짐은 UTF-8 쪽에서만 났고, 종목코드 앞자리 0 소실은 양쪽 모두에서 났다. 겸해서 확인된 것 하나 — 쉼표가 들어간 금액은 엑셀이 숫자로 제대로 읽었고 SUM 도 3,827,500 으로 정상이었다. 쉼표 자체가 원인인 경우는 생각보다 드물다.

    이 글은 손익을 계산하는 방법을 다루지 않는다. 그 앞 단계, 그러니까 쓸 수 있는 데이터로 만드는 것까지만 다룬다. 계산은 데이터가 멀쩡해진 다음의 일이고, 순서를 바꾸면 수식이 왜 틀렸는지 영원히 못 찾는다.

    1인 개발자로 여러 서비스를 굴리면서 배운 게 하나 있다면, 데이터 파이프라인에서 시간을 잡아먹는 건 계산 로직이 아니라 형식 맞추기라는 것이다. 투자 내역도 똑같다.

    거래내역 파일은 어디서 받나

    대부분의 증권사가 내보내기를 지원하는데, 메뉴가 은근 깊다. 버튼을 못 찾아서 포기하는 경우가 실제로 많다.

    • 토스증권: 엑셀 저장 버튼이 메인 화면에 없다. ‘더보기’에서 투자 메뉴로 들어가 주식 내역 탭을 누르고, ‘내역 보기’까지 들어가야 상단에 저장 아이콘이 보인다. 기간을 ‘전체’로 바꾸고 받는 걸 잊지 말 것.
    • 키움증권, 나무증권: PC용 HTS보다 웹 화면이 빠르다. HTS는 로그인 세션이 금방 끊기고 파일 형식 설정도 번거롭다. 웹의 조회/공시 메뉴에서 거래내역조회를 고르고 파일 형식을 엑셀이나 CSV로 맞추면 된다.
    • 메리츠증권, 한국투자증권: 종합계좌 내역 조회 페이지에 다운로드 옵션이 있다. 확장자가 CSV나 XLSX인지 확인하고 받는다.

    여기서 미리 확인할 게 조회 기간이다. 증권사마다 한 번에 뽑을 수 있는 기간에 제한이 걸려 있어서, 몇 년치를 한 번에 받으려다 앞부분이 잘린 채로 저장되는 일이 생긴다. 받은 뒤에 행 수를 세어보고 첫 거래일이 맞는지 눈으로 확인하는 습관이 필요하다.

    한글이 밥알처럼 깨질 때

    가장 먼저 마주치는 벽이다. 원인은 인코딩이다. 국내 증권사 파일은 EUC-KR로 저장되는 경우가 많은데, 엑셀은 CSV를 더블 클릭하면 인코딩을 스스로 추측한다. 그 추측이 틀리면 글자가 깨진다.

    그래서 더블 클릭으로 열면 안 된다. 빈 엑셀 시트를 먼저 띄우고 불러와야 한다.

    인코딩을 지정해서 여는 순서

    1. 빈 통합 문서를 연다
    2. 데이터 탭에서 데이터 가져오기, 텍스트/CSV를 고른다
    3. 미리보기 창 위쪽 원본 파일 항목을 EUC-KR로 바꾼다. 그래도 깨지면 UTF-8로 바꿔본다
    4. 미리보기에서 한글이 제대로 보이면 그때 불러온다

    둘 중 뭐가 맞는지는 파일을 열어보기 전엔 모른다. 그냥 둘 다 눌러보고 미리보기가 멀쩡한 쪽을 고르면 된다.

    그래도 안 되면 구글 시트

    엑셀 버전에 따라 가져오기 마법사가 인코딩 선택을 안 보여주기도 한다. 그럴 땐 구글 시트에 파일을 올려서 여는 쪽이 빠르다. 시트는 인코딩을 알아서 잡는 편이고, 정리한 뒤 다시 엑셀로 내려받으면 된다. 돌아가는 길처럼 보여도 마법사와 씨름하는 시간보다 짧다.

    날짜가 날짜로 안 잡힐 때

    증권사마다 날짜 표기가 다르다. 20260721처럼 붙여 쓰기도 하고 2026.07.21처럼 점을 찍기도 한다. 엑셀은 이걸 글자로 읽어버려서 정렬도 안 되고 기간 필터도 안 걸린다.

    함수부터 꺼내들 필요는 없다. 데이터 탭의 텍스트 나누기가 제일 빠르다. 구분 기호로 점을 지정해 연월일을 쪼갠 다음 DATE 함수로 다시 합치면 진짜 날짜가 된다. 숫자 여덟 자리로 붙어 있는 형태라면 텍스트 나누기 마법사 마지막 단계에서 열 데이터 서식을 날짜로 지정하는 것만으로 끝난다.

    참고로 여기서 시간까지 같이 들어온 경우, 시간을 떼지 않으면 같은 날 거래가 서로 다른 날짜로 묶인다. 이건 정렬해보기 전까지 티가 안 나서 뒤늦게 발견하기 쉽다.

    종목코드 앞자리 0이 사라질 때

    삼성전자 코드는 005930인데 파일을 열면 5930으로 바뀌어 있다. 엑셀이 숫자로 인식하면서 앞의 0을 버린 것이다. 종목코드로 다른 표와 대조할 생각이라면 여기서 이미 어긋난다.

    막는 방법은 가져올 때 그 열의 서식을 텍스트로 지정하는 것이다. 텍스트/CSV 가져오기 화면에서 열을 클릭하고 데이터 형식을 텍스트로 바꾸면 0이 살아남는다. 이미 날아간 뒤에 되살리려면 TEXT(A2,"000000") 같은 함수를 써야 하는데, 애초에 텍스트로 받는 쪽이 손이 덜 간다.

    합계가 0으로 나올 때

    SUM을 걸었는데 0이 뜨면 대부분 쉼표 때문이다. 1,250,000처럼 쉼표가 들어간 금액이라고 엑셀이 무조건 글자로 보는 것은 아니다. 지역 설정에 따라 쉼표는 정상적인 천 단위 구분자로 인식된다. 합계가 0이면 먼저 그 셀의 실제 데이터 형식과 지역 설정, 통화 기호, 눈에 안 보이는 공백을 확인해야 한다. 이미 글자로 들어온 값은 셀 서식만 숫자로 바꿔도 되돌아오지 않는다.

    찾아 바꾸기로 쉼표를 지우는 게 가장 확실하다. 원화 기호나 뒤에 붙은 공백도 같은 이유로 계산을 막는다. 눈으로는 안 보이는 공백이 섞여 있는 경우가 있어서, 합계가 이상하면 TRIM을 한 번 돌려보는 것도 방법이다.

    솔직히 이 단계에서 한 번쯤은 망친다. 쉼표를 지운다는 게 소수점까지 같이 날아가면 처음부터 다시 받아야 한다. 원본 파일은 따로 복사해두고 작업하는 편이 마음 편하다.

    여기까지가 데이터 확보다

    글자가 안 깨지고, 날짜가 날짜로 잡히고, 종목코드가 온전하고, 합계가 계산되면 준비가 끝난 것이다. 이 상태의 파일 하나만 있으면 그 다음은 수식 문제라서 훨씬 단순해진다.

    표준 양식으로 정리하고 실현 손익과 평가 손익을 계산해 매일 갱신되는 형태로 만드는 과정은 주식 매매 내역 엑셀 정리하는 4단계 루틴에 따로 정리해 두었다. 이 글에서 만든 깨끗한 파일을 그대로 들고 가면 된다.

    한 가지 덧붙이면, 이 작업을 매주 손으로 반복할 생각이라면 두세 번 만에 그만두게 된다. 받는 것부터 정제까지가 손에 익으면 그때 자동화를 붙이는 순서가 맞다. 처음부터 자동화를 짜려고 하면 형식이 왜 깨지는지 모른 채로 파이프라인을 만들게 되고, 그건 나중에 더 큰 일이 된다.

    근거로 삼은 문서

    고지 — 이 글은 투자 기록을 정리하는 도구 사용법이며 투자 권유나 자문이 아닙니다. 종목 판단은 제공하지 않으며 투자 결정과 그 결과의 책임은 투자자 본인에게 있습니다.


    글쓴이 정보

    초안은 AI 파이프라인이 쓰고, 검사를 통과한 글만 공개됩니다. 걸린 초안은 제가 직접 고칩니다. — 아일리고

    자주 나오는 질문

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

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

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

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

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

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

    종목코드 앞자리 0이 사라지는 건 어떻게 막나요?

    엑셀이 005930을 숫자로 읽으면서 앞의 0을 버리기 때문입니다. 텍스트/CSV 가져오기 화면에서 해당 열을 클릭하고 데이터 형식을 텍스트로 지정하면 0이 그대로 남습니다. 이미 날아간 값은 TEXT 함수로 자릿수를 채워 되살릴 수 있습니다.

    거래내역을 몇 년치 한 번에 받아도 되나요?

    증권사마다 한 번에 조회할 수 있는 기간에 제한이 걸려 있어 앞부분이 잘린 채로 저장되는 경우가 있습니다. 받은 뒤 첫 거래일과 행 수를 확인하고, 기간을 나눠 여러 번 내려받아 합치는 편이 안전합니다.

  • 주식 매매 내역 엑셀 정리하는 4단계 루틴

    주식 매매 내역 엑셀 정리하는 4단계 루틴

    앱 알림만으로는 알 수 없는 나의 투자 성적표

    매일 아침 증권사 앱 푸시 알림으로 시작한다. “00종목 3% 상승”, “계좌 평가금액 OOO원”. 좋아 보인다. 그런데 막상 이번 달 실현 손익을 따져보려니 머리가 아프다. 하나는 미래에셋, 또 하나는 토스, 기타 IRP 계좌까지. 여기저기 흩어진 숫자를 머릿속으로 더하려니 엉덩이가 무거워진다. 단순히 자산이 늘었나 줄었나를 떠나, 정확히 얼마를 벌고 잃었는지 모른다는 건 투자자로서 치명적이다. 여러 서비스를 운영하면서 매출이 얼마인지 모른 채로 둘 수는 없다. 주식도 마찬가지다. 분산된 계좌가 만드는 인지 부하를 줄이려면 주식 매매 내역 엑셀 정리가 필수적이다.

    주식 투자 내역 관리란 단순히 숫자를 기록하는 행위가 아니다. 나의 투자 철학을 데이터로 검증하는 시스템을 구축하는 과정이다. 앱 화면의 빨간색, 파란색 색깔 놀음에 현혹되지 않고, 냉정한 숫자판 앞에서 내 수익률의 정체를 마주해야 비로소 다음 스텝으로 넘어간다.

    1단계: 증권사 데이터를 엑셀로 가져오는 가장 빠른 법

    모바일 앱은 보기 편하지만 데이터를 뽑아내기엔 최악의 환경이다. PC 웹 페이지로 접속하자. 대부분의 증권사는 ‘매매/입출금 내역 조회’ 탭에서 엑셀이나 CSV 파일 다운로드를 지원한다. 파일을 열면 골치 아픈 현실이 기다리고 있다. 회사마다 날짜 표기가 제각각이라는 것이다.

    어떤 곳은 ‘240710’처럼 6자리로 떨구고, 어떤 곳은 ‘2024-07-10’처럼 하이픈을 넣어준다. 이걸 손바닥으로 바꾸다간 며칠이 걸린다. 엑셀의 ‘텍스트 나누기’ 기능을 쓰자. 데이터 탭에서 해당 열을 지정하고 고정 너비나 구분 기호를 통해 날짜 포맷을 강제로 맞춰라. 특히 YYMMDD 형식은 엑셀이 2000년대로 인식하지 못해 1924년이 되어버리는 참사가 빈번하니, 꼭 텍스트 형식으로 미리 변환해서 작업해야 에러를 피할 수 있다.

    2단계: 복잡한 매매 내역, 하나의 표준 양식으로 정리하기

    파일 몇 개를 하나의 시트로 합쳤다고 끝이 아니다. 눈이 아프다. 증권사별로 제공하는 컬럼 명칭은 천차만별이다. ‘수수료’를 어떤 곳은 ‘제비용’이라 쓰고, ‘거래 수량’을 ‘수량’ 혹은 ‘체결수량’이라 쓴다. 이걸 일일이 VLOOKUP으로 매칭하려 하지 말자. 불필요한 잡다한 정보는 과감히 지워버리는 게 정신 건강에 좋다.

    나는 1인 빌더로서 불필요한 로그 코드는 과감히 삭제하고 핵심 지표만 남기는 습관이 있다. 주식 데이터도 똑같다. 날짜, 계좌, 종목코드, 종목명, 매수·매도 구분, 단가, 수량, 거래금액, 수수료, 세금, 통화와 환율 컬럼을 표준화해 보존한다. 종목명은 언제든 바뀔 수 있으므로 표준 언어인 ‘종목코드’를 기준으로 통합 관리하는 것이 데이터 전처리의 핵심이다.

    앱에서 엑셀로 데이터 전송

    3단계: 실현 손익과 평가 손익을 잡는 핵심 수식

    가장 봐야 할 건 실현 손익과 평가 손익을 나누어 보는 일이다. IF 함수를 활용해 해당 종목이 현재 보유 중인지, 이미 청산했는지 구분하는 플래그를 하나 만들자. 청산한 건은 (매도금액 – 수수료) – (매수금액 + 수수료)로 확정된 손익이 나온다.

    문제는 보유 중인 종목의 현재가다. 매일 야후 파이낸스나 네이버 금융을 들어가 복사 붙여넣기 하는 건 미친 짓이다. STOCKHISTORY는 최근 거래일의 종가 같은 과거 데이터를 가져오는 함수이며 실시간 현재가를 제공하지 않는다. 장중 평가에는 Stocks 데이터 형식이나 별도의 시세 API가 필요하다.

    =STOCKHISTORY(“005930.KS”, TODAY(), TODAY(), 0, 0, 0, 1)

    다만 이 함수는 국내 일부 소형주나 최근 상장종목, 혹은 특정 환경에서는 값이 안 들어올 때가 있다. 그땐 수기로 입력할 수 있는 셀을 하나 옆에 마련해두는 게 안전장치다. 자동화에 대한 집착이 정확성을 해치면 안 되니까.

    4단계: 매일 5분 만에 갱신하는 무인 루틴 만들기

    반복 작업은 기계에게 맡겨야 한다. 내 블로그 글이 크론으로 자동 발행되듯, 엑셀도 그래야 한다. 개발자가 아니더라도 엑셀 매크로의 ‘기록’ 기능만으로 충분하다. ‘매크로 기록’을 누르고, 새로운 CSV 데이터를 붙여넣고, 날짜 포맷을 바꾸고, 정렬하는 과정을 한 번 실행해둔다. 앞으로는 단축키 하나만 누르면 이 루틴이 1초 만에 돌아간다.

    물론 매크로 관리가 점점 귀찮아질 시점이 온다. 파일이 꼬이거나 버튼이 안 먹는 날이 오는데, 그땐 과감하게 도구를 바꿀 타이밍이다. 나도 처음에는 엑셀 봇을 만들려고 했지만, 유지보수가 더 귀찮아서 결국 API를 쓰는 쪽으로 튕겨 나갔다. 자동화의 목적은 편함이지, 기술 자랑이 아니니까.

    엑셀 관리를 그만두고 자동화로 넘어갈 타이밍

    여기까지 읽고 “그래도 엑셀이 귀찮다”고 생각했다면 정상이다. 매일 CSV를 다운로드하고 복사하는 행위 자체가 이미 스트레스다. 인디 해커나 1인 창업가는 본업에 집중해야지, 엑셀 손질하러 반나절을 쓸 순 없다. 노코드 솔루션을 찾아보거나, 토스증권 API 등을 활용해 Read-only(읽기 전용)로 데이터를 가져오는 방식을 고민해야 할 때다.

    오픈 API를 통해 엑셀보다 정교한 세금과 환율, 배당금 내역까지 자동으로 계산해주는 도구들이 이미 나와 있다. 내가 쓰는 자동화 스크립트도 엑셀 파일의 반복 작업을 아예 없애준다. 수기 관리의 한계를 느꼈다면, 그땐 검증된 도구에 맡기고 대신 ‘분기 매매 보고서’를 쓰는 데 시간을 쓰자. 3개월, 1년 단위의 대세 흐름을 보며 투자 철학을 다듬는 게 셀 병합하는 것보다 가치 있다.

    근거로 삼은 문서

    고지 — 이 글은 투자 기록을 정리하는 도구 사용법이며 투자 권유나 자문이 아닙니다. 종목 판단은 제공하지 않으며 투자 결정과 그 결과의 책임은 투자자 본인에게 있습니다.


    글쓴이 정보

    이 글은 문체·사실성 두 가지 자동 검사를 통과했습니다. 초안을 쓰는 건 제가 만든 AI 파이프라인이고, 검사에 걸리면 공개하지 않습니다. 만드는 과정

    자주 나오는 질문

    여러 증권사 계좌 주식 내역을 엑셀로 합칠 때 가장 힘든 점은?

    날짜 표기가 제각각이고 컬럼 명칭이 달라서 데이터를 통일하는 작업입니다. ‘텍스트 나누기’ 기능으로 날짜 포맷을 맞추고, 표준 양식에 맞춰 불필요한 정보를 과감히 삭제하는 것이 핵심입니다.

    보유 중인 주식의 평가 손익을 엑셀로 자동 계산하는 방법은?

    엑셀의 STOCKHISTORY 함수를 활용하면 현재가를 자동으로 가져와 계산할 수 있습니다. 다만 일부 소형주나 신규 상장종목은 값이 안 들어올 수 있으니 수기로 수정할 수 있는 안전장치를 마련해두는 것이 좋습니다.

    주식 매매 내역을 엑셀로 관리할 때 꼭 남겨야 할 핵심 컬럼은?

    날짜, 종목코드(티커), 종목명, 매수/매도 구분, 단가, 수량, 금액 정도만 남기고 나머지는 지우는 게 정신 건강에 좋습니다. 종목명은 변경될 수 있으므로 반드시 ‘종목코드’를 기준으로 통합 관리해야 합니다.

    엑셀로 주식 내역을 관리하다가 더 이상 불편하다고 느껴지면?

    매일 CSV를 다운로드하고 복사하는 행위 자체가 스트레스를 유발할 때가 교체 타이밍입니다. 토스증권 API나 직접 만든 자동화 스크립트를 활용해 데이터를 자동으로 가져오고, 대신 투자 철학을 정리하는 데 시간을 쓰세요.

    엑셀로 주식 내역 관리 루틴을 자동화하는 꿀팁이 있나요?

    업무 자동화를 위한 매크로 ‘기록’ 기능을 활용해보세요. CSV를 내려받은 뒤 Excel 안에서 수행하는 붙여넣기·형식 변환·정렬은 매크로로 기록할 수 있으며, 파일 가져오기까지 자동화하려면 Power Query나 별도 스크립트가 필요하다.