샘플 날짜 수식
샘플 수식을 사용하여 날짜 및 시간을 사용하여 계산을 수행합니다.
필수 Edition
| 지원 제품: Salesforce Classic 및 Lightning Experience 모두 |
| 지원 제품: 모든 Edition |
이 주제의 예제 수식을 사용하여 작업할 때 다음 지침에 유의하십시오.
- 수식을 복사할 때 구문 오류를 방지합니다.
-
날짜 자리 표시자를 CloseDate 또는
TODAY()함수와 같은 날짜 필드와 같은 실제 DATE 값으로 교체합니다. -
date_time 자리 표시자를 CreatedDate 또는
NOW()와 같은 실제 Date/Time 값으로 교체합니다. -
이 자리 표시자를 사용자만의 필드 또는 값으로 대체합니다(해당하는 경우): date_1, date_2, earlier_date,later_date, start_date, end_date,start_date_time, end_date_time, num_years, target_date.
-
- 날짜/시간 필드 고려 사항:
-
DAY(),MONTH()및YEAR()과 같은 함수는 날짜 입력을 필요로 합니다. 날짜/시간 값으로 시작하는 경우 먼저DATEVALUE()함수를 사용하는 날짜로 변환합니다. 예를 들면,DAY( DATEVALUE( date_time ))입니다.
-
연도가 윤년인지 여부 확인
이 수식은 한 연도가 중대 연도(즉, 366일)인지 여부를 결정합니다. 이 논리는 일일 재정 금액 계산에서 의약품 용량 추적에 이르기까지 일일 정밀도가 필요한 계산에 매우 중요합니다. 예를 들어, 지연 연도 동안 연간 금액을 365로 나누면 일일 데이터가 부정확해집니다. 이 수식을 사용하면 연도에 따라 계산 명령자를 365 또는 366로 동적으로 설정할 수 있습니다.
OR(
MOD( YEAR( date ), 400 ) = 0,
AND(
MOD( YEAR( date ), 4 ) = 0,
MOD( YEAR( date ), 100 ) != 0
)
)작동 방식:
- 한 해는 두 가지 특정 조건 중 하나를 충족하는 경우 중요 연도입니다. 한 조건은 연도가 400으로 완벽하게 나눌 수 있다는 것입니다(예: 2000년). 또한 4로 나눌 수는 있지만 100으로 나눌 수는 없습니다(예: 2024년은 중년이지만 1900년은 아닙니다).
MOD()함수는 나머지 디비전을 계산합니다.MOD( Year, 400 ) = 0인 경우 나머지 값이 없는 연도를 400으로 나눌 수 있습니다.OR()함수는 전체 수식을 래핑합니다. 두 조건 중 하나가 true이면 수식이TRUE을 반환합니다.
날짜가 속하는 분기 확인
세일즈 예측, 재무 보고 또는 성과 분석과 같은 활동에 특정 활동이 속하는 회계 분기를 결정하는 것이 중요합니다. 수식을 사용하여 표준 연도, 조정 회계 연도에 대한 분기(1~4)를 계산하거나 현재 분기와 날짜를 비교할 수도 있습니다.
표준 회계 연도: 1월에 1분기가 시작하는 경우 이 수식을 사용합니다.
CEILING( MONTH ( date ) / 3 )교대 근무 회계 연도: 회계 연도가 1월 이외의 달에 시작하는 경우 이 수식을 사용합니다. ADDMONTHS()의 –1 값을 조정하여 1월 기준으로 다시 이동하는 데 필요한 개월 수와 일치시킵니다. 예를 들어, 표시된 수식은 2월 시작 시 1개월 뒤로 이동합니다.
CEILING( MONTH ( ADDMONTHS ( date, -1 ) ) / 3)날짜가 현재(표준) 분기에 속하는지 확인합니다. 날짜가 오늘과 같은 표준 분기 및 연도에 속하는 경우 이 수식을 사용하여 TRUE를 반환합니다. 이 옵션은 현재 분기 거래의 유효성을 검사하거나 과거 레코드의 편집을 방지하는 등 상황에 유용합니다.
AND(
CEILING( MONTH( date ) / 3 ) = CEILING( MONTH( TODAY() ) / 3 ),
YEAR( date ) = YEAR( TODAY() )
)작동 방식:
- 이러한 수식의 논리는 월 수(1~12)를 3(분기의 개월 수)로 나누며,
-
CEILING()함수는 결과를 가장 가까운 정수로 반올림합니다. 예: 2월(월 2)을 3로 나눈 값이 0.66이며, 이는 1(분기 1)로 반올림됩니다. 4월(월 4)을 3로 나누면 1.33, 이는 최대 2(분기 2)로 반올림합니다. -
변경된 회계 연도의 경우,
ADDMONTHS()는 날짜를 실제로 뒤로 옮기므로 계산이 1월 시작 일자와 일치합니다. 예를 들어, 1개월을 빼면 2월이 수식을 위해 1월(주기의 시작)이 됩니다. -
날짜가 현재 분기에 있는지 확인할 때 수식은 분기와 연도가 모두
TODAY()와 일치하는지 확인하여 이전 연도의 1분기 날짜를 현재로 잘못 표시하지 않습니다.
날짜가 속하는 연도의 주 확인
주별로 레코드를 그룹화하는 것은 주간 세일즈 보고, 공급 체인 계획 또는 자원 사용 추적과 같은 활동에 대한 기본 요구 사항입니다. 조직마다 주 1을 다르게 정의하므로 Salesforce는 ISO 표준(비즈니스 보고에 가장 적합) 및 절대 횟수(간단하고 현지화된 연간 진행률 추적에 가장 적합)의 두 가지 방법을 제공합니다.
ISO 표준 주기(권장): 이 수식을 사용하여 대부분의 비즈니스 보고를 ISO-8601 표준에 맞춥니다. 주는 항상 월요일에 시작하며, 목요일을 포함하는 연도의 첫 번째 주는 주 1로 계산됩니다.
ISOWEEK( date )간단한 절대 주 수: 조직에서 요일에 관계없이 주 1일을 항상 시작으로 정의하는 경우 이 수식을 사용합니다. 이 접근 방식은 연도가 시작된 이후에 경과한 7일 블록 수를 파악하기만 하면 되는 간단한 연간 카운터에 유용합니다.
CEILING( ( date - DATE( YEAR( date ), 1, 1) + 1) / 7)작동 방식:
- ISO 표준 논리:
ISOWEEK()함수는 ISO-8601 정의를 기반으로 주 번호(1~53)를 자동으로 계산하는 기본 도구입니다. 이는 1월이 이전 연도의 마지막 주에 시작하거나 12월이 다음 연도의 첫 번째 주에 끝나는 경우 가장 적합한 사례를 자동으로 처리합니다. - 절대 실수 논리:
- 수식
date - DATE( YEAR( date ), 1, 1) + 1은 연도의 "일 수"를 계산합니다. 예를 들어 2월 1일은 32일입니다. 그런 다음, 일 수를 7로 나누어 경과된 주 수를 찾습니다. 예제 계속: 32/7 = 4.57. CEILING()은 결과를 가장 가까운 정수로 반올림합니다. 이 경우 4.57는 5로 반올림하여 2월 1일이 주 5로 지정됩니다.- 365일은 7으로 균일하게 나누지 않으므로(365일 ÷ 7 = 52.14), 해당 연도의 마지막 1일 또는 2일은 부분 주 53로 속합니다.
- 수식
두 날짜가 동일한 월에 속하는지 여부 확인
커미션 계산, 캠페인 귀속 또는 통합 청구와 같은 활동의 경우 동일한 회계 또는 보고 기간에 두 개의 이벤트가 발생했는지 확인해야 하는 경우가 많습니다. 이 수식은 두 개의 특정 날짜 필드(예: Opportunity CloseDate 및 Custom Invoice_Date__c)가 동일한 달력 달에 속하는지 확인합니다.
AND(
MONTH( date_1 ) = MONTH( date_2 ),
YEAR( date_1 ) = YEAR( date_2 )
)이 논리를 동적으로 적용하여 날짜가 오늘을 기준으로 현재 달에 속하는지 여부를 확인할 수도 있습니다. 이 접근 방식은 이번 달 만기 과업을 강조 표시하거나 자동으로 업데이트되는 "이달" 보고에 대한 수식 플래그를 만드는 등 조건부 서식에 유용합니다.
AND(
MONTH( date ) = MONTH( TODAY() ),
YEAR( date ) = YEAR( TODAY() )
)
작동 방식:
- 이 수식은
MONTH()을 사용하여 두 날짜의 숫자(1~12)를 추출하고 비교합니다. -
또한 연도가 일치하도록
YEAR()을 사용합니다. 이 단계를 수행하지 않으면 2024년 1월의 날짜가 2023년 1월의 날짜와 잘못 일치합니다. -
AND()함수는TRUE을 반환하려면 월과 연도가 모두 동일해야 합니다.
월의 마지막 날 확인
월의 마지막 날을 계산하는 것은 재무 및 계약 관리 사용 사례에 필수적입니다. 일반적인 사용 사례에는 동적 구독 종료 일자 설정, 인보이스 기한 결정 또는 월말 마감 거래 보고가 포함됩니다. 이 수식은 다음 달의 첫째 날에서 하루를 빼서 28일, 30일, 31일의 달 및 전년도의 처리를 간소화합니다.
ADDMONTHS( DATE( YEAR( date ), MONTH( date ), 1 ), 1 ) - 1작동 방식:
- 수식
DATE( YEAR( date ), MONTH( date ), 1 )은 원래 날짜 필드에서 월의 1일로 설정된 날짜를 만듭니다. ADDMONTHS( ..., 1 )는 "월 1일" 날짜를 정확히 한 달 앞으로 이동합니다. 예를 들어, 1월 1일을 2월 1일로 변경합니다.- 다음 달의 첫째 날에서 1을 빼면 날짜가 현재 달의 마지막 유효한 날짜로 자동으로 되돌아갑니다. 이 변환은 2월 28일/29일 및 30일/31일을 자동으로 올바르게 처리합니다.
숫자 대신 문자열로 월 표시
표준 날짜 필드는 2024년 1월 15일과 같이 숫자로 표시되지만, 보고 및 고객 대면 커뮤니케이션에는 더 깔끔한 형식이 필요합니다. 이 수식은 숫자 월 값을 1월과 같은 전체 텍스트 이름으로 변환합니다. 이 변환은 견적서 문서, 이메일 템플릿 또는 마케팅 뉴스레터와 같은 리소스에서 "1월 15일"이 아닌 "1월 15일"과 같은 전문 머리글을 생성하는 데 유용합니다.
CASE(
MONTH( date ),
1, "January",
2, "February",
3, "March",
4, "April",
5, "May",
6, "June",
7, "July",
8, "August",
9, "September",
10, "October",
11, "November",
12, "December",
""
)
조직에서 다중 언어를 사용하는 경우 월 이름을 번역할 수 있는 사용자 정의 레이블로 대체합니다. 이 접근 방식을 사용하면 사용자의 언어 설정에 따라 월 이름이 동적으로 업데이트됩니다. 예를 들어 미국 사용자의 경우 "1월"과 프랑스 사용자의 경우 "1월"이 표시됩니다.
CASE(
MONTH( date ),
1, $Label.Month_of_Year_1,
2, $Label.Month_of_Year_2,
3, $Label.Month_of_Year_3,
4, $Label.Month_of_Year_4,
5, $Label.Month_of_Year_5,
6, $Label.Month_of_Year_6,
7, $Label.Month_of_Year_7,
8, $Label.Month_of_Year_8,
9, $Label.Month_of_Year_9,
10, $Label.Month_of_Year_10,
11, $Label.Month_of_Year_11,
12, $Label.Month_of_Year_12,
""
)
작동 방식:
- 이 수식은
MONTH()함수를 사용하여 날짜에서 숫자 월(1~12)을 추출합니다. - 그런 다음,
CASE()함수는 정의된 목록과 해당 숫자를 비교합니다. 월이 1이면 첫 번째 값("1월" 또는 $Label.Month_of_Year_1)을 반환하고 2이면 두 번째 값을 반환합니다. - 최종 줄("")은 기본값을 제공합니다. 날짜 필드가 비어 있는 경우
CASE()문이 이 줄로 넘어지고 빈 텍스트 문자열을 반환하므로 오류가 발생하지 않습니다.
날짜에서 요일 찾기 및 표시
Salesforce는 날짜를 숫자로 저장하지만(예: 2024-12-25), 외부 커뮤니케이션 및 내부 일정에는 더 쉽게 읽을 수 있는 형식이 필요합니다. 이 수식은 날짜 필드에서 특정 요일을 식별하고 텍스트로 변환합니다(예: "수요일"). 이 기능은 "행복한 금요일"과 같은 인사말을 개인 설정하려는 이메일 마케팅 템플릿에 유용합니다. 또 다른 사용 사례는 직원 배치 보고서이므로 주말 활동을 쉽게 찾고 필터링할 수 있습니다.
CASE(
WEEKDAY ( date ),
1, "Sunday",
2, "Monday",
3, "Tuesday",
4, "Wednesday",
5, "Thursday",
6, "Friday",
7, "Saturday",
""
)
조직에서 다중 언어를 사용하는 경우 해당 날짜의 이름을 번역할 수 있는 사용자 정의 레이블로 대체합니다. 이 접근 방식을 사용하면 사용자의 언어 설정(예: 스페인어 로캘에 "도밍고" 표시)에 따라 일 이름이 동적으로 변경될 수 있습니다.
CASE(
WEEKDAY( date ),
1, $Label.Day_of_Week_1,
2, $Label.Day_of_Week_2,
3, $Label.Day_of_Week_3,
4, $Label.Day_of_Week_4,
5, $Label.Day_of_Week_5,
6, $Label.Day_of_Week_6,
7, $Label.Day_of_Week_7,
""
)
작동 방식:
WEEKDAY( date )함수는 날짜를 검사하고 1(일요일)에서 7(토요일) 사이의 숫자를 반환합니다.CASE()함수는 해당 숫자를 값 목록과 비교합니다. 1을 찾으면 첫 번째 값("Sunday" 또는 $Label.Day_of_Week_1)을 반환합니다. 2를 찾으면 두 번째 값을 반환합니다.- 최종 줄(
"")은 기본값을 제공합니다. 날짜 필드가 비어 있는 경우CASE()문이 이 줄로 넘어지고 오류 대신 빈 텍스트 문자열을 반환합니다.
날짜 이후 다음 요일 확인
일관된 주간 일정을 설정하려면 "다음 월요일" 또는 "다음 금요일"의 특정 날짜를 계산하는 것이 중요합니다. 예를 들어 지원 팀에서 매주 금요일에 품질 감사를 수행하거나 청구 주기가 월요일에 시작될 수 있습니다. 이 수식은 레코드 생성 날짜에 관계없이 올바른 예정 날짜를 자동으로 계산합니다.
date + ( target_day - WEEKDAY( date ) +
IF( target_day <= WEEKDAY( date ), 7, 0 ) )
target_day를 원하는 날짜에 해당하는 숫자로 대체합니다. 1 = 일요일, 2 = 월요일, 3 = 화요일, 4 = 수요일, 5 = 목요일, 6 = 금요일, 7 = 토요일.
작동 방식:
- 수식은 target_day(필요한 날짜)와
WEEKDAY( date )(레코드의 현재 날짜) 간의 간격을 계산합니다. IF()문은 목표 일자가 이번 주 이후인지 아니면 다음 주로 묶는지 여부를 결정합니다.- 이번 주 후반: 오늘이 월요일(2)이고 금요일(6)이면 수학적으로 6~2 = 4일 정도 걸립니다.
IF은 0을 더합니다. - 과거 또는 오늘: 오늘이 금요일(6)이고 월요일(2)이면 수학적으로 2 – 6 = –4입니다(월요일이 4일 전임을 의미). 목표는 오늘 "작거나 같음"이므로,
IF문은 결과에 7을 추가합니다. –4 + 7 = 3일 후(다음 월요일).
- 이번 주 후반: 오늘이 월요일(2)이고 금요일(6)이면 수학적으로 6~2 = 4일 정도 걸립니다.
두 날짜 사이의 일 수 확인
세일즈 주기 시간 추적(마감 일자에서 생성 일자) 또는 사례 해결 시간과 같은 효율성을 측정하려면 두 특정 이벤트 사이의 기간을 계산합니다. 이러한 수식은 정확한 경과 일 수를 계산하거나 특정 시간 임계값을 초과하는 레코드에 자동으로 플래그를 지정합니다.
기본 기간 계산: 두 특정 날짜 사이의 간단한 일수를 찾으려면 이후 날짜에서 이전 날짜를 빼십시오.
later_date — earlier_date30일 넘게 지난 날짜가 발생했는지 확인: 날짜 수학을 사용하여 기한이 경과하거나 기한이 경과한 레코드에 플래그를 지정할 수도 있습니다. 예를 들어 이 수식을 사용하여 한 달 동안 활동이 없는 리드 또는 만기된 인보이스를 식별합니다. 날짜가 오늘을 기준으로 지난 30일 이상인 경우 TRUE을 반환합니다.
( TODAY() - date ) > 30작동 방식:
- Salesforce는 내부적으로 날짜를 간단한 숫자(정수)로 저장합니다. 한 날짜를 다른 날짜에서 빼면(예:
later_date - earlier_date) Salesforce에서 해당 정수 간의 간단한 차이를 계산하여 결과를 일 수 정수로 반환합니다. - 두 번째 수식에서
TODAY() - date은 현재 시스템 날짜에서 필드의 날짜를 빼 레코드의 경과일을 계산합니다. > 30연산자는 해당 경과일을 임계값과 비교합니다. 차이가 31일 이상인 경우 수식은TRUE을 반환합니다. 그렇지 않을 경우FALSE를 반환합니다.
두 날짜 사이의 평일 수 확인
지원 사례를 해결하기 위한 작업 일 수 추적 또는 세일즈 기회를 마감하기 위한 활동의 경우 두 날짜 사이의 영업일(일) 수를 계산합니다. 주말을 계산하는 간단한 날짜 빼기와 달리 이 수식은 월요일부터 금요일까지만 계산합니다.
(
5 * FLOOR( ( end_date - DATE( 1900, 1, 8 ) ) / 7 ) +
MIN( 5, MOD( end_date - DATE( 1900, 1, 8 ), 7 ) )
)
-
(
5 * FLOOR( ( start_date - DATE( 1900, 1, 8 ) ) / 7 ) +
MIN( 5, MOD( start_date - DATE( 1900, 1, 8 ), 7 ) )
)
end_date가 이후 날짜이고 start_date이 이전 날짜인지 확인하여 양수를 가져옵니다.
작동 방식:
- 수식은 end_date 및 start_date에 대한 평일 점수를 계산한 다음, end_date 점수에서 start_date 점수를 빼서 그 사이의 평일 수를 가져옵니다.
- 수식은 고정 참조 날짜: 1900년 1월 8일 월요일. 알려진 월요일을 사용하여 0일 앵커로 사용합니다.
FLOOR( ( end_date - ... ) / 7 )및FLOOR( ( start_date - ... ) / 7 )는 기준 날짜 이후에 7일이 지나간 전체 주 수를 계산합니다. 수식은 이 개수를 5로 곱하여 전체 주에 5개의 영업일을 발행합니다.MOD()함수는 전체 주가 계산된 후 남아 있는 일수(0~6)를 살펴봅니다.MIN( 5, ... )함수는 부분 주간 주간 수를 5로 제한하므로 토요일과 일요일이 금요일 이후에 주간 총합을 증가시키지 않습니다.
두 날짜 사이의 월 수 확인
구독 관리 또는 계약 갱신과 같은 활동에서는 두 날짜 사이의 달력 월 수를 계산해야 하는 경우가 많습니다. 예를 들어 청구 또는 보상에 대한 직원 유지 기간 계산을 위한 다년 계약 기간을 결정할 수 있습니다. 이 수식은 달의 특정 요일을 무시하면서 월 및 연도 값을 기반으로 차이를 찾습니다.
( ( YEAR( later_date ) - YEAR( earlier_date ) ) * 12 ) + (MONTH ( later_date ) - MONTH( earlier_date ) )작동 방식:
( YEAR( later_date ) - YEAR( earlier_date ) ) * 12은 두 날짜 간의 연간 차이를 계산하고 12로 곱하여 기준 월 수로 변환합니다.MONTH( later_date ) - MONTH( earlier_date )은 월 번호(1~12) 간의 차이를 계산합니다.- 마지막으로 수식은 다음 두 값을 함께 추가합니다.
날짜에 일, 월 및 연도 추가
향후 날짜 계산은 워크플로 자동화의 중요한 요구 사항입니다. 다음 수식은 날짜를 미래로 동적으로 표시합니다. 예를 들어, 통화 후 5일 동안의 후속 작업 기한 설정, 계약 만료 일자 결정 또는 직원의 전달 일정을 계산하는 등의 활동에 사용합니다.
일수 추가: 단기적인 후속 작업 또는 마감일을 예약하려면 날짜 필드에 바로 일 수를 추가합니다. Salesforce는 날짜를 정수로 처리하므로 5를 추가하면 날짜가 5일로 증가됩니다.
date + 5월 추가: 분기별 검토 또는 구독 갱신과 같은 중간 기간 일정의 경우 ADDMONTHS()를 사용합니다. 이 함수는 기간이 다른 달(28일, 30일, 31일)을 자동으로 처리하므로 간단한 추가를 사용하는 것보다 스마트합니다.
ADDMONTHS( date, 1 )연도 추가:
이 수식을 사용하여 청구를 위한 다년 협약 기간 결정 또는 보상에 대한 직원 유지 기간 계산과 같은 계산을 수행합니다. 년 수를 12로 곱하면 ADDMONTHS() 논리를 사용하여 정확한 연간 계산을 보장할 수 있습니다.
ADDMONTHS( date, 12 * num_years )num_years를 추가할 연수로 대체합니다.
주요 연도: 기본적으로 기회 연도(2월 29일)에 연도를 추가하고 향후 연도가 기회 연도가 아닌 경우 Salesforce에서 2월 28일을 반환합니다. 비즈니스 요구 사항인 2월 29일의 기념일이 일부 법적 계약에서 일반적으로 3월 1일인 경우 이 고급 수식을 사용합니다.
ADDMONTHS( date, 12 * num_years ) +
IF(
AND(
DAY( date ) = 29,
DAY( ADDMONTHS( date, 12 * num_years ) ) = 28
),
1,
0
)
이 논리는 날짜가 28일로 조정되었는지 확인하고 1일을 3월 1일로 푸시하는 데 추가합니다.
작동 방식:
date + 5수식은 날짜의 정수 값을 단순히 증가시킵니다.ADDMONTHS( date, ... )수식은 달력 월을 추가합니다. 년을 12(12 * num_years)로 곱하면 연도가 월로 변환되므로 함수가 처리할 수 있습니다.- 기회 연도 수식에서
IF()계정은 원래 날짜가 29일이고 계산된 향후 날짜가 28일인 두 가지 조건을 확인합니다. 두 값이 모두 true인 경우에는 비유프 연도에 대해 조정된 시스템을 나타냅니다. 그러면 수식이 1일을 추가하여 날짜를 3월 1일로 푸시합니다.
날짜에 영업일 추가
작업일을 기반으로 기한을 계산하는 것은 서비스 수준 계약(SLA) 유지 또는 고객 기대 관리와 같은 활동에 매우 중요합니다. 예를 들어 지원이 3영업일 응답을 약속할 경우 금요일 요청에 3일의 캘린더를 추가하면 잘못된 일요일(비업무일)의 기한이 설정됩니다. 이 수식은 주말을 건너뛰기 위해 기한을 자동으로 조정하여 요청이 항상 평일에 올바르게 도착하도록 합니다.
이 예는 영업일 3일을 더합니다.
CASE(
WEEKDAY( date ),
4, date + 5,
5, date + 5,
6, date + 5,
7, date + 4,
date + 3
)
다른 일 수를 추가하려면 CASE() 문 내의 논리를 조정합니다. 예를 들어, 다음은 4영업일에 대한 조정 수식입니다.
CASE(
WEEKDAY( date ),
1, date + 4, /* Sunday -> Thursday */
2, date + 4, /* Monday -> Friday */
3, date + 6, /* Tuesday -> next Monday */
4, date + 6, /* Wednesday -> next Tuesday */
5, date + 6, /* Thursday -> next Wednesday */
6, date + 6, /* Friday -> next Thursday */
7, date + 5 /* Saturday -> next Thursday */
)
작동 방식:
- 다음 수식은 표준 월요일 ~ 금요일 근무 주로 간주합니다. 특정 휴일은 고려되지 않습니다. 수식의 접근 방식은 시작 일자를 0일로 처리하고 향후 영업일만 계산합니다.
CASE()함수는 시작 일자(WEEKDAY( date ))의 요일을 확인하고 일정 일수의 특정 수를 추가하여 결과가 유효한 영업일에 도착하도록 합니다.- 다음은 3영업일 수식이 조정을 처리하는 방식입니다.
- 수요일(4), 목요일(5), 금요일(6): 영업일 3일을 추가하면 마감일이 주말 날짜로 강제 적용됩니다. 수식은 5개의 캘린더 날짜(영업일 3일 + 주말 2일)를 더하여 격차를 좁힙니다.
- 토요일(7일): 날짜가 토요일에 시작하는 경우 수식이 수요일에 착수하도록 4개의 캘린더 날짜(일요일 + 월요일/토요일/수요일)를 추가합니다.
- 일요일(1), 월요일(2), 화요일(3): 해당 날짜에서는 영업일 3개를 더해도 주말이 아닙니다. 이 수식은 기본 사례 역할을 하며 3일의 캘린더를 추가하기만 하면 됩니다.
날짜/시간으로부터 시간, 분 또는 초 확인
날짜/시간 필드에서 특정 시간 구성 요소를 추출하는 것은 세분화된 보고 및 예약에 중요합니다. 업무 시간 이후에 생성된 지원 사례에 플래그를 지정하거나 하루 중 시간별로 통화량 패턴을 분석하여 직원 배치 최적화가 포함됩니다. 이러한 수식은 타임스탬프에서 정확한 시간, 분 또는 초를 분리합니다.
- GMT 뒤에 있는 경우 TZoffset을 24로 나눈 뒤에 있는 시간 수로 바꾸십시오. 예를 들어 동부 시간(UTC-5)의 경우 5.0 / 24 값을 사용합니다.
-
GMT보다 앞서 있을 경우 + 기호(+)로 수식에서 빼기 기호(–)를 변경합니다. 그런 다음, TZoffset을 앞서 있는 시간 수를 24로 나눈 다음, 예를 들어, 싱가포르(UTC+8)의 경우 8.0 / 24 값을 사용합니다.
자세한 내용은 수식의 날짜, 날짜/시간 값 사용에서 날짜/시간 및 시간대에 대한 참고 사항을 참조하십시오.
시간 찾기: 다음 수식을 사용하여 시간을 숫자로 추출합니다. 이 접근 방식은 "1일 중 시간" 분석의 기본 방법입니다.
- 24시간 형식(0~23): 계산 및 정렬에 가장 적합합니다.
HOUR( TIMEVALUE( date_time - TZoffset ) ) - 12시간 형식(1~12): 사용자 대면 상호 작용에 가장 적합합니다.
IF( OR( HOUR( TIMEVALUE( date_time - TZoffset ) ) = 0, HOUR( TIMEVALUE( date_time - TZoffset ) ) = 12 ), 12, MOD( HOUR( TIMEVALUE( date_time - TZoffset ) ), 12 ) )
분 및 초 찾기: 다음 수식을 사용하여 분 또는 초(0~59)를 추출합니다. 이 접근 방식은 첫 번째 응답까지의 시간과 같은 정확한 기간을 계산하는 데 유용합니다.
- 분:
MINUTE( TIMEVALUE( date_time - TZoffset ) ) - 초:
SECOND( TIMEVALUE( date_time - TZoffset ) )
AM 또는 PM 결정: 이 수식을 사용하여 AM 또는 PM를 텍스트 문자열로 반환합니다. 이 출력은 이메일 템플릿 또는 보고서와 같은 자원에 대한 사용자 정의 12시간 타임스탬프를 작성할 때 유용합니다.
IF(
HOUR( TIMEVALUE( date_time - TZoffset ) ) < 12,
"AM",
"PM"
)
전체 시간을 문자열로 표시(HH:MM:SS AM/PM): 오전 9시 05분 30분과 같이 사용자가 읽을 수 있는 정밀한 형식으로 시간을 표시하려면 이 복합 수식을 사용합니다. 이 섹션의 다른 수식의 논리를 결합하고 LPAD()를 사용하여 시간, 분 및 초 값이 항상 2자리 값으로 표시되도록 합니다(예: 9 대신 09).
LPAD( TEXT( IF(
OR(
HOUR( TIMEVALUE( date_time - TZoffset ) ) = 0,
HOUR( TIMEVALUE( date_time - TZoffset ) ) = 12
),
12,
MOD( HOUR( TIMEVALUE( date_time - TZoffset ) ), 12 )
) ), 2, "0" )
& ":" &
LPAD( TEXT( MINUTE( TIMEVALUE( date_time - TZoffset ) ) ), 2, "0" )
& ":" &
LPAD( TEXT( SECOND( TIMEVALUE( date_time - TZoffset ) ) ), 2, "0" )
& " " &
IF( HOUR( TIMEVALUE( date_time - TZoffset ) ) < 12, "AM", "PM" )작동 방식:
TIMEVALUE()함수는 날짜/시간 필드에서 시간 부분(HH:MM:SS)을 추출합니다.- 오프셋(예:
- 5.0/24)을 제거하면 추출이 발생하기 전에 GMT 시간을 현지 시간으로 변경합니다. - 12시간 논리:
MOD(..., 12)함수는 시간을 12로 나누면 나머지 시간을 계산합니다(예: 14는 2가 됩니다).IF문서에서는 정오(오후 12시) 및 자정(오전 0시)에 대한 가장자리 사례를 처리하므로 0이 아닌 12개로 표시됩니다.
LPAD(..., 2, "0")패드는 앞에 0이 있는 단일 자릿수를 사용하여 표준 시간을 확인합니다(예: 9:5 대신 09:05).
날짜/시간 사이에 경과된 시간 확인
성능 추적에는 워크플로의 정확한 기간을 측정해야 합니다. 예를 들어 지원 사례가 진행되는 기간(분)을 정확하게 결정하면 서비스 수준 계약(SLA)을 적용하는 데 도움이 됩니다. 리드 생성 및 첫 번째 세일즈 활동 사이의 지연 시간을 추적하여 효율성 차이를 강조하는 또 다른 예입니다. 다음 수식은 이 기간을 간단한 숫자 또는 사람이 읽을 수 있는 텍스트 문자열로 계산합니다.
간단한 일 수: 일 단위의 차이를 계산하는 경우 이후 날짜에서 이전 날짜를 빼면 됩니다. 이 접근 방식은 숫자를 반환합니다. 예를 들어, 1.5은 1일과 12시간을 나타냅니다).
later_date - earlier_date서식화된 경과된 시간 문자열(일, 시간, 분): "2일 4시간 15분"과 같은 읽을 수 있는 형식으로 기간을 표시하려면 이 수식을 사용합니다. 소수 날짜 차이를 특정 시간 단위로 변환하는 작업을 처리합니다.
IF(
end_date_time - start_date_time > 0 ,
TEXT( FLOOR( end_date_time - start_date_time ) ) & " days "
& TEXT( FLOOR( MOD( (end_date_time - start_date_time ) * 24, 24 ) ) ) & " hours "
& TEXT( FLOOR( MOD( (end_date_time - start_date_time ) * 24 * 60, 60 ) ) ) & " minutes",
""
)
작동 방식:
IF문은 end_date_time이 실제로 start_date_time 이후인지 확인합니다. 사용자 오류 또는 잘못된 데이터로 인해 결과가 음수인 경우 수식이 혼동하는 음수 문자열 대신 빈 값을 반환합니다.FLOOR( end_date_time - start_date_time )은 총 차이를 가져와 정수(전수)를 격리하여 정일을 계산합니다.MOD( (diff) * 24, 24 )는 나머지 소수 자릿수(일)를 가져와 24로 곱하여 시간으로 변환하고 하루 전체를 구성하지 않는 시간을 분리합니다.MOD( (diff) * 24 * 60, 60 )은 1440(일의 분 수)로 차이를 곱하여 총 분을 가져온 다음,MOD을 사용하여 전체 시간을 제거한 후 남은 분을 찾습니다.- 최종
FLOOR()은 분 값을 정수로 유지하고 분 구성 요소가 60까지 반올림하지 않도록 합니다.
두 날짜/시간 사이의 영업 시간 확인
서비스 수준 계약(SLA)을 정확하게 추적하려면 원시 시간 대신 "영업 시간"으로 기간을 측정해야 하는 경우가 많습니다. 예를 들어, 금요일 오후 4시에 도착하고 월요일 오전 10시에 해결되는 우선 순위가 높은 지원 사례를 고려합니다. 실제 경과 시간은 66시간이지만, 일정이 9~5인 경우 비즈니스 기간은 2시간입니다. 이 수식은 주말과 근무하지 않는 저녁 시간을 자동으로 제외하여 특정 업무 기간을 계산합니다.
ROUND( 8 * (
( 5 * FLOOR( ( end_date_time -
DATETIMEVALUE( "1900-01-08 17:00:00") ) / 7) +
MIN( 5,
FLOOR( MOD( end_date_time -
DATETIMEVALUE( "1900-01-08 17:00:00"), 7) / 1) +
MIN( 1, 24 / 8 * ( MOD( end_date_time -
DATETIMEVALUE( "1900-01-08 17:00:00" ), 1 ) ) )
)
)
-
( 5 * FLOOR( ( start_date_time -
DATETIMEVALUE( "1900-01-08 17:00:00") ) / 7) +
MIN( 5,
FLOOR( MOD( start_date_time -
DATETIMEVALUE( "1900-01-08 17:00:00"), 7) / 1) +
MIN( 1, 24 / 8 * ( MOD( start_date_time -
DATETIMEVALUE( "1900-01-08 17:00:00" ), 1) ) )
)
)
), 2 )작동 방식:
- 이 수식은 고정 내역 앵커 이후 경과된 작업 시간을 측정하여 시작 및 종료 일자의 업무 시간 점수를 계산합니다. 그런 다음, 끝점에서 시작 점수를 빼서 차이를 찾습니다.
- 이 수식은 월요일이므로 고정 참조 날짜인 1900-01-08를 사용합니다. 이 참조를 통해 5일 근무 주에 대한 정돈 계산을 수행할 수 있습니다.
- 시간 17:00:00은 근무일의 시작과 일치합니다. 이 시간은 태평양 시간대(UTC-8)의 오전 9시 시작 시간과 동일한 오후 5시 GMT에 해당합니다.
- 시작 시간 또는 시간대를 변경하려면 시간대 오프셋을 로컬 시작 시간에 추가하여 GMT에서 시작 시간을 계산합니다. 예를 들어, 뉴욕(UTC-5)에 있고 오전 9시에 시작하는 경우 수학적으로 9 + 5 = 14입니다. 수식의
17:00:00를 14:00:00로 대체합니다. 자세한 내용은 수식의 날짜, 날짜/시간 값 사용에서 날짜/시간 및 시간대에 대한 참고 사항을 참조하십시오.
- 시작 시간 또는 시간대를 변경하려면 시간대 오프셋을 로컬 시작 시간에 추가하여 GMT에서 시작 시간을 계산합니다. 예를 들어, 뉴욕(UTC-5)에 있고 오전 9시에 시작하는 경우 수학적으로 9 + 5 = 14입니다. 수식의
- 수식은 작업일 길이를 8시간으로 정의합니다. 24/8 분수는 영업일 정의와 일치하도록 부분 요일의 규모를 조정합니다.
- 교대 근무 길이가 다른 경우(예: 9시간) 8의 3개의 발생을 적절한 수(예: 9)로 변경하여 수식을 조정합니다. 해당 숫자가 월의 날을 참조하므로 날짜 문자열의 08을 변경하지 마십시오.
MIN( 5, ... )논리는 토요일과 일요일을 무시합니다. 점수가 5일(금요일)을 초과하는 경우 값을 상회하여 월요일까지 시계를 유효하게 일시 중지합니다.

