엑셀 VBA 대신 파이썬 - 실무 중심 예제 1탄

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 พ.ย. 2024

ความคิดเห็น • 60

  • @user-fUckyOubitCH
    @user-fUckyOubitCH 2 ปีที่แล้ว +12

    이분 강의 정말 잘 가르쳐주십니다. 원래 공부를 잘하는 것과, 남에게 잘 가르치는 것은 서로 별개의 능력이라, 유료 강의 강사분들도 보면 강사분들 본인은 코딩을 잘 할지 몰라도 남을 가르치는 실력은 영 부족해서 강의를 듣는 내내 도대체 무슨 소린지 답답한 강의가 많았는데, 이분은 가르치는 실력 또한 가지고 계셔서 수강생들의 이해를 쉽게 돕습니다.

    • @startcoding.official
      @startcoding.official  2 ปีที่แล้ว +3

      강사에게 가장 기분좋은 말씀해주셔서 진심으로 감사드립니다 ^^
      저는 전공자지만 코딩을 스스로 배울 능력이 부족했고, 코딩 유료강의를 많이 신청해서 들었습니다.
      근데 코딩 강사들의 강의는 대부분 대충 설명하고, 지루하고, 어렵게 설명하더라고요.
      저는 그게 너무 싫었고, 스타트코딩 브랜드를 만들게 되었습니다. 그렇기 때문에 앞으로도 초보자 중심의 쉽고 재미있는 강의를 많이 만들 계획입니다 ^^
      다시 한번 감사드립니다.

    • @hw2864
      @hw2864 หลายเดือนก่อน

      인정

  • @marine-gift
    @marine-gift ปีที่แล้ว +1

    좋은 영상, 너무 쉽게 설명해 주셔서 감사 드립니다.

  • @냥옹-w2b
    @냥옹-w2b ปีที่แล้ว +1

    수고하셨습니다

  • @winning_games
    @winning_games ปีที่แล้ว

    잘 보겠습니다.

  • @Wowwow-wl3kx
    @Wowwow-wl3kx 2 ปีที่แล้ว +1

    꼭 업무에 도움되는걸 배워갔으면 좋겠어요... 꼭이요~!!

  • @조민경-m7c
    @조민경-m7c 7 หลายเดือนก่อน

    정말 좋은 수업이에요. 감사합니당!!

  • @윤행허-t8m
    @윤행허-t8m 2 ปีที่แล้ว +3

    좋은 강의 감사합니다~

  • @excelloveman-3399
    @excelloveman-3399 2 ปีที่แล้ว +2

    안녕하세요
    엑셀의 경우는 파일 전달하면 배포잖아요?
    파이썬으로 크롤링 할 경우 개발 완료 된 실행파일을
    타인에게 배포 사용시 어떤 방법을 사용하나요?

    • @startcoding.official
      @startcoding.official  2 ปีที่แล้ว +1

      안녕하세요
      저는 pyinstaller 라이브러리 를 이용해서 배포합니다 ㅎㅎ
      이용방법은 구글검색으로도 쉽게 알수 있습니다.
      저도 영상만들어서 업로드 해볼게요 ^^

    • @freshscenery
      @freshscenery ปีที่แล้ว

      강의는 언제 올려주시나요 ㅎㅎ

  • @도시검객-y9m
    @도시검객-y9m 2 ปีที่แล้ว +1

    좋은 강의 감사합니다.

  • @covenantpeoplefellowship9762
    @covenantpeoplefellowship9762 2 ปีที่แล้ว +1

    스타트코딩 강사님, 감사합니다. 이해하기 쉽게 강의 진행을 해 주셔서 잘 이해가 참 잘 됩니다. 질문 드리는 것은, 자료(가격이나 수량 등)를 Row에 1을 더하면서 입력하게 되는데, 다른 경우에 필요하다면 Column을 하나씩 이동하면서 넣는 코딩도 할 수 있나요?

    • @startcoding.official
      @startcoding.official  2 ปีที่แล้ว +2

      네 가능합니다ㅎㅎ
      여러가지 있겠지만,
      지금 바로 떠오르는 방법을 말씀 드릴게요.
      column 은 ABCDE로 되어있어요
      아스키코드로 변환하면 A=65입니다.
      아스키코드 숫자를 1씩 증가시키면서 열을 하나씩 이동시킵니다.
      아스키코드를 문자로 변환하는 명령어는 chr(65) :A 입니다.

    • @covenantpeoplefellowship9762
      @covenantpeoplefellowship9762 2 ปีที่แล้ว

      @@startcoding.official 강사님, 참 감사합니다. 잘 숙달해 보겠습니다.

  • @startcoding.official
    @startcoding.official  ปีที่แล้ว

    어렵고 불친절한 코딩 강의에 지치셨나요?
    스타트코딩이 여러분들을 힘껏 도와 드리겠습니다.
    ★ 스타트코딩과 함께 코딩 공부하기
    startcoding.liveklass.com

  • @jjjabong7574
    @jjjabong7574 2 ปีที่แล้ว

    친절한 설명 너무 감사합니다.

  • @SystaneEA
    @SystaneEA ปีที่แล้ว

    와... 감동입니다... 이거 보면서 코딩 다시 배우고있어요 ㅠㅠㅋㅋ 저 질문이 있는데요 마지막 부분에
    i = 0
    for cell in ws_all['A']:
    if i != 0:
    cell.value = i
    i = i + 1
    이렇게 되어있는데 A컬럼이 엑셀의 100만번째 열까지 안가고 셀 있는 부분까지만 가는건 원래 그런건가요??

  • @think.about.nothing
    @think.about.nothing 2 ปีที่แล้ว +1

    언녕하세요 강사님
    파이썬 공부한게 아까워서
    Openpyxl 좀 배워볼까 생각을 해봤는데
    1) 구글 앱스스크립트로 구글시트 쓰는게 더 낫지 않나...클라우드기반이어서 활용성도 낫고
    2) ms powerautomate로 flow만들어서 조직원한테 솔루션 상태로 배포하면 더 편하고 좋지 않을까..
    이런생각이 들어서 좀 망설여 지네요.. 이들과 차별화되는 openpyxl의 강점이 있을까요?

    • @startcoding.official
      @startcoding.official  2 ปีที่แล้ว

      안녕하세요.
      OpenpyXL은 파이썬으로 엑셀을 자동화시키는 목적입니다.
      강점은 엑셀이 열려있지 않아도 자동화가 가능하며, 데이터 읽고쓰기, 스타일변경, 필터, 정렬, 차트, 피벗테이블 등 대부분의 엑셀 작업이 가능합니다.
      또한 판다스도 조합해서 사용할 수 있습니다.
      구글앱스스크립트와 powerautomate는 사용해보지않아서 모르겠네요 ^^

    • @think.about.nothing
      @think.about.nothing 2 ปีที่แล้ว +1

      @@startcoding.official 네 답문 감사합니다
      파이썬의 다른 라이브러리와 프레임워크를 엑셀파일과 연계해서 쓸수 있는게 강점이군요. 파이썬이 데이터를 다루는 라이브러리가 많으니 openpyxl의 활용도도 높을 것 같습니다.

  • @벤조이
    @벤조이 2 ปีที่แล้ว

    혼자 머리 싸매고 해봤는데 풀이 코드와 비교해보니 지저분하기 그지없네요 ㅠㅠㅋㅋㅋ
    풀이 코드로 돌렸을 때 (불러오는 테이블의 데이터들을 제대로 저장하였음에도)합계 데이터가 입력되지 않는데 왜인가요? (낑낑대며 고민하다가 결국 도움 댓글 남깁니다.. ㅜㅜ)
    >> 다시 한번 일일히 다 열고 저장하니 되네요 해결했습니다!
    >> 파일 생성, 함수 계산, 취합까지 자동화를 진행하는 경우가 있을 것 같은데, 열어서 저장하는 과정이 필수여야 한다면 불편할 것 같습니다.
    함수가 들어가게 되면 저장하는 과정이 필요한 것인지, 이유가 무엇인지, 그 과정이 필요하지 않는 코드가 있는지 궁금합니다.
    영상 몇번씩 돌려보면서 재미있게 공부하고 있습니다. 좋은 교육 영상 감사드려요!!
    import openpyxl
    # 취합한 데이터를 저장할 엑셀 파일 경로 정의 및 파일 생성
    save_path = '03. 엑셀자동화/데이터취합.xlsx'
    wb = openpyxl.Workbook()
    ws = wb.active
    ws.title = '데이터취합'
    # 데이터를 불러올 엑셀 파일
    load_path1 = '03. 엑셀자동화/쿠팡.xlsx'
    load_path2 = '03. 엑셀자동화/11번가.xlsx'
    load_path3 = '03. 엑셀자동화/스마트스토어.xlsx'
    # 엑셀 불러오기
    wb1 = openpyxl.load_workbook(load_path1)
    wb2 = openpyxl.load_workbook(load_path2)
    wb3 = openpyxl.load_workbook(load_path3)
    # 불러온 엑셀의 시트 선택하기
    ws1 = wb1['data']
    ws2 = wb2['data']
    ws3 = wb3['data']
    # 총 데이터 개수 정의
    total_data_count = (ws1.max_row-1) + (ws2.max_row-1) + (ws3.max_row-1)
    # 각 테이블의 데이터가 취합되는 시작 행을 정의
    ws1_startrow = 2
    ws2_startrow = ws1_startrow + (ws1.max_row - 1)
    ws3_startrow = ws2_startrow + (ws2.max_row - 1)
    # 헤더 정의
    ws.append(['순번', '제품명', '가격', '수량', '합계'])
    # 데이터 불러오기
    for x1 in range(ws1.max_row-1):
    ws.append([ws1_startrow-1+x1, ws1.cell(row=x1+2, column=2).value, ws1.cell(row=x1+2, column=3).value,ws1.cell(row=x1+2, column=4).value,ws1.cell(row=x1+2, column=5).value])
    for x2 in range(ws2.max_row-1):
    ws.append([ws2_startrow-1+x2, ws2.cell(row=x2+2, column=2).value, ws2.cell(row=x2+2, column=3).value,ws2.cell(row=x2+2, column=4).value,ws2.cell(row=x2+2, column=5).value])
    for x3 in range(ws3.max_row-1):
    ws.append([ws3_startrow-1+x3, ws3.cell(row=x3+2, column=2).value, ws3.cell(row=x3+2, column=3).value,ws3.cell(row=x3+2, column=4).value,ws3.cell(row=x3+2, column=5).value])
    # 저장하기
    wb.save(save_path)

    • @startcoding.official
      @startcoding.official  2 ปีที่แล้ว

      함수 입력만하고 데이터를 가져올 필요가 없다면 열어서 저장할 필요가 없습니다.
      데이터를 가져올 때 함수형태가 아니라 값형태로 가져오게 하기위해 열어서 저장을 해준 겁니다.
      pywin32라이브러리는 그 과정이 필요없으니 다른 라이브러리를 사용해 보는 것도 좋은 방법입니다

  • @서봉준-k8o
    @서봉준-k8o 2 ปีที่แล้ว +1

    엑셀을 사랑하는 1인입니다.
    나름 vba도 공부하고 엑셀에 자신감이 생겼는데...
    엑셀이 잘 되어 있는데 openpyxl를 사용해서 굳이 엑셀을 제어 할 이유가 있나요?

    • @startcoding.official
      @startcoding.official  2 ปีที่แล้ว +1

      목적은 자동화입니다.
      프로그램만 실행하면 알아서 일을 다해주기 때문에 배우는거죠 ㅎㅎ
      pandas, win32com등의 라이브러리와 조합하면 빠른 데이터 처리속도 + 엑셀 대부분의 기능을 파이썬으로 자동화할 수 있습니다.

  • @misue946
    @misue946 2 ปีที่แล้ว +2

    솔직히 파이썬이 젤 좋은거 다 알지만
    왜 VBA 쓰냐면
    내가 쓰는게 중요한게 아니라. 파이썬을 모르는 남도 조금은 이해할수 있는 VBA를 쓰는게 중요해서 VBA를 쓰는겁니다.
    혹시라도 내가 다른 작업을 맡았을떄
    인수인계를 해야 될때 등등
    모두가 다 파이썬을 조금씩 할줄 안다면 파이썬을 쓰겠지만 말이죠.

    • @아라비-x1d
      @아라비-x1d 2 ปีที่แล้ว +1

      VBA할때도 VBA넣지 말라는 분들의 논리가 그거 아닌가요 ㅋㅋㅋ 엑셀할때 수식 넣지 말라는 분들도 그런 논리구요. VBA는 보안문제 때문에 사실상 퇴출분위기 이구요. 어차피 배포가 어렵다고 보면 본인 편한걸로 하는게 맞을것 같아요.

    • @startcoding.official
      @startcoding.official  2 ปีที่แล้ว

      기존에 VBA가 편한 분들은 VBA쓰시면 되죠~ㅎㅎ
      대신 VBA배울지, 파이썬을 배울지 고민하는 상태라면 엑셀 뿐만아니라, 크롤링 자동화 웹개발 데이터분석 인공지능 등 여러가지로 활용가능한 파이썬을 추천합니다 ^^

    • @misue946
      @misue946 2 ปีที่แล้ว

      @@아라비-x1d 보안문제 때문에 퇴출 ㅡㅡ?;; 무슨 ㅈㄴ 빡센 프로그램 만드세요? 고작 회사 실무 관련 간단한거 vba 로 만드는건데 보안이 무슨 ㅋㅋ

    • @misue946
      @misue946 2 ปีที่แล้ว +1

      @@startcoding.official 물론 파이썬 좋죠.
      파이썬 좋은거 모르는 사람도 있습니까? 애초에 가볍고 편리함을 근거로 만들어진 언어인데?
      문제는 VBA가 아무리 개쓰레기라도.
      아주 자잘한 매크로 하나하나 파이썬으로 만들지 않는 현재에선 VBA가 범용성이 훨씬 높다는거죠.
      엑셀에 한해선 말이죠.
      애초에 엑셀을 주력 문서로 쓰는 직종중에 데이터의 관리 떔에 쓰는게 보통인데.
      이 데이터라는게 설계하는 사람이 있고. 사용하는 사람이 있는데 사용하는 사람 같은 경우는 vba 조차 관심 없는 사람이 태반인데 파이썬까지 등장하면 답이 없어요.
      내가 쓰려고 하는 엑셀 문서를 파이썬으로 쓴다? 전 찬성입니다만.
      남과 공유해야 되는 문서에 파이썬을 쓴다? ... 음.. 좀 아닌것 같아요.

    • @startcoding.official
      @startcoding.official  2 ปีที่แล้ว

      @@misue946 네 영상의 내용에서 무엇이 불편한지 모르겠네요. 저는 파이썬을 쓰면 좋다는 것이지 강요한 적이 없습니다. vba든 파이썬이든 필요할 경우에만 배워서 쓰면 됩니다 ^^
      추가로 파이썬은 엑셀 뿐만 아니라 업무자동화 전반에 파이썬을 배워서 활용할 수 있습니다.
      1. 데스크톱 자동화
      - 마우스 자동화
      - 키보드 자동화
      - 폴더, 파일 관리 자동화
      - 스케쥴링
      2. 브라우저 자동화
      - 로그인 자동화
      - 글쓰기, 업로드 자동화
      - 좋아요, 댓글, 이웃추가 자동화
      - 메일 자동화
      3. 데이터 수집 자동화
      - 이커머스 데이터 수집
      - 부동산, 주식, 코인 데이터 수집
      - 고객 리뷰 수집
      - 공고 데이터 수집
      4. 엑셀 자동화
      - 엑셀 만들기, 불러오기, 저장
      - 취합하기
      - 분리하기
      - 스타일 변경
      - 피벗테이블, 차트, 정렬 등
      1,2,3,4를 조합하면
      대부분의 반복적인 업무를 자동화할 수 있습니다.
      vba로 1,2,3,4를 다 자동화 할 수 있을까요?
      확장성을 고려하면 파이썬을 배우는 것이 200% 옳다고 생각합니다.
      말씀 하신 대로 엑셀만을 고려했을때는 vba를 배우는 것이 현명할 수도 있습니다 ^^

  • @user-fn8kn1fw2q
    @user-fn8kn1fw2q 2 ปีที่แล้ว +1

    강사님 늦었지만, 이것도 출석합니다. ^^

  • @pangy0153
    @pangy0153 2 ปีที่แล้ว +1

    매우 유익한 새 강의들을 올려 주셔서 감사합니다. 지난번 질문의 후속 질문을 또 드립니다. 답을 주신대로 한다고 했는데, 에러 메시지가 자꾸 나옵니다. 제가 하려는 것은 주식 이름을 옆으로 써 가면서(column A에 삼성전자, B에 셀트리온 등) 그 이름 아래에 현재가를 쓰려고 합니다.
    제 코딩의 하단을 보여 드리면, 아래와 같은데, no attribute 'value' 라는 메시지가 뜹니다. 답을 주시면 감사하겠습니다.
    ws[f'{col}1'] = name
    ws[f'{col}2'] = price
    col = col + 1
    wb.save(fpath) # 데이터를 화일에 저장
    AttributeError: 'tuple' object has no attribute 'value'

    • @startcoding.official
      @startcoding.official  2 ปีที่แล้ว

      tuple 은 리스트와 비슷한 자료형입니다.
      tuple_a = (객체1, 객체2, 객체3)
      즉, tuple_a의 원소에 접근해야지 객체를 가져올 수 있습니다.

    • @pangy0153
      @pangy0153 2 ปีที่แล้ว +1

      @@startcoding.official 빠른 응답에 정말 감사드립니다.

  • @코난슐렌키-x6n
    @코난슐렌키-x6n ปีที่แล้ว

    도대체 05 셀데이터 접근방법 강의는 어디있는거죠 ㅠ?

    • @startcoding.official
      @startcoding.official  ปีที่แล้ว

      업무자동화 강의 재생 목록을 한번 확인해 보시겠어요?

  • @JuwonSeong
    @JuwonSeong 2 ปีที่แล้ว +1

    댓글 꾹꾹

  • @hideonknowledge
    @hideonknowledge ปีที่แล้ว +1

    선생님 혹시 구글시트도 자동화가 가능한가요?

    • @startcoding.official
      @startcoding.official  ปีที่แล้ว

      네 gspread 라이브러리를 이용하면 가능합니다 :)

  • @emptyboy85
    @emptyboy85 2 ปีที่แล้ว +1

    이거지

  • @soljungkim2656
    @soljungkim2656 ปีที่แล้ว

    for문에 next문이 없어니까 이상함.ㅎ

  • @youngillim7854
    @youngillim7854 ปีที่แล้ว

    영상 번호, 들어야 할 차례순을 좀 주셔요

    • @startcoding.official
      @startcoding.official  ปีที่แล้ว

      재생 목록을 가시면 순서대로 정리를 해놨습니다.
      헷갈리실 수도 있으니 영상제목 마지막에 번호를 부여해 보겠습니다 :)

  • @lustertimber743
    @lustertimber743 2 ปีที่แล้ว +1

    의도는 알겠지만.. ctlr + C,V가 해당의 경우 10000배쯤 빠르지 않을까요... 그리드에 엑셀 임포트 해서 재출력하는것도...

    • @startcoding.official
      @startcoding.official  2 ปีที่แล้ว +2

      데이터파일의 개수가 3개가 아니라 20개, 30개 라면 어떨까요? 파일마다 또 시트들이 있으면요?
      그리고 그 작업을 매일 해야 한다면요?
      영상의 초반에 사람의 업무는 다양하다는 말을 잘 생각해보시면 됩니다.
      예제는 openpyxl 학습용으로 생각해주시고, 응용은 스스로 하면 됩니다 ^^

  • @losulee2835
    @losulee2835 2 ปีที่แล้ว +1

    특별한것 없어 보이네요

    • @startcoding.official
      @startcoding.official  2 ปีที่แล้ว

      파이썬을 제대로 배워보시면 생각이 달라지실 겁니다. 영상에서는 엑셀 자동화 예로 들었는데, 반복적인 엑셀 작업을 많이 하는 분들에게는 정말 필요한 것입니다.
      엑셀자동화 외에도
      크롤링, 메일자동화, 포스팅 자동화, 좋아요 댓글 자동화, 파워포인트 자동화, 이미지 처리 자동화,마우스 키보드 자동화, 실시간 데이터 수집 후 알림, 데이터 분석 등에 활용 될 수 있습니다 ^^