6. 수식
수식 필드를 사용하면 다른 필드의 값을 참조하여 자동으로 계산된 결과를 표시할 수 있습니다. 평당가 계산, 수익률 산출, 조건부 판단 등 부동산 실무에서 반복적으로 수행하는 계산을 자동화할 수 있습니다. Propsheet 수식은 PostgreSQL 표현식으로 작성합니다.
6.1 수식 필드
수식 필드(Formula)는 다른 필드의 값을 참조하여 자동으로 계산 결과를 보여주는 읽기 전용 필드입니다. 셀에 직접 값을 입력할 수 없으며, 참조하는 필드의 값이 변경되면 실시간으로 재계산됩니다. 예를 들어 "매가(만원)"와 "보증금(만원)"을 참조해 "실투자금"을, "월세"·"매가"를 참조해 "수익률(%)"을 자동으로 구할 수 있습니다.
수식 필드의 셀은 일반 셀과 다른 배경색(라이트 모드는 연한 크림색, 다크 모드는 짙은 갈색)과 기울임꼴(이탤릭) 글씨로 표시되어 한눈에 구분됩니다. 또한 읽기 전용이라 클릭해도 직접 값을 입력할 수 없으며, 결과를 바꾸려면 수식 또는 참조하는 원본 필드의 값을 수정합니다.
6.2 수식 필드 만들기
수식 필드는 새 필드로 추가하거나, 기존 필드의 타입을 수식으로 변경하여 만들 수 있습니다.
방법 1. 새 필드로 추가
- 상단 도구막대의 "필드 관리" 버튼을 클릭한 뒤 "+필드"를 클릭합니다.
- 필드 이름을 입력하고(예: "평당가", "수익률(%)"), 필드 타입을 Formula (수식)으로 선택합니다.
- 나타나는 수식 입력란에 PostgreSQL 표현식을 작성하고 "추가"를 클릭합니다.
방법 2. 기존 필드를 수식으로 변경
- 컬럼 헤더의 설정 아이콘(⚙)을 클릭해 필드 설정을 엽니다.
- 필드 타입을 Formula (수식)으로 변경합니다.
- 수식 입력란에 표현식을 작성하고 "저장"을 클릭합니다.
"필드명")으로 자동 삽입할 수 있습니다.
"도움말" 버튼에서 함수·문법 안내를, "되돌리기"로 직전 편집 취소를 할 수 있습니다.
6.3 필드 참조
수식에서 다른 필드의 값을 사용하려면 필드명을 큰따옴표(")로 감싸 참조합니다.
Propsheet 수식은 PostgreSQL 표현식이므로, 필드명에 괄호·공백·특수문자가 있어도 큰따옴표 안에 정확히 적으면 됩니다.
| 문법 | 설명 | 예시 |
|---|---|---|
"필드명" | 해당 필드의 값을 참조 | "매가(만원)", "전용면적(㎡)" |
빈 값(NULL) 처리
참조하는 필드가 비어 있으면(NULL) 계산이 안 될 수 있으므로, COALESCE로 기본값을 지정합니다.
| 상황 | 처리 방법 | 예시 |
|---|---|---|
| 숫자 필드의 빈 값 | 0으로 대체 | COALESCE("매가(만원)", 0) |
| 텍스트 필드의 빈 값 | 빈 문자열로 대체 | COALESCE("비고", '') |
| 0으로 나누기 방지 | 분모를 NULLIF로 감쌈 | ... / NULLIF("전용면적(㎡)", 0) |
{필드명}, IF(), &(문자열 결합)로 작성해도 Propsheet이 자동으로 PostgreSQL 표현식("필드명", CASE WHEN, ||)으로 변환합니다. 다만 화면에는 변환된 PostgreSQL 형태로 저장·표시됩니다.
6.4 지원 함수
수식은 PostgreSQL 표현식이므로 PostgreSQL의 연산자와 함수를 사용할 수 있습니다. 자주 쓰는 항목은 다음과 같습니다.
산술 연산자
| 연산자 | 설명 | 사용 예시 |
|---|---|---|
+ | 더하기 | COALESCE("매가(만원)",0) + COALESCE("취득세(만원)",0) |
- | 빼기 | COALESCE("매가(만원)",0) - COALESCE("보증금(만원)",0) |
* | 곱하기 | COALESCE("월세(만원)",0) * 12 |
/ | 나누기 | COALESCE("매가(만원)",0) / NULLIF("전용면적(㎡)",0) |
자주 쓰는 함수
| 함수 | 설명 | 사용 예시 |
|---|---|---|
COALESCE(값, 기본값) | 값이 NULL이면 기본값을 반환 | COALESCE("매가(만원)", 0) |
NULLIF(a, b) | a와 b가 같으면 NULL 반환 (0으로 나누기 방지에 사용) | NULLIF("전용면적(㎡)", 0) |
ROUND(값, 자릿수) | 지정한 소수점 자릿수까지 반올림 | ROUND("평당가", 0) |
CASE WHEN ... THEN ... ELSE ... END | 조건에 따라 다른 값 반환 (조건 분기) | CASE WHEN "수익률(%)" > 5 THEN '고수익' ELSE '보통' END |
|| / CONCAT(...) | 문자열 결합 | "지번 주소" || ' ' || "건물명" |
LENGTH(텍스트) | 문자열 길이(글자 수) | LENGTH("비고") |
FLOOR(값) / MOD(a, b) | 내림 / 나머지 | FLOOR(COALESCE("전용면적(㎡)",0) / 3.3) |
6.5 부동산 실무 수식 예제
부동산 중개 실무에서 자주 쓰는 계산을 수식 필드로 자동화하는 예제입니다. 아래 수식을 그대로 복사하여 사용할 수 있습니다(필드명은 본인 DB의 필드명에 맞게 수정).
실투자금 (매가 − 보증금)
COALESCE("매가(만원)", 0) - COALESCE("보증금(만원)", 0)
평당가
전용면적(㎡)을 평으로 환산한 뒤 매가를 나눠 평당가를 구합니다.
ROUND(COALESCE("매가(만원)", 0) / NULLIF("전용면적(㎡)", 0) * 3.3, 0)
| 매가(만원) | 전용면적(㎡) | 결과(평당가) |
|---|---|---|
| 50,000 | 84 | 1,964 |
| 30,000 | 59 | 1,678 |
수익률(%)
연간 임대수입을 실투자금(매가 − 보증금)으로 나눠 수익률을 산출합니다.
ROUND(COALESCE("월세(만원)", 0) * 12 / NULLIF(COALESCE("매가(만원)", 0) - COALESCE("보증금(만원)", 0), 0) * 100, 1)
| 월세(만원) | 매가(만원) | 보증금(만원) | 결과(수익률%) |
|---|---|---|---|
| 200 | 50,000 | 10,000 | 6.0 |
| 100 | 30,000 | 5,000 | 4.8 |
투자 판단 (조건 분기)
수익률에 따라 "고수익 / 보통 / 저수익"으로 자동 분류합니다.
CASE WHEN "수익률(%)" > 5 THEN '고수익'
WHEN "수익률(%)" > 3 THEN '보통'
ELSE '저수익' END
총 투자금
매가에 취득세·수리비 등 부대비용을 합산합니다.
COALESCE("매가(만원)", 0) + COALESCE("취득세(만원)", 0) + COALESCE("수리비(만원)", 0)
6.6 주의사항
| 항목 | 설명 |
|---|---|
| 실시간 계산 | 수식 결과는 저장되지 않고 레코드를 조회할 때마다 실시간 계산됩니다. 참조 필드 값이 바뀌면 자동 갱신됩니다. |
| 읽기 전용 | 수식 필드 셀은 직접 편집할 수 없습니다. 결과를 바꾸려면 수식 또는 참조 필드의 값을 수정합니다. |
| 필드명 정확성 | "필드명"은 대소문자·괄호·공백까지 원본 필드명과 정확히 일치해야 합니다. "필드 삽입" 드롭다운을 사용하면 오타를 방지할 수 있습니다. |
| NULL · 0 나누기 방어 | 빈 값은 COALESCE로, 0으로 나누기는 분모를 NULLIF(분모, 0)로 감싸 오류를 방지합니다. |
| 참조 필드 삭제 주의 | 수식이 참조하는 필드를 삭제하면 해당 수식에 오류가 발생합니다. 필드 삭제 전 참조하는 수식이 없는지 확인하세요. |