마이크로소프트 엑셀의 최신 버전은 파이썬을 지원합니다. 모든 버전의 엑셀이 파이썬을 지원하지는 않습니다. 구독형 서비스인 마이크로소프트 365(Microsoft 365)에서 사용 가능합니다. 참고: Excel의 Python 소개 [마이크로소프트]
파이썬을 지원하기는 하지만, 엑셀이 파이썬 엔진을 내장하는 방식은 아닙니다. 마이크로소프트 클라우드(cloud) 서비스에 파이썬을 띄워놓고 불러 쓰는 방식입니다. 이 때문에 인터넷에 접속되어 있지 않으면 엑셀 파일에 있는 파이썬 기존 실행 결과나 코드를 볼 수 있지만, 실행할 수는 없습니다.
엑셀은 자체적으로 비주얼 베이직(Visual Basic)이라는 프로그래밍 언어를 지원하고 있습니다. 파이썬을 추가로 지원하는 이유는 여러 가지가 있겠지만, 데이터 처리를 해 보면 파이썬으로 훨씬 간결하게 코드를 작성할 수 있습니다.
아쉽게도 파이썬의 모든 기능을 활용할 수는 없습니다. 기본으로 지원하는 라이브러리(패키지) 외 추가 라이브러리를 설치할 수 없으며, 외부 데이터를 불러오는 기능은 엑셀의 파워 쿼리(Power Query)에 의존해야 합니다. 참고: 파워 쿼리를 사용하여 Excel의 Python용 데이터를 가져옵니다. [마이크로소프트]
이러한 한계점에도 엑셀에서 파이썬을 사용하면 편리한 경우가 있을 수 있습니다. 예를 들어 익숙한 파이썬으로 계산을 하고 싶은 경우도 있고, 이미 작성해 둔 파이썬 코드가 있을 수 있으며, 상황에 따라 엑셀의 다소 부족한 그래프 기능을 파이썬의 matplotlib 모듈로 보완할 수도 있기 때문입니다.
이 글에서는 엑셀에서 파이썬을 사용하는 방법을 간단한 예를 들어 살펴봅니다.
엑셀에서 파이썬 코드 삽입과 실행 방법
다음과 같이 엑셀에서 메뉴 > 수식 > Python(미리보기) > 편집기를 선택하면 파이썬 코드를 입력할 수 있습니다. 만일 이 메뉴가 보이지 않거나, 활성화되어 있지 않다면, 해당 엑셀 버전은 파이썬을 지원하지 않거나, 사용할 수 없는 상태인 것입니다.
메뉴를 선택하면, 다음과 같이 오른쪽에 파이썬 편집기 창이 나오고, 맨 아래에 현재 셀 위치인 A1 셀에 파이썬 코드를 추가할 수 있는 버튼이 나옵니다. 이를 눌러봅니다.
다음과 같은 파이썬 코드를 입력할 수 있는 창으로 바뀝니다.
간단하게 다음의 코드를 입력합니다.
import numpy as np
a_l = [1, 2, 3, 4, 5]
np.mean(a_l)
list [1, 2, 3, 4, 5]에 대해 평균을 계산하는 코드입니다. 코드를 입력한 후 Ctrl + Enter 키를 누르면, 코드의 마지막 라인의 실행 결과인 3.0 출력되고, A1 셀에도 들어갔습니다.
엑셀 시트의 셀 참조 방법
엑셀을 사용하다면 기초 데이터는 모두 엑셀의 시트에 있을 것입니다. 파이썬 실행 결과도 시트에 표시할 것입니다. 시트에 있는 셀의 값을 가져와서 계산하여 돌려주는 파이썬 코드를 작성해 봅니다.
다음과 같이 A3:B6 셀에 3번의 시험 성적을 기록한 표가 있습니다. 이 표에서 점수를 가져와서 평균을 구해 B8 셀에 넣을 것이니다.
B8 셀에서 파이썬 편집기를 선택하면, 그림과 같이 기존 A1 셀에 있는 파이썬 코드를 보여주고, 아래에 B8 셀에 새로운 파이썬 코드를 추가할 수 있는 버튼이 나옵니다.
A1 셀에서 사용한 변수 a_l은 B8 셀에서도 참고할 수 있습니다. 다음과 같이 a_l을 입력하고 실행하면 a_l의 값이 나옵니다. 이 때문에서 코드를 작성할 때, 동일한 변수명을 다른 용도로 중복 사용하지 않도록 주의해야 합니다.
시트의 셀을 가져오기 위해서는 xl() 함수를 사용합니다. 다음과 같이 xl("A3:B6", headers = True)를 입력하면, 테이블을 가져와서 DataFrame으로 변환해 줍니다.
headers = True로 지정하면 첫 행을 칼럼명으로 설정해 줍니다. 시트에서 표의 위치를 옮기면, 파이썬 코드에서 참조한 셀의 범위도 이에 맞춰 자동 변환됩니다.
Ctrl + X (잘라내기)와 Ctrl + Y (붙이기)를 사용하여 시험 성적표를 A4:C7 위치에서 B5:C8로 옮겼습니다. 그림과 같이 파이썬 코드의 셀 참조 범위가 자동으로 변경됩니다.
테이블에 행을 하나 추가해도 됩니다. 다음과 같이 표에서 행을 추가하면 이에 맞춰 파이썬의 셀 범위도 자동으로 조정됩니다.
C11 셀의 파이썬 코드로 다음과 같이 평균을 계산합니다.
score_df = xl("B5:C9", headers = True)
np.mean(score_df.점수)
score_df의 점수 칼럼이 시험 점수를 담고 있습니다. score_df.점수는 이 칼럼만 사용하겠다는 의미입니다.
C12 셀에는 표준 편차를 계산해서 넣어 보겠습니다. 앞에서 설명한 것처럼 파이썬 셀 간의 변수가 공유되기에 score_df를 다시 만들 필요가 없습니다. 참고: 어떤 순서로 파이썬 셀이 실행되는 것인지 애매할 수 있기에 변수명 사용 시 주의를 기울여야 합니다.
C12 셀에 계산된 표준 편차가 나타났습니다.
정리하며
마이크로소프트 엑셀에서 파이썬 코드를 사용하는 방법을 살펴보았습니다. 모든 엑셀 버전이 파이썬을 지원하지는 않습니다. 사용할 수 있는 라이브러리에도 제약이 있고 추가 라이브러리를 설치할 수도 없습니다. 실행을 위해서는 인터넷에 접속되어 있습니다.
이런저런 한계가 명확하지만, 나름 유용할 수 있습니다. 특히 엑셀의 기본 그래프 기능은 로그 스케일을 설정하면 미흡한 면이 있습니다. 이 부족한 점을 파이썬이 어느 정도 보완할 수 있기에 사용자에 따라서는 상당한 도움이 될 수 있습니다. 이어지는 글에서 살펴봅니다.
참고 서적:
이어지는 글: 엑셀에서 파이썬으로 그래프를 그려보자 (+한글 사용) [파이썬 분석 부록 B2]
연재 목록: 자산 배분 분석 방법 책 소개, 연재글 및 사례 모음 [목록]
함께 읽으면 좋은 글 (최신 글)
- 엑셀로 임의 적립식 투자 수익률에 해당하는 거치식 CAGR을 구해보자 [데이터 분석 부록 C2] (목표값 찾기)
- 구글 시트로 임의 적립식 투자 수익률에 해당하는 거치식 CAGR을 구해보자 [데이터 분석 부록 C1] (구글 시크 Google Seek)
- 임의 적립식 투자 수익률에 해당하는 거치식 성장률을 찾아보자 [파이썬 분석 부록 A4]
- 파이썬을 이용한 수치 해석 (적립식 수익률에 해당하는 거치식 성장률을 찾아보자) [파이썬 분석 부록 A3]
- 거치식과 적립식 수익률을 서로 환산해 보자 (어떻게 추정하면 적절할까?) [파이썬 분석 부록 A2]
함께 읽으면 좋은 글 (인기 글)
'주식투자' 카테고리의 다른 글
국내 자산을 기초자산으로 하는 커버드콜 ETF의 성과 비교 사례와 해석 (0) | 2025.05.31 |
---|---|
엑셀에서 파이썬을 이용하여 혼합식 투자 수익률을 거치식 CAGR로 환산하기 [파이썬 분석 부록 B3] (0) | 2025.05.30 |
임의 인출식/혼합식 투자 수익률에 해당하는 거치식 CAGR을 구해보자 (파이썬 수치 해석) [파이썬 분석 부록 A5] (0) | 2025.05.30 |
엑셀에서 파이썬으로 그래프를 그려보자 (+한글 사용) [파이썬 분석 부록 B2] (0) | 2025.05.29 |
엑셀로 임의 적립식 투자 수익률에 해당하는 거치식 CAGR을 구해보자 [데이터 분석 부록 C2] (목표값 찾기) (1) | 2025.05.29 |
구글 시트로 임의 적립식 투자 수익률에 해당하는 거치식 CAGR을 구해보자 [데이터 분석 부록 C1] (골 시크 Goal Seek) (3) | 2025.05.28 |
임의 적립식 투자 수익률에 해당하는 거치식 성장률을 찾아보자 [파이썬 분석 부록 A4] (2) | 2025.05.28 |
파이썬을 이용한 수치 해석 (적립식 수익률에 해당하는 거치식 성장률을 찾아보자) [파이썬 분석 부록 A3] (0) | 2025.05.28 |