GPT 활용 업무자동화 2

Joy·2023년 5월 15일
0

스터디

목록 보기
20/35
  • VBA
    Visual Basic for Applications

엑셀 자동화

  • VBA 코드
    데이터 전처리
    1) login account가 10회 미만인 고객의 name과 e-mail 추출
    2) total purchase amount이 500000 이상인 고객의 이름과 이메일
    3) age가 20~50 사이인 고객 중 물건 구매를 4번 이하로 한 고객의 name과 e-mail 추출

    • ChatGPT 대답 : 해당 코드는 엑셀 VBA를 이용하여 데이터를 추출하고 새로운 시트에 추가하는 기능을 수행합니다. 아래는 코드의 구성 요소들에 대한 설명입니다.
      1. Sub ExtractData()는 매크로의 시작을 알리는 코드입니다.

      2. Dim은 변수를 선언하는 키워드로, i, age, purchase_count, name, email, newRow를 변수로 선언합니다. 변수 타입은 IntegerString으로 지정됩니다.

      3. Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Extracted Data"는 새로운 시트를 생성합니다. After 파라미터는 새로운 시트가 현재 엑셀 파일에서 가장 마지막에 위치하도록 지정합니다.

      4. With Worksheets("Extracted Data")는 새로 생성된 시트를 참조합니다. 이후에 .Cells(1, 1).Value = "name".Cells(1, 2).Value = "e-mail" 코드를 사용하여, 새로 생성된 시트의 첫 번째 행의 첫 번째 열과 두 번째 열에 "name"과 "e-mail"이라는 컬럼 이름을 추가합니다.

      5. For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row는 첫 번째 행은 컬럼 이름이 위치하므로, 두 번째 행부터 데이터를 추출하기 위한 반복문입니다.

      6. age = Cells(i, 2).Value는 i 번째 행의 2 번째 열(즉, age)의 값을 가져옵니다.

      7. purchase_count = Cells(i, 5).Value는 i 번째 행의 5 번째 열(즉, purchase count)의 값을 가져옵니다.

      8. If age >= 20 And age <= 50 And purchase_count <= 4 Then는 age가 20~50 사이이고 purchase count가 4번 이하인 조건을 검사합니다.

      9. name = Cells(i, 1).Value는 i 번째 행의 1 번째 열(즉, name)의 값을 가져옵니다.

      10. email = Cells(i, 3).Value는 i 번째 행의 3 번째 열(즉, email)의 값을 가져옵니다.

      11. With Worksheets("Extracted Data")는 새로 생성된 시트를 참조합니다. 이후에 .Cells(newRow, 1).Value = name.Cells(newRow, 2).Value = email 코드를 사용하여, 새로 생성된 시트의 newRow번째 행의 첫 번째 열과 두 번째 열에 nameemail 값을 추가합니다.

      12. newRow = newRow + 1은 데이터를 추가할 때마다 newRow 값을 1 증가시킵니다.

      13. Next iFor 반복문을 마칩니다.

      14. End Sub는 매크로를 종료합니다.

        따라서, 위 코드는 먼저 "Extracted Data"라는 이름의 새로운 시트를 생성합니다. 그 다음, 첫 번째 행에 "name"과 "e-mail"이라는 컬럼 이름을 추가하고, 두 번째 행부터 마지막 행까지 반복문을 수행합니다. 이때, age가 20~50 사이이고 purchase count가 4번 이하인 조건을 만족하는 행만 추출하여, name과 email 값을 새로 생성된 시트에 추가합니다.

        매크로를 실행하려면, VBA 에디터에서 ExtractData 함수를 선택한 후, F5를 누르면 됩니다. 실행 결과, 새로운 시트가 생성되며, 조건에 맞는 고객의 name과 e-mail이 추려진 것을 확인할 수 있습니다.

        https://github.com/J-o-y-y/sparta/blob/main/20230516_%EB%8D%B0%EC%9D%B4%ED%84%B0_%EC%A0%84%EC%B2%98%EB%A6%ACipynb.ipynb

      목적 - 파이썬에서 엑셀 매크로를 이용하여 데이터 전처리, 분석, 이 분석된 결과를 기반 - 엑셀 자동화 (파이썬의 smtplib 라이브러리를 사용)

이메일 자동전송

  • SMTP

https://github.com/J-o-y-y/sparta/blob/main/20230516_%EB%A9%94%EC%9D%BC%EC%A0%84%EC%86%A1%EC%9E%90%EB%8F%99%ED%99%94ipynb.ipynb

스케줄링 작업

https://github.com/J-o-y-y/sparta/blob/main/20230516_%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81_%EC%9E%91%EC%97%85.ipynb

  • 코랩 90분, 로컬에서 실습
  • 정기 발송 이메일 시스템 구축
  • GPT for Sheets™
profile
🐣비전공자의 AI 입문기🐣

0개의 댓글