여행 예산표가 ‘얼마까지 쓸 것인가’를 정하는 문서라면 공동경비 정산표는 ‘누가 누구 몫을 대신 냈는가’를 복원하는 장부입니다. 둘을 한 표에 섞으면 총예산은 맞아도 개인별 받을 돈이 어긋날 수 있습니다. 특히 여러 통화, 부분 환불, 두 사람만 참여한 지출이 끼면 총액을 인원수로 나누는 방식은 더 이상 맞지 않습니다.
첫날이 아니라 출발 전에 환산 기준부터 고른다
정산 다툼은 환율이 높고 낮아서보다 서로 다른 계산 방식을 섞어서 생깁니다. 카드 원거래는 실제 원화 청구액을 쓰면서 환불은 임의의 검색 환율로 바꾸면 각 숫자는 그럴듯해도 차액은 실제 장부와 맞지 않습니다. 아래 세 방식 중 하나를 거래 단위로 고르고, 원거래와 환불에는 같은 방식과 같은 출처 규칙을 적용합니다. 기준환율 방식에서는 처리일이 다르면 원금 환율과 환불 환율이 달라질 수 있습니다.
| 환산 기준 | 언제 유용한가 | 장점 | 남겨야 할 값 |
|---|---|---|---|
| 실제 원화 청구·환불액 | 귀국 뒤 카드 명세가 확정된 정산 | 실제로 빠져나가고 돌아온 돈을 반영 | 청구 원화, 환불 원화, 별도 청구·환불 수수료 |
| 일자별 기준환율 | 여행 중 임시 정산 또는 합의 환율 정산 | 같은 출처·마감시각 규칙을 모두에게 적용 | 원금·환불의 출처, 날짜·시각, 각각의 환율 |
| 공동 현금의 실매입률 | 환전한 공용 지갑을 정산 | 실제로 산 현금 원가를 반영 | 원금·환불 외화와 각각 적용한 실매입률 |
카드 네트워크 계산기의 값도 확정 청구액과 같다고 단정할 수 없습니다. Visa는 계산값을 여행 중 받을 수 있는 환율의 참고값으로 안내하고, Mastercard는 계산값이 참고용이며 발급사가 다른 환율이나 추가 비용을 적용할 수 있고 승인·처리 시점도 영향을 줄 수 있다고 밝힙니다. 두 공식 안내는 2026-08-31에 확인했습니다.
이 장부에서 지킬 다섯 규칙
- 한 거래와 그 환불에는 같은 환산 방식을 씁니다. 기준환율을 쓰면 원금일과 환불일의 환율은 달라도 출처와 조회 시각 규칙은 같아야 합니다.
- 부분 환불은 새 음수 거래가 아니라 원거래 ID에 연결해 원금과 별도로 기록합니다.
- 실제원화 방식의 청구 원화와 환불 원화는 명세의 양수 금액으로 입력하고, 환불 원화는 계산식에서 뺍니다.
- 청구·환불 수수료 열에는 명세에 별도로 붙은 비용만 양수로 넣습니다. 청구액에 이미 포함됐거나 환불액에서 이미 차감된 수수료는 0으로 두어 중복 가산하지 않습니다.
- 명세가 확정되기 전 값에는 ‘임시’, 확정 뒤에는 ‘잠금’을 표시합니다.
정산 시트에 필요한 열
‘누가 냈는지’만 적는 앱도 많지만, 재검산하려면 환불 원화액·환불 환율·수수료와 참여 가중치를 각각 보관해야 합니다.
| 열 | 내용 | 예시 |
|---|---|---|
| 거래 ID | 환불과 원거래를 잇는 고유 번호 | T01 |
| 날짜·항목 | 거래를 다시 찾을 단서 | 9/2 저녁 |
| 통화·원금·환불 | 현지통화 코드와 원금·환불의 양수 금액 | USD / 90 / 15 |
| 환산 기준 | 실제원화·기준환율·실매입률 중 하나 | 기준환율 |
| 청구·환불 원화 | 실제원화 방식에서 명세로 확정된 두 금액 | 141,700 / 27,900 |
| 청구·환불 수수료 | 각 금액에 포함되지 않고 별도 청구된 비용 | 0 / 500 |
| 원금·환불 환율 | 환율 방식에서 각 날짜에 적용한 두 환율 | 1,400 / 1,370 |
| 결제자 | 실제로 돈을 낸 사람 | 민지 |
| 참여자별 가중치 | 0 이상이며 한 명 이상은 양수여야 함 | 1:1:1 |
| 상태 | 임시·잠금·분쟁 | 잠금 |
| 근거 | 명세·영수증 위치 또는 메모 | 카드앱 9/5 |
실제원화 방식이면 청구·환불 원화를 쓰고 환율 열은 비웁니다. 기준환율·실매입률 방식이면 원금·환불 환율을 쓰고 실제 원화 열은 비웁니다. 환불이 없으면 환불 외화·원화·수수료를 0으로 두고 환불 환율은 비워도 됩니다.
핵심 계산식과 오류 조건
① 실제원화 방식 순원화액 = ROUND(청구 원화 − 환불 원화 + 청구 수수료 + 환불 수수료, 0)
② 환율 방식 순원화액 = ROUND(원금 외화 × 원금 환율 − 환불 외화 × 환불 환율 + 청구 수수료 + 환불 수수료, 0)
③ 개인 몫 = 순원화액 × 개인 가중치 ÷ 참여자 가중치 합계
④ 개인 잔액 = 그 사람이 낸 금액 합계 − 그 사람이 부담할 몫 합계
- 모든 가중치는 0 이상이어야 하고, 거래마다 가중치 합계가 0보다 커야 합니다. 합계가 0이면 정산 제외가 아니라 입력 오류로 처리합니다.
- 개인 잔액이 양수면 받을 사람이고, 음수면 보낼 사람입니다.
- 모든 개인 잔액의 합은 0이어야 합니다.
원 단위 반올림 차이는 열의 마지막 사람이 아니라 가중치가 양수인 마지막 참여자의 몫을 ‘순원화액 − 앞에서 확정한 몫 합계’로 계산해 흡수합니다. 가중치가 0인 사람에게 음수나 잔여 몫이 생기지 않아야 합니다.
시트에 바로 옮기는 열 설계
A 거래ID
B 날짜
C 항목
D 통화
E 원금(현지통화)
F 환불(현지통화)
G 환산기준 [실제원화/기준환율/실매입률]
H 청구원화 [실제원화 방식]
I 환불원화 [실제원화 방식]
J 청구수수료 [별도 청구분만]
K 환불수수료 [별도 청구분만]
L 원금환율 [환율 방식]
M 환불환율 [환율 방식]
N 결제자
O 민지가중치
P 준가중치
Q 서윤가중치
R 가중치합계 =SUM(O2:Q2)
S 순원화액 =IF(G2="실제원화",ROUND(H2-I2+J2+K2,0),IF(OR(G2="기준환율",G2="실매입률"),ROUND(E2*L2-F2*M2+J2+K2,0),NA()))
T 민지몫 =IF(R2<=0,NA(),IF(O2<=0,0,IF(COUNTIF(P2:Q2,">0")=0,S2,ROUND(S2*O2/R2,0))))
U 준몫 =IF(R2<=0,NA(),IF(P2<=0,0,IF(Q2<=0,S2-T2,ROUND(S2*P2/R2,0))))
V 서윤몫 =IF(R2<=0,NA(),IF(Q2<=0,0,S2-T2-U2))
W 상태 [임시/잠금/분쟁]
X 근거 [파일명 또는 명세 메모]
사람이 더 많으면 가중치와 개인 몫 열을 같은 원칙으로 늘리고, 가장 오른쪽의 양수 가중치 참여자에게만 반올림 잔여를 줍니다. 가중치 합계가 0이면 몫 열은 #N/A를 반환하므로 숫자 0으로 오인해 장부를 잠그면 안 됩니다.
두 환산 방식이 다른 결과를 내는 예
| 방식 | 입력 | 수수료 | 순원화액 |
|---|---|---|---|
| 실제원화 | 청구 141,700원, 환불 27,900원 | 청구 0원, 환불 500원 | 141,700−27,900+500 = 114,300원 |
| 기준환율 | USD 100×1,400 − USD 20×1,370 | 청구 1,000원, 환불 0원 | 140,000−27,400+1,000 = 113,600원 |
두 행은 방법 설명용 가상 입력입니다. 실제원화 예시에서 141,700원에 청구 수수료가 이미 포함됐다면 청구 수수료 열은 0원이어야 합니다. 환불 27,900원이 수수료 차감 뒤의 순입금액이라면 환불 수수료도 다시 더하지 않고 0원으로 둡니다.
가상 입력: 세 사람, 세 통화, 한 번의 부분 환불
| ID | 방식 | 항목 | 원금−환불 | 원금/환불 환율 | 순원화액 | 결제자 | 가중치(민지:준:서윤) |
|---|---|---|---|---|---|---|---|
| T01 | 기준환율 | 저녁 | USD 90−15 | 1,400 / 1,400 | 105,000원 | 민지 | 1:1:1 |
| T02 | 기준환율 | 택시 | JPY 4,800−0 | 9.2 / — | 44,160원 | 준 | 1:1:0 |
| T03 | 기준환율 | 박물관 | EUR 60−0 | 1,600 / — | 96,000원 | 서윤 | 0:1:1 |
이 숫자와 환율은 방법 설명용 가상 입력입니다. 실제 거래일의 시세나 여행 요금을 뜻하지 않습니다.
반올림과 0 가중치 경계 사례
| 순원화액 | 가중치 | 민지/준/서윤 몫 | 판정 |
|---|---|---|---|
| 10,001원 | 1:1:0 | 5,001 / 5,000 / 0원 | 마지막 양수 가중치인 준이 잔여를 흡수 |
| 10,001원 | 0:0:0 | #N/A | 가중치 입력 전에는 계산·잠금 금지 |
개인별 부담액
- T01: 세 사람 각 35,000원
- T02: 민지 22,080원, 준 22,080원, 서윤 0원
- T03: 민지 0원, 준 48,000원, 서윤 48,000원
| 사람 | 실제 낸 합계 | 부담할 몫 | 잔액(낸 돈−몫) | 판정 |
|---|---|---|---|---|
| 민지 | 105,000원 | 57,080원 | +47,920원 | 받기 |
| 준 | 44,160원 | 105,080원 | −60,920원 | 보내기 |
| 서윤 | 96,000원 | 83,000원 | +13,000원 | 받기 |
잔액 합계는 +47,920 − 60,920 + 13,000 = 0원입니다. 이 0 검사가 맞지 않으면 환불을 이중 반영했거나, 참여자 가중치가 비어 있거나, 반올림 잔액을 놓친 것입니다.
송금 횟수를 줄이는 절차
모든 영수증마다 결제자에게 송금할 필요는 없습니다. 최종 잔액만으로 채권자와 채무자를 연결하면 됩니다.
- 받을 사람을 양수 잔액이 큰 순서로 정렬합니다.
- 보낼 사람을 음수 절댓값이 큰 순서로 정렬합니다.
- 두 사람 금액 중 작은 값을 한 번 송금합니다.
- 0이 된 사람을 목록에서 빼고 남은 금액으로 반복합니다.
while 보낼_사람과 받을_사람이 남아 있음:
송금액 = min(보낼_금액, 받을_금액)
보낼_사람 → 받을_사람 : 송금액
두 잔액에서 송금액 차감
잔액이 0인 사람 제거
가상 사례의 출력은 두 줄입니다.
- 준 → 민지: 47,920원
- 준 → 서윤: 13,000원
이 절차는 가능한 송금 수를 줄이는 실용 알고리즘입니다. 은행 수수료, 송금 한도, 서로 상계하고 싶지 않은 관계가 있으면 해당 제약을 먼저 반영합니다.
환불·보증금·예약 취소를 처리하는 매트릭스
| 상황 | 장부 처리 | 정산 시점 |
|---|---|---|
| 부분 환불 | 원거래 ID에 환불 외화·원화 또는 환불 환율과 별도 수수료를 기록 | 환불 값이 확정된 뒤 잠금 |
| 전액 취소, 아직 미환불 | 원거래는 유지하고 상태를 ‘환불 대기’ | 입금 전 송금에서 제외하거나 임시값 명시 |
| 호텔·렌터카 보증금 승인 | 소비가 아닌 ‘보류’ 별도 표식 | 실청구로 확정된 금액만 비용화 |
| 한 사람만 산 물건 | 그 사람 가중치만 1, 나머지 0 | 공동비 송금에 포함 가능하되 개인비 표시 |
| 결제자 과실로 붙은 비용 | 자동 공동비로 두지 않고 합의 상태 | 합의 뒤 가중치 입력 |
기존 여행 경비 글과 역할을 나누기
여행 경비 계산 글은 출발 전 고정비·변동비·예비비를 설계하는 데 사용합니다. 이 글은 지출이 발생한 뒤 참여자별 채권·채무를 계산합니다. 예산표의 ‘공동비 상한’과 정산표의 ‘실제 공동비’를 연결하면 초과 원인도 남습니다.
환율과 ATM 비용 구조는 환전 수수료 글에서 먼저 확인하고, 현지통화 결제와 카드 분실·승인 보류는 해외 카드 사용 전 점검을 참고할 수 있습니다. 이 정산표는 어떤 결제수단이 더 싸다고 판정하지 않고, 선택한 기준을 모든 사람에게 똑같이 적용하는 데 집중합니다.
공식 1차 출처
- 한국은행 경제통계시스템 ECOS: 공통 기준환율을 정할 때 사용할 수 있는 공식 통계 출발점. 확인일 2026-08-31.
- Visa Exchange Rate Calculator: Visa 카드 환산 참고 도구와 적용 범위. 확인일 2026-08-31.
- Mastercard Currency Converter: 참고 환율, 발급사 추가 비용과 승인·처리 시점 안내. 확인일 2026-08-31.
환율과 카드 처리값은 변동합니다. 따라서 이 글에 현재 환율을 고정하지 않았고, 시트의 각 행에 출처·적용 날짜·임시/잠금 상태를 남기도록 설계했습니다. 최종 정산에서는 당사자들이 미리 합의한 기준과 실제 명세를 우선합니다.
정산 완료 조건
‘모두 송금했다’만으로 끝내지 말고 네 가지를 확인합니다. 모든 비용 행의 가중치 합계가 0보다 크고 계산 오류가 없어야 하며, 거래별 개인 몫 합계가 순원화액과 같고, 개인 잔액 합계가 0이며, 환불 대기 행이 남지 않아야 합니다. 이 조건을 통과한 장부는 다음 여행에서 예산 단가를 보정하는 실제 입력값으로도 다시 쓸 수 있습니다.