본문 바로가기
업무자동화/파이썬-엑셀 자동화 기초

한/글에 누름틀이 있다면 엑셀에는 이것이 있다!?

by Martinii의 회사원코딩 2021. 6. 6.

안녕하세요?

이번 포스팅은 엑셀의 "이름지정"에 대해 알려드리려고 합니다.

 

제 유튜브채널이나 블로그에 문의 주시는 다양한 댓글 중 가장 빈번한 테마는 역시

"엑셀에서 한/글로 데이터 이동"입니다. 혹은 "엑셀에서 데이터 추출 후 파이썬에서 가공하고 한/글 보고서에 삽입하여 완성" 입니다.

 

재미있는 점은, 댓글 주신 분들 대부분이 데이터를 잘 다루시고, 구조화에 익숙하셔서 그런지 

엑셀 소스파일을 굉장히 깔끔하게 정리해 두십니다. 예를 들면,

굳이 프로세스를 추가할 필요가 없이 옮겨다 적으면 되는 상태.

이런 서식이라든지,

모든 것이 준비되어 있는 상태.

이같은 서식이라든지,

이를테면 엑셀파일을 일종의 DB처럼 활용하고 있는 상태죠.

 

그런데 항상 위와 같은 케이스는 아니고요, 어떤 분은 데이터를 이런 식으로도 활용하고 계십니다.

이런 엑셀파일에서는 손복붙이 훨씬 빠르겠네요.

데이터 특성에 따른 차이일 수 있지만, 이런 데이터를 구조화해서 한/글 보고서를 자동으로 만들려면

굉장히 손이 많이 가게 됩니다. 수많은 예외처리 때문에 코드도 길어지고 피곤한 케이스입니다.

 

그럼에도 불구하고

이런 엑셀 서식에서 값을 추출할 때 유용하게 사용할 수 있는 방법입니다.

바로 이름지정입니다. 예를 들어 아래와 같은 엑셀시트가 있다고 가정합시다.

예시문서

검정색 외의 글자색(빨강 파랑) 부분이 직접 입력하는 칸입니다.

 

특정 셀이나 범위에 이름을 정의하는 방법은 간단한데, 엑셀에서 좌측 상단에 이 부분에 값을 입력하면 됩니다.

이 부분을 클릭하고,
 "사업산출물" 입력한 후 엔터

이런 작업 후에는 해당 셀로 이동시 셀주소 대신 정의한 이름이 나타나게 됩니다.

 

이제 이 셀의 값은 파이썬에서

셀주소가 아니라 정의한 이름으로 불러올 수 있게 되었습니다.

불러오거나 값을 변경하는 방법은 간단합니다.

value = ws.Range("사업산출물").Value
print(value)

ws.Range("사업산출물").Value = "새로운이름"

이런 식으로 값에 접근하고 값을 변경할 수 있습니다.

 


 

이름지정의 신박한 장점

셀의 주소를 직접 입력해서 값을 추출하는 대신 이렇게 "이름지정"을 통해 값을 전달받을 때

신박한 장점이 하나 있습니다.

 

해당 셀 상단에 행이 여러 개 추가되어서 해당 셀의 주소가 변경되더라도

해당 셀의 이름이 따라붙기 때문에(추적?), 오류 가능성이 줄어들게 됩니다.

 

예를 들어 설명드리면

1. 하단의 "구성 및 활동" 내용(파란색 텍스트) 셀에 "구성및활동" 이름 지정.

 

2. 파이썬에서 정상적으로 불러와지는 것을 확인

3. 상단에 임의의 행을 여러 개 추가하여 셀 주소 변경

4행, 5행 추가한 상태

4. 셀 주소가 바뀌었어도 파이썬에서 "구성및활동" 값을 제대로 추적하는 것을 확인

 

너무 간단한 내용이라 길게 풀어쓰기도 힘드네요...

이번 포스팅은 여기서 마칩니다.

행복한 하루 되세요!

 


 

세 줄로 요약하면,

1. 엑셀에도 특정 셀이나 범위에 "이름"을 지정하는 것이 가능합니다. 한/글의 누름틀 혹은 필드처럼요.

2. 엑셀의 Range메서드와 지정한 이름을 사용해서 파이썬에서도 해당 셀의 값을 불러오거나 변경할 수 있습니다.

3. 상단에 행이 추가되는 등, 셀 주소가 임의로 바뀌어도 이름지정된 값은 똑똑하게 주소를 자동으로 추적해줍니다.

 


 

