사례 제작자: INHR센터 서비스기획셀 안가온
원본: 브런치 (https://brunch.co.kr/@327roy/23, https://brunch.co.kr/@327roy/24)
주안점: 정교한 Prompt를 통해 ChatGPT로 문제 해결을 위한 엑셀 함수를 만드는 방법
마이다시안이 되기 전, ChatGPT를 주제로 글을 발행한 적이 있어 내용 공유드립니다.
엑셀을 사용하면서 함수 짜기가 귀찮을 때, 혹은 어떤 함수를 짜야할지 방법을 찾고싶을 때 이 글을 참고하시면 좋을 듯합니다.
우리 마이다시안 모두가 생성 AI와 보다 친해지기를 바라며..
목표
① 1) 예치금을 가지고 있는 회원과 2) 해당 회원의 예치금이 정확하게 데이터 마이그레이션이 되었는지 이관 전/후 데이터 체크
② 회원 정보의 데이터 마이그레이션이 정확히 되었는지 이관 전/후 데이터 체크
※ 엑셀의 함수를 확인하는 사례를 공유하는 것이 목적인 만큼, 중복되는 내용인 2번은 이번 글에서 제외했다. 자세한 내용은 상단 브런치 글에서 확인할 수 있다.
#1 데이터 마이그레이션 후, 회원별 예치금 누락이나 미스매치가 있는지 체크하기
첫 번째 과제는 ‘예치금을 가지고 있는 회원과 해당 회원의 예치금이 정확하게 데이터 마이그레이션이 되었는지 이관 전/후 데이터 크로스 체크’하는 것이다.
과제를 완료했음을 판단하기 위한 두 가지 조건은 아래와 같다:
① 예치금이 존재하는 이메일(계정)이 모두 정상적으로 이관되어야 한다.
② 각 계정마다 이관 전, 후의 예치금 보유액이 같아야 한다.
이를 테스트하기 위해 만든 엑셀 샘플을 제작했다. [① 이관전] 시트에서는 예치금을 가지고 있는 이메일(계정)이 ‘이관후’ 시트로 모두 올바르게 이관되었는지를 ‘이관 후 이메일 존재 유무’ 컬럼을 통해 확인할 것이고, [② 이관후] 시트에서는 해당 이메일(계정)의 예치금이 ‘이관전’ 시트와 동일하게 이관되었는지를 ‘이상유무’ 컬럼을 통해 확인할 것이다.
그럼 이제 ChatGPT한테 검증을 위한 함수를 만들어 달라고 해보자.
아래는 사전 검수를 위해 만든 엑셀 샘플 사진.
#2 ChatGPT한테 어떻게 명령하면 좋을까?
ChatGPT에게는 명확한 설명을 해줘야 한다. 인공지능을 사용할 때 착각하기 쉬운 것은, 인공지능은 우리와 달리 맥락이 없다.
따라서 그들에게 정확한 답을 받고 싶으면, 그들에게 정확한 맥락을 인지시켜 줘야한다.
이 때문에 나는 GPT한테 알고리즘과 같이 방법을 찾고 싶을 때는 아래의 단계로 명령을 하는 편이다:
① ChatGPT가 해야 하는 것을 말한다.
② 예시가 있으면 예시를 말해준다. (예시를 건네주는 가장 확실한 방법은 유료 버전인 ChatGPT 4.0의 Code Interpreter를 사용해 엑셀 파일을 첨부하는 것이다.)
③ 예시의 결과를 ChatGPT에게 말한다. (우리는 ChatGPT를 통해 결과에 도달하는 방법을 알고 싶은 것이기 때문)
#3 Prompt를 구성해 보자.
따라서 Prompt를 아래와 같이 구성한다:
① ChatGPT가 해야 하는 것을 말해준다. ( = ‘이관전’ 시트에서는 예치금을 가지고 있는 이메일(계정)이 ‘이관후’ 시트로 모두 올바르게 이관되었는지)
② ChatGPT가 엑셀의 구성을 알 수 있도록 표 예시를 전달한다.
③ 예시의 결과를 말해줌으로써 결과에 도달하는 방법을 ChatGPT가 알 수 있게 한다.
아래는 그렇게 작성한 Prompt의 예시
#4 결과 확인하기
질문을 받은 ChatGPT는 5초도 안되어서 답을 내준다. 아래는 ChatGPT가 짜준 엑셀 함수.
" =IF(COUNTIF('이관후'!$A$1:$A$1000, A2) > 0, "존재함", "존재 안함") "
ChatGPT가 IF와 COUNTIF를 활용해서 함수를 만들어 줬다. 컬럼의 범위를 지정 안 해줬더니 A컬럼의 경우 일단 1,000행까지로 범위를 임의로 잡아줬다.
말이 되는 함수는 맞다. 단, COUNTIF 함수를 사용했기 때문에 이메일의 중복 여부는 체크하지 못한다. 따라서 동일한 이메일이 2개 이상 있어도 그냥 ‘존재함’으로 결과를 뱉어낼 것이다. 이것은 조건을 철저하게 걸지 않은 내 탓이다. 하지만 괜찮다. 어차피 중복 제거를 한 상태로 데이터를 넘겨받을 예정이기 때문에 그냥 이 함수를 사용하도록 한다. 만약 그렇지 않은 상황이라면 중복 제거까지 확인할 수 있도록 함수를 수정해 달라고 ChatGPT한테 부탁하면 된다.
아래는 ChatGPT의 대답.
#5 문제가 해결됐는지 확인하기
컬럼의 이름까지 ChatGPT에게 알려줬기 때문에 딱히 함수에서 수정할 것이 없다. 따라서 ①번 조건인 ‘이관전’ 시트에서는 예치금을 가지고 있는 이메일(계정)이 ‘이관후’ 시트로 모두 올바르게 이관되었는지는 이렇게 확인을 하면 되겠다.
아래는 성공한 사진.
#6 그래서?
확인해야 하는 결과(목표)와 이것을 확인하기 위해 해야 하는 것(질문)만 명확하다면 아주 많은 문제를 ChatGPT로 해결할 수 있을 것이다. 나 또한 이 과정이 되게 명확했기 때문에 ChatGPT를 사용하여 생산성을 폭발적으로 올릴 수 있었다. 이번 글의 경우 당시에 검증까지 7분 정도가 소요됐다.
질문을 잘할 줄 아는 사람이 현대 사회에서 아주 유리한 포지션을 선점할 수 있을 것이라고 생각한다.
#7 기타
1. 영어로 질문하는 것을 추천
이번에는 별로 복잡한 것이 없었기 때문에 국문으로 질문을 했었는데, 웬만하면 영어로 대화하자. Deepl이나 '지니' 라는 크롬 익스텐션을 활용하는 방법도 있다. ChatGPT 자체가 영어에 더 기민하게 반응하기 때문이다. (LLM 기반의 생성AI는 단어를 띄어쓰기 단위로 토큰화하여 결과라고 판단한 값을 유추하는 것이기 때문에 단어로 이루어진 영어가 더 유리하다.)
어떻게 더 잘 질문할 수 있을지에 대한 ‘하이퍼 파라미터’가 꽤 많이 공유되고 있다. 이것을 참고해서 영문 질의를 한다면 더 좋은 결과를 얻을 수 있을 것이다.
2. 하이퍼 파라미터
ChatGPT에게 보다 명확한 답변을 뽑아내려면 명확하게 질문하는 것이 중요하다.
이는 당연 어떤 단어를 사용하느냐에 영향을 받는다.
하이퍼 파라미터란 머신 러닝 모델에서 사용되는 매개변수로, 모델의 학습 과정을 제어하고 조정하는 역할을 한다.
즉, 하이퍼 파라미터를 얼마나 적절히 사용하느냐에 따라 생성 AI의 아웃풋이 달라진다.
어떤 하이퍼 파라미터를 써야할지 모르겠다면, 올해 초 발행된 [ChatGPT 실전 사례집]의 p.31을 참고하는 것을 추천한다.



