레슨 진행중 레슨비 미결제 회원을 구분하기 위해 GPT에 방법을 물어봤더니
아래와 같이 알려주었습니다.
단계 2번 : 정수를 목록(List) 으로 생성하는 방법
ex)회원명 / 시작번호 "1" / 종료번호 "10" 일때
1
2
3
4
5
6
7
8
9
10
이렇게 목록으로 변환시킬수 있다고 하는데
저는 도저히 모르겠어서.. 혹시 고수분들이 계시면 도움 부탁드립니다..! ㅠㅠ
--------------------------------------
[GPT 답변 ↓]
맞습니다. 레슨일과 결제일이 정확히 일치하지 않을 수 있기 때문에, 단순히 날짜로 비교하면 정상 결제인데도 미결제로 오인될 수 있습니다.
그래서 Power Query로 미결제 레슨을 정확히 잡아내기 위해서는 **"레슨 번호 범위 기반 매칭"**을 사용하는 것이 가장 안정적이고 실무에 적합한 방식입니다.
✅ 실무 기준 Power Query 매칭 로직
📌 [전제조건]
레슨 진행 현황시트에:
- 회원명
- 레슨번호 (예: 1, 2, 3…)
레슨비 현황시트에:
- 회원명
- 시작번호(M열), 종료번호(N열)
→ 해당 번호 구간은 결제가 완료된 회차
🔄 Power Query 병합 로직 설계
1️⃣ 단계 1: 두 테이블 불러오기
- Power Query에서 다음 두 시트를 각각
진행현황,레슨비현황으로 불러옵니다.
2️⃣ 단계 2: 레슨비 현황 테이블 확장
→ 각 결제 건에 대해 번호 단위로 행 분해
예:
| 회원명 | 시작번호 | 종료번호 |
|---|---|---|
| 홍길동 | 1 | 10 |
→ 아래처럼 변환
| 회원명 | 결제번호 |
|---|---|
| 홍길동 | 1 |
| 홍길동 | 2 |
| … | … |
| 홍길동 | 10 |
✅ 방법: Power Query에서 “목록 생성 → 행 확장” 사용
3️⃣ 단계 3: 레슨 진행 현황과 병합
- 조건:
회원명+레슨번호=회원명+결제번호 - 방식: Left Outer Join
4️⃣ 단계 4: 미결제 필터링
- 병합 후
결제번호가 null인 행만 필터링
→ 이것이 진행되었지만 결제되지 않은 레슨
5️⃣ 단계 5: 시트 출력
- Power Query → “미결제 레슨”이라는 새 시트로 로드
✅ 보충 설명: 날짜로 비교하지 않는 이유
| 구분 | 설명 |
|---|---|
| 🔺 날짜 기반 비교 | 8/4 레슨인데 8/5 결제된 경우, 미결제로 잘못 판단될 수 있음 |
| ✅ 번호 기반 비교 | 레슨번호 4가 결제 범위 1~10에 포함된다면, 날짜는 상관없이 정상 결제로 인정 가능 |

혹시 이미 회원명 과 같은 행에 시작번호 " 1" , 종료번호 "10" 이 입력되어 있는 상태를
1~10 목록 리스트로 변경 할수도 있을까요?
파일 첨부하였습니다!
(+첨부 파일은 실제 업무 일부 문서 내용이 포함되어 있어 삭제하였습니다)
레슨비 결제 회원은 결제시에만 업데이트 되는 상황이라
레슨비 결제 기록 시트와 레슨 기록 시트를 회원별로 비교하여 미결제 회원을 출력하고자 합니다..!
파일 첨부하였습니다!
(+첨부 파일은 실제 업무 일부 문서 내용이 포함되어 있어 삭제하였습니다)