부록 : 파이썬-트레이딩 관련 책 추천

 

 

 

퀀트 전략을 위한 인공지능 트레이딩:파이썬과 케라스를 활용한 머신러닝/딥러닝 퀀트 전략 기

COUPANG

www.coupang.com

"현금은 교환수단으로만 적절하다."

파이썬을 배우는 사람들 중 열에 아홉은 돈 버는 수단으로 파이썬을 적극 활용하게 되는 것 같습니다.

정보수집, 각종 자동화, 머신러닝과 딥러닝이라는 고급기술을 배워서 오로지 업무에만 활용하는 분들이 있을까요?

뚜렷한 목적과 비전을 가지고 공부하면 더욱 효율적으로 실력이 붙는 법입니다.

아이리스 세토사 구분하고 맨해튼 아파트 어쩌고 다 해 보셨다면

현실세계 적용의 입문은 역시 트레이딩 아닐까요?^^;


 

 

손가락 하나 까딱하지 않는 주식 거래 시스템 구축:파이썬을 이용한 데이터 수집과 차트 분석 매

COUPANG

www.coupang.com

책과 유튜브 강의를 병행하는 저자 분들이 많아지고 있습니다.

개인적으로는 좋은 현상이라고 생각하는데, 저자 분들은 날이 갈수록 빡세지는 것 같습니다.

이 분의 책도 유튜브(프로그램 동산)에서 동영상을 병행 시청할 수 있고, 어려운 개념도 나름 꼼꼼하게 짚어줍니다.

다만 파이썬을 기초부터 응용까지 배우기 위해 이 책을 사서 읽는 것은 부적절하다는 생각이 듭니다.

대신 순수하게 자동 주식거래시스템 구축을 최우선 목표로 하신다면 이 책이 가장 적절한 것 같습니다.

아래에 책소개와 목차를 붙여놓습니다. 책을 구매하실 분들은 참고하시기 바랍니다.


책소개

매일 주식만 바라보던 일상에서 해방되어 가족 또는 친구들과 행복한 시간을 보내길 바랍니다!

24시간 자동으로 주식을 분석하고 거래하는 시스템을 구축하는 방법을 배우고 나머지 시간은 더 멋지게 보내고 싶은 분들을 위한 책입니다.

프로그램을 처음 접하는 초보자부터 IT 업계에 종사하는 개발자까지 모두가 볼 수 있게 쉽게 구성하였으며 저자가 실제로 사용 중인 주식 자동화 알고리즘을 기반으로 설명하고 있습니다.

★ 이 책에서 다루는 내용 ★

◎ 증권사에서 제공하는 API로 주식을 분석하고 24시간 자동으로 매매하는 프로그램을 구축한다.

◎ HTS의 조건검색식을 파이썬에서 사용하는 방법을 배운다.

◎ 주식을 처음 접하는 독자를 위해서 시스템 구축에 필요한 내용을 기초부터 살펴본다.

◎ 예제 코드와 함께 제공되는 동영상 강의를 통해서 빠르고 쉽게 학습할 수 있다.

◎ 매수 신호를 포착하는 백테스팅 분석법도 다룬다.

목차

▣ 0장: 시작하기 전에

0.1 프로젝트 소개

0.2 프로젝트의 목표

0.3 프로그램에 진행에 필요한 사항

0.4 책의 구성

0.5 책에서 다루지 않는 내용

 

▣ 01장: 개발 환경 구성

1.1 아나콘다 설치 및 가상환경 설정

___1.1.1. 64비트 버전의 아나콘다에서 32비트 가상환경 설정하기

1.2 파이참 설치 및 설정

___1.2.1. 파이참 설치

___1.2.2. 파이참과 아나콘다 연동

 

▣ 02장: 파이썬 기초 배우기

2.1 파이참에서 폴더와 파일 생성하기

2.2 데이터 출력 변수와 포맷 산수 익히기

___2.2.1. print로 데이터 출력하기

___2.2.2. 변수

___2.2.3. 산술 연산

___2.2.4. 연습 문제

2.3 제어문

___2.3.1. if 조건문

___2.3.2. for 반복문

___2.3.3. while 조건문

___2.3.4. 연습 문제

2.4 여러 개의 데이터를 리스트로 관리하기

___2.4.1. 튜플

___2.4.2. 리스트

___2.4.3. 딕셔너리

___2.4.4. 연습 문제

2.5 클래스와 함수

___2.5.1. 함수(define)

___2.5.2. 클래스(Class)

___2.5.3. 연습 문제

2.6 프로젝트 관리

