Admin Intermediate > Formulas and Validations > Use Formula Fields
Overview
Formula Field란 Salesforce에서 데이터를 자동으로 계산해서 보여주는 읽기전용(custom read-only)필드입니다. 이는 실제 데이타를 저장하지 않고, 각 레코드가 표시될때 자동으로 수식을 계산해서 실시간으로 결과를 보여줍니다.
예를 들면 이런 일들을 할수가 있어요:
- 두 숫자를 나눠 비율(%) 계산하기
- 날짜 필드 두개를 빼서 일수 계산
- 텍스트를 조합하거나 클릭가능한링크 만들기
- 조건 논리식으로 체크박스값 결정
왜 Fomula Fields를 쓰나?
수동 계산 대신 자동으로 보여주기
사용자가 일일이 계산할 필요 없이, 필드 값이 자동 계산돼 보여집니다.
보고서/리스트 뷰에서도 자동 계산된 값 보기
보고서 컬럼으로 수식값을 넣을 수 있어 중요한 정보 분석에 유용합니다.
Learning Objectives
- custom formula field
- formula editor
- formulas
Formula Field만드는 기본순서
- Create a new playground, Formulas and Validations
- Setup > Object Manager > Opportunity
- Fields & Relationships > New
- Step 1. Choose the field type
- Data Type: Formula
- Step 2. Choose output type
- Field Label: My Formula Field
- Formula Return Type: Text
- Step 3. Enter formula
- Formula Editor에서 각종 수식과 설정을 합니다.
- 하지만 지금은 포뮬러 만들지 않을거니까 Cancel을 클릭해주세요.
Formula Editor 주요요소

- Simple Formula로 갈지 Advanced Formula로 갈지 하나만 정합니다.
- Insert Field버튼을 누르면 수식에 사용할 필드를 선택할 수 있는 팝업이 열립니다. 이 메뉴에서 삽입하면 필드에 액세스 할 수 있는 올바른 문법으로 자동생성됩니다.

- The Insert Operator button opens a dropdown list of the available operators.

- The Functions menu is where you view and insert formula functions

- The text area is where you enter your formula
- Check Syntax버튼을 클릭하면 수식에 문제가 없는지 검사를 하게 됩니다. If your formula has issues, the syntax checker alerts you to specific problems
Example 1: Contact 상세페이지에서 Account Number 보여주기
Contact와 Account는 Master-Detail관계라서 Contact은 항상 Account에 속해 있어요. 여기서는 Formula필드를 이용해서 소속된 다른 Object의 값을 가져와서 보여주는 걸 구현해보도록 하겠습니다.
Contact에 데이타를 하나 입력합니다.
- Sales > App Launcher > Contacts > New
- Last Name: Howard
- Account: United Oil & Gas Corp.
- Save
이제 Formular필드를 추가해서, 위에서 입력한 Contact데이타를 볼때, 매칭된 Account의 Account Number를 자동으로 불러오게 하겠습니다.
- Setup > Object Manager > Contact > Fields & Relationships > New
- Field Type: Formula
- Step 2. Choose output type
- Field Label: Account Number
- Return Type: Text
- Step 3. Enter Formula
- Advanced Fomula탭을 선택합니다.
- Insert Filed버튼을 클릭합니다.
- Contact > Account > Account Number 선택
- Insert버튼 클릭
- Check Syntax버튼 클릭하여 오류 검증
- Next, Next, Save
Contact데이타를 보여주때 Account Number가 함께 들어가는지 확인해보도록 하겠습니다.
- Sales > Contacts
- 아까 입력했던 레코드를 찾아서 Details탭을 열어보면 Account Number필드가 들어가있습니다.
Example 2: 오늘 기준으로 마감일까지 며칠 남았는지
Oppourunity에 데이타를 하나 입력합니다.
- Sales > Opportunities > New
- Opportunity Name: 아무거나 (Test Opportunity)
- Close Date: 최소 3일 이후 날짜 아무거나 선택
- Stage: Closed Won이나 Closed Lost만 빼고 아무거나 선택
- Save
Formula Field추가
- Setup > Object Manager > Opportunity > Fields & Relationships > New
- Data Type: Formula
- Field Label: Days to Close
- Return Type: Number
- Step 3. Enter formula
- Insert Field
- Opportunity > Close Date > Insert
- Insert Operator
- Subtract
- Functions > TODAY > Insert Selected Function
- Check Syntax
- Insert Field
- Next, Next, Save
보고서에 만들어진 formula Field추가
- Sales > Reports > New Report > Opportunities > Start Report
- Check ON ✅ Update Preview Automatically