___2.6.1. 프로젝트 생성 및 폴더 관리

 

▣ 03장: 키움 API

3.1 키움 API 설치

3.2 API를 이용하는 데 필요한 PyQt5

___3.2.1. PyQt5를 왜 사용할까?

___3.2.2. 이벤트 루프가 만들어진 개념

___3.2.3. 싱글 쓰레드의 이벤트 루프란?

___3.2.4. PyQt5를 사용한 코드 구성 및 키움 API 사용하기

___3.2.5. 24시간 자동화 시스템의 동작 원리

▣ 04장: 계좌 정보 가져오기

4.1 키움 API로 키움증권에 로그인하기

4.2 계좌번호 가져오기

4.3 예수금 정보 가져오기

___4.3.1. KOA에서 예수금 싱글데이터 확인하기

___4.3.2. 예수금 정보 가져오기

4.4 계좌에서 계좌평가잔고내역 가져오기

___4.4.1. 싱글데이터로 정보 처리하기

___4.4.2. 멀티데이터로 보유 종목 정보 처리하기

4.5 계좌에서 미체결 종목 가져오기

___4.5.1. 미체결 종목 가져오기

___4.5.2. 시간 간격 주기

 

▣ 05장: API를 이용해 투자 방식에 맞는 종목 분석하기

5.1 코스닥 종목 가져오기

5.2 일봉데이터 정보 가져오기

___5.2.1. 이벤트 루프의 시간 간격 체크

___5.2.2. 각 종목의 전체 정보 가져오기

5.3 포트폴리오로 종목 분석

___5.3.1. 그랜빌의 매수 신호 제 4법칙으로 종목 분석

___5.3.2. 조건을 통과한 종목을 파일로 저장

 

▣ 06장: 보유한 종목 미체결 종목 분석된 종목 합치기

6.1 분석한 종목 가져오기

6.2 보유 종목 미체결 종목 분석된 종목을 하나의 딕셔너리로 구성

___6.2.1. 하나의 딕셔너리에 모든 종목 합치기

___6.2.2. 종목별로 스크린 번호 할당하기

 

▣ 07장: 실시간 종목 분석 및 매매

7.1 자동으로 주식 시장의 시작과 종료 확인

___7.1.1. 장 시간을 체크하기 위한 이벤트 등록

___7.1.2. 장 시작과 종료 체크하기

___7.1.3. 스크린 번호의 상세 원리

7.2 종목들을 실시간 등록할 때 스크린 번호 사용하기

7.3 종목정보 실시간 체크

___7.3.1. 실시간 정보 데이터 가져오기

7.4 실시간 매매조건 구성

___7.4.1. 지정가로 종목 매수하기

___7.4.2. 미체결 수량 매수 취소하기

___7.4.3. 시장가로 종목 매도하기

7.5 종목 주문 후에 체결상태 구성하기

___7.5.1. 실시간 체결정보를 확인하기 위한 이벤트 등록

___7.5.2. 체결정보 데이터 받기

___7.5.3. 변경된 잔고내역 데이터 받기

___7.5.4. 서버에서 메시지 받기

7.6 장 종료 후의 처리 구성하기

___7.6.1. 실시간 연결 모두 끊기

___7.6.2. 다음 날을 위한 종목 분석 들어가기

___7.6.3. 프로그램 종료하기

 

▣ 08장: 문제해결 및 시스템 자동화

8.1 로깅

___8.1.1. 로그의 기본 개념

___8.1.2. 커스텀 로그(Custom Log) 설정하기

8.2 프로그램 운영 상황을 슬랙 메시지로 받기

8.3 프로그램 실행 파일 만들기

___8.3.1. 파이썬 프로그램의 배치 파일 생성

___8.3.2. 배치 파일이 자동으로 실행되게 만들기

8.4 프로그램 자동 실행 설정

8.5 컴퓨터가 자동으로 켜지게 만들기

 

▣ 09장: 조건검색 활용과 알고리즘 흐름도

9.1 파이썬에서 조건검색 활용하기

___9.1.1. 조건검색에 필요한 함수 확인하기

___9.1.2. 조건식을 위한 이벤트 모음

___9.1.3. 조건검색 단일 조회 요청하기

___9.1.4. 조건검색 실시간으로 사용하기

9.2 알고리즘 흐름도의 전체 모습 확인

___9.2.1. 구간별 함수 흐름도 파악하기

___9.2.2. 전체 도면 확인

 

▣ 10장: 연습 문제 풀이

 

 


donaricano-btn

댓글0