- Fields탭을 열어서 Column에 Days to Close필드를 보고서에 추가

- 다시 보고서를 보면 해당 칼럼이 보고서에 들어가 있습니다.

Formulas 디버깅
Formula Fields를 만들다보면 문법 오류나 잘못된 논리 때문에 실행되지 않는 경우가 있는데 이때 Check Syntax버튼을 눌러서 오류를 검사하면 오류가 발생한 위치를 알려줍니다.
수식에서 주로하는 실수에 대해서 나열하자면:
- 괄호를 안닫았을때 – 특히 여러개의 괄호를 쓸때 괄호 짝이 맞지 않을때
- 함수 매개변수 타입오류 – 함수를 호출할때 인자로 들어가는 데이타의 형식이 맞지 않을때
- 함수 매개변수 갯수오류 – 함수를 호출할때 넣어줘야하는 인자의 개수가 맞지 않을때
- 수식 결과 데이터 타입 불일치 – 지정한 Return type이 실제 수식의 결과와 맞지 않을때
- 필드 존재하지 않는 경우 – 수식에서 사용한 필드의 이름이 틀렸거나 해당 필드가 삭제 된경우
- Unknown function – Salesforce에서 지원하지 않는 함수를 사용한 경우
기타 유용한 팁
- HYPERLINK() – 특정 URL에 바로 접근할 수 있는 링크제공
- HYPERLINK(“https://www.domain.com”, “Here”)
- ROUND() – 소수점 이하 두자리로 반올림
- ROUND(Amount – (Amount * 0.12), 2)
- AND() – 진행하고 있는 기회가 큰 건인지 여부를 결정하는 수식
- AND(Account.NumberOfEmployees > 1000, Amount > 1000)
* 회사직원수가 천명이상인데 금액이 만달러 이상이 될거 같을때 건수가 크다고 할 수 있다.
- AND(Account.NumberOfEmployees > 1000, Amount > 1000)
Hands-on Challenge
Create a Formula Field
Create a formula field that calculates the number of days remaining before a contract expires.
- Create a custom field:
- Object: Contract
- Data Type: Formula
- Field Label:
Days RemainingCopy - Field Name:
Days_RemainingCopy - Formula Return Type: Number
- Formula: Calculate the number of days between the contract end date and today
풀이
계약 만료일까지 남은 일수를 계산하는 수식 필드를 만드세요.
Contract에 데이타 입력
- Account Name: United Oil & Gas Corp.
- Status: Draft
- Contract Start Date: 오늘 날짜
- Contract Term(months): 3
- Save
Formula Field추가
- 새로만든 Playground, Formulas and Validations을 Launch합니다.
- Sales > Object Manager > Contract > Fields & Relationships > New
- Data Type: Formula
- Field Label:
Days Remaining - Return Type: Number
- Step 3. Enter formula
- Insert Field
- Contract > Contract End Date > Insert
- Insert Operator
- – Subtract
- Functions > TODAY > Insert Selected Function
- Insert Field
- Next, Next, Save
디버깅 – Field Name변경 해야할 때
만약 Field명을 잘못 적었을때는 Field Label이나 Field Name을 변경한다 해도 소용이 없다. Field Name을 변경하는 순간 API Name이 함께 바껴버려서 기존 API이름으로 참조를 하던 Layout은 데이타를 가져올 API가 사라져버려서 데이타 필드 화면에 공백을 보여주기 때문이다.
이때는, Custom Field화면에서 Where is this used?버튼을 눌러 사용하고 있는 레이아웃에 들어가면 Fields에 원래 이름으로 참조를 하고 있는게 보일것이다. 이때 그 필드는 이미 사용되고 있기 때문에 비활성화가 되어 있을텐데 그 비활성화된 필드를 클릭하면 어디에서 사용하고 있는지를 알려준다. 그러면 그곳에서 필드를 끌어다가 화면바깥으로 내보내면 버튼은 다시 활성화가 되고 해당 Layout은 해당 필드를 참조하고 있지 않기때문에 그때 다시 Formula Field의 Label과 Name을 변경하면 API Name도 그에 맞춰서 변경되고 다시 Layout으로 들어오면 그 전에 만들었던 필드명 대신 새로만든 필드명이 버튼으로 보일건데 그 필드를 끌어다가 원래 있던 자리로 놓아 참조를 하게 만든다.