Power BI 필수 함수

경영정보시각화 자격증 실기 시험 대비 Power BI 필수 함수를 정리하였습니다.
숫자/집계/통계함수
  • J
문자열 함수
  • J
논리 함수
  • J
날짜 함수
  • J
필터 함수
  • J
기타
  • J

문자열 함수

Created by
  • J
    JINA
Created at
• CONCATENATE: 문자열 연결
1.
함수 정의 :
CONCATENATE 함수는
두 개의 문자열을 결합하는 데 사용됩니다. 이 함수는 기본적으로 두 개의 텍스트 값을 하나로 합쳐 하나의 문자열을 반환합니다.
2.
기본 구분
CONCATENATE(<문자열1>, <문자열2>)
3.
매개 변수
<문자열1>: 첫 번째로 결합할 텍스트 값
<문자열2>: 두 번째로 결합할 텍스트 값
4.
예시 코드 :
1. 단순 문자열 결합
CONCATENATE("Hello", "World")
이 함수는
"HelloWorld"라는 결과를 반환합니다. 여기서는 두 문자열 사이에 공백이 없기 때문에, 결과는 HelloWorld로 출력됩니다.
2. 열의 값 결합
데이터 모델에서 두 열을 결합할 수 있습니다.
예를 들어, 직원들의 성(first name)과 이름(last name)을 결합하여 전체 이름을 생성하려고 할 때, 다음과 같이 사용할 수 있습니다.
CONCATENATE(Employees[First Name], Employees[Last Name])
결과는:
3.공백 추가
CONCATENATE 함수는
문자열 사이에 공백을 자동으로 추가하지 않기 때문에,
공백을 포함하려면 수동으로 추가해야 합니다.
CONCATENATE(Employees[First Name], " " & Employees[Last Name])
결과:
이처럼 CONCATENATE 함수는 간단하게 두 텍스트를 연결하는 데 유용하며,
열의 값을 결합하여 새로운 텍스트 필드를 만들 때 자주 사용됩니다.
이 외에도 여러 문자열을 결합해야 할 경우에는 CONCATENATEX 함수도 사용할 수 있습니다.
CONCATENATEX: 식을 평가한 후 문자열 연결
1.
함수 정의 :
CONCATENATEX 함수는
테이블이나 열의 여러 값을 결합할 때 사용하는 함수입니다. 단순히 두 개의 문자열을 결합하는 CONCATENATE 함수와는 달리, CONCATENATEX 함수는 테이블이나 열의 여러 행을 한 번에 결합할 수 있고, 각각의 값 사이에 구분자(Delimiter)를 넣을 수 있습니다.
2.
기본 구문:
CONCATENATEX(<테이블>, <열 또는 표현식>, [구분자], [정렬 순서], [정렬 열])
3.
매개 변수:
<테이블>: 값을 결합할 테이블 또는 테이블을 반환하는 함수.
<열 또는 표현식>: 결합하려는 텍스트를 포함하는 열 또는 계산식.
[구분자]: (선택 사항) 각 값을 결합할 때 사이에 넣을 구분자(콤마, 공백 등). 기본값은 빈 문자열("").
[정렬 순서]: (선택 사항) 값들을 정렬할 기준(ASC: 오름차순, DESC: 내림차순).
[정렬 열]: (선택 사항) 정렬 기준이 될 열.
4.
예시 코드 :
(1)
단순한 문자열 결합
예를 들어,
직원들의 이름을 모두 결합하고, 각 이름을 쉼표로 구분하고자 한다고 가정해봅시다.
CONCATENATEX(Employees, Employees[직원 이름], ", ")
결과:
"John, Jane, Bob"

직원 이름
열에 있는 모든 이름을 쉼표와 공백(", ")으로 구분하여 하나의 문자열로 결합합니다.
(2)
구분자를 사용하여 열의 값 결합
이번에는 각
직원의 직책을 결합하는 예를 보겠습니다. 각 직책은 슬래시(/)로 구분합니다.
CONCATENATEX(Employees, Employees[직책], " / ")
결과:

"Manager / Developer / Analyst"
각 직원의
직책이 슬래시로 구분되어 하나의 문자열로 결합됩니다.
(3)
정렬 순서를 추가한 경우
정렬 기준을 추가해서,
직원 이름을 오름차순으로 정렬하여 결합해보겠습니다.
CONCATENATEX(Employees, Employees[직원 이름], ", ", ASC)
결과:
"Bob, Jane, John"

이 경우, 이름을
알파벳 순서대로 오름차순(ASC)으로 정렬한 후 결합하여 반환합니다.
(4)
숫자 데이터 결합
숫자 데이터를 결합할 수도 있습니다. 예를 들어, 판매량 데이터를 결합해봅시다.
CONCATENATEX(Sales, Sales[판매량], ", ")
결과:
"10, 20, 30"

숫자도 문자열처럼 쉼표로 구분되어 결합됩니다.
5.
요약
CONCATENATEX 함수는
테이블의 여러 행을 결합할 때 매우 유용합니다. 각 값을 구분자로 나눌 수 있고, 원하는 방식으로 정렬할 수 있기 때문에 데이터 시각화나 보고서에서 많은 데이터를 간결하게 표현할 때 자주 사용됩니다.
FIND: 텍스트 위치 찾기
1.
함수 정의 :
FIND 함수는 주어진 텍스트 문자열에서
특정 문자의 위치를 찾는 데 사용됩니다. 텍스트 안에서 원하는 문자열이 처음으로 등장하는 위치를 반환합니다. 기본적으로 대소문자를 구분하며, 원하는 문자가 발견되지 않으면 오류를 반환합니다.
2.
기본 구문 :
FIND(찾을_문자열, 전체_문자열, [시작_위치])
3.
매개 변수 :
찾을_문자열: 검색할 문자열
전체_문자열: 검색 대상이 되는 전체 문자열
시작_위치(선택 항목): 검색을 시작할 위치. 생략 시 기본값은 1(문자열의 첫 번째 문자).
4.
예시 코드 :
(1)
기본적인 사용 예시
=FIND("c", "DAX Functions", 1)
이 예시는 "DAX Functions"라는 문자열에서
"c"라는 문자가 처음 등장하는 위치를 찾습니다. 결과는 8이 반환됩니다. 즉, "c"는 8번째에 위치합니다.
(2)
대소문자 구분
= FIND("f", "DAX Functions", 1)
이 경우
"f"는 "DAX Functions"에서 소문자로 존재하지 않기 때문에 오류를 반환합니다.
FIND 함수는
대소문자를 구분하기 때문에 "F"와 "f"는 다르게 처리됩니다.
(3)
시작 위치 지정
= FIND("n", "DAX Functions", 5)
이 함수는 5번째 문자부터 "n"을 찾습니다.
결과는 7로, "DAX Functions"의 5번째 문자는 "F"이며, 그 이후에 첫번째로 나오는 **소문자 "n"**은 7번째에 위치하고 있습니다.
5.
요약 :
이처럼 FIND 함수는
텍스트 내에서 특정 문자가 어디에 있는지 빠르게 찾아야 할 때 유용하게 사용될 수 있습니다.
FORMAT: 형식 지정
1.
함수 정의 :
FORMAT 함수는
숫자나 날짜 값을 특정한 형식의 텍스트로 변환하는 데 사용됩니다. 주로 숫자나 날짜 데이터를 특정 형식으로 변환해서 보기 좋게 표시할 때 유용합니다.
2.
기본 구문 :
FORMAT(값, "형식")
3.
매개 변수 :
값: 형식을 지정할 값 (숫자나 날짜).
형식: 숫자나 날짜의 출력 형식(문자열).
4.
예시 코드 :
(1)
숫자 포맷
예를 들어,
숫자 1234.56을 통화 형식으로 표시하고 싶다면:
FORMAT(1234.56, "₩#,##0.00")
이 코드는
₩1,234.56로 출력됩니다.
"₩": 통화 기호.
#,##0.00: 천 단위 구분 기호와 소수점 이하 두 자리를 표시.
(2)
날짜 포맷
날짜를 특정 형식으로 변환하고 싶다면:
FORMAT(TODAY(), "YYYY-MM-DD")
이 코드는
오늘의 날짜를 2024-10-17 형식으로 출력합니다.
"YYYY": 4자리 연도로 표시.
"MM": 2자리 월 표시.
"DD": 2자리 일 표시.
(3)
사용자 정의 텍스트 형식
숫자를 백분율로 표시할 때는:
FORMAT(0.1234, "0.00%")
이 코드는
12.34% 로 출력됩니다.
0.00%: 소수점 이하 두 자리를 표시하고 백분율 기호를 추가.
5.
요약 :
FORMAT 함수는
숫자나 날짜를 사용자 정의 형식으로 변환하는 함수입니다.
숫자에 천 단위 구분, 소수점 자릿수, 통화 기호를 추가하거나, 날짜를 다양한 형식으로 표시할 때 유용합니다.
FORMAT 함수는 보고서나 대시보드에서 데이터를 더 가독성 있게 만들기 위해 자주 사용됩니다.
LEFT: 왼쪽에서 지정한 문자 수 반환
1.
함수 정의 :
LEFT 함수는
문자열의 왼쪽에서부터 지정한 개수만큼의 문자를 추출하는 함수입니다.
2.
기본 구분 :
LEFT(<text>, <num_chars>)
3.
매개 변수 :
<text>: 추출할 원본 문자열입니다.
<num_chars>: 왼쪽에서부터 추출할 문자 수입니다.
4.
예시 코드 :
(1) "Power BI"라는 문자열에서
앞의 5글자만 추출하고 싶다면, 다음과 같이 사용할 수 있습니다.
LEFT("Power BI", 5)
결과:
Power

(2) 테이블에
ProductCode라는 열이 있고 값이 "AB12345"라면, 이 코드의 앞 두 글자만 추출하고 싶을 때는
LEFT([ProductCode], 2)
결과:
AB
5.
요약 :
이와 같이 LEFT 함수는
문자열의 일부분만 필요할 때 유용하게 사용됩니다.
LEN: 문자열 길이 반환
1.
함수 정의 :
LEN 함수는
문자열(텍스트)의 길이를 반환하는 함수입니다. 즉, 문자열 안에 있는 문자의 개수를 세어줍니다. 공백도 하나의 문자로 포함됩니다.
2.
기본 구문 :
LEN(<문자열>)
3.
매개 변수 :
<문자열>에는 길이를 구하고 싶은 텍스트가 들어갑니다.
반환값은 해당 문자열의 문자 수입니다.
4.
예시 코드 :
(1)
기본 예시
LEN("Hello World")
결과: 11 (문자 11개: H, e, l, l, o, 공백, W, o, r, l, d)
(2)
컬럼 데이터를 사용할 때
테이블에 ProductName이라는 컬럼이 있다고 가정할 때:
LEN(Product[ProductName])
각 제품 이름의 길이를 반환합니다. 예를 들어,
ProductName에 "Apple"이라는 값이 있다면 결과는 5가 됩니다.
(3)
응용 예시 - 문자열의 길이를 기준으로 필터링하기
문자열 길이가 10 이상인 제품만 계산하고 싶은 경우:
CALCULATE( COUNTROWS(Product), LEN(Product[ProductName]) >= 10 )
이 예시는
제품 이름의 길이가 10 이상인 제품의 개수를 계산합니다.
CALCULATE( COUNTROWS(Product), LEN(Product[ProductName]) >= 10 )
이 예시는
제품 이름의 길이가 10 이상인 제품의 개수를 계산합니다.
결과
길이가 10자 이상인 제품은 Watermelon과 Orange Juice입니다.
조건에 맞는 제품은 2개이므로, 이 계산의
최종 결과는 2입니다.
5.
주의할 점 :
LEN 함수는 문자열 안의
모든 문자를 그대로 센다는 점을 기억해야 합니다. 공백, 특수 문자, 숫자 등 모든 문자를 포함합니다.
다국어 문자가 포함된 문자열의 경우에도 정상적으로 작동합니다.
6.
요약 :
LEN 함수를 사용하면
문자열의 길이를 구할 수 있어 문자열 길이 기반의 필터링, 계산 등에 유용하게 활용할 수 있습니다.
LOWER: 소문자로 변환
1.
함수 정의 :
LOWER 함수는
텍스트 문자열을 모두 소문자로 변환하는 데 사용됩니다. 이 함수는 텍스트 데이터를 표준화하거나 일관성 있게 표시하는 데 매우 유용합니다.
2.
기본 구문 :
LOWER(<text>)
3.
매개 변수 :
<text>: 소문자로 변환하고자 하는 텍스트 또는 텍스트가 포함된 열에 대한 참조입니다.
4.
주요 특징 :
모든 대문자를 소문자로 변환합니다.
숫자나 특수 문자는 변경되지 않습니다.
결과값은 소문자로 된 텍스트입니다.
5.
예시 코드 :
(1) 기본 예시
LOWER("HELLO WORLD")
결과 :
"hello world"를 반환합니다.
(2) 열 데이터 변환
제품 코드가 포함된 'New Products' 테이블이 있다고 가정해 봅시다. 모든 제품 코드를 소문자로 변환하려면 다음과 같은 계산 열을 만들 수 있습니다
LowerCaseProductCode = LOWER('New Products'[ProductCode])`
이 공식은
'ProductCode' 열의 각 값을 소문자로 변환합니다.
(3) 혼합 텍스트 처리
= LOWER("123ABC")
결과 :
"123abc"를 반환합니다. 숫자는 변경되지 않고 알파벳만 소문자로 변환됩니다.
6.
활용 사례 :
• 데이터 정리: 사용자 입력
데이터를 표준화할 때 유용합니다.
• 검색 최적화:
대소문자 구분 없이 검색을 수행할 때 사용할 수 있습니다.
• 데이터 비교:
대소문자 차이로 인한 불일치를 방지할 수 있습니다.
7.
요약 :
LOWER 함수는 간단하지만 강력한 도구로, 데이터 분석 및 보고서 작성 시
텍스트 데이터의 일관성을 유지하는 데 큰 도움이 됩니다.
MID: 중간에서 텍스트 반환
1.
함수 정의 :
MID 함수는 텍스트 문자열에서
지정된 위치부터 특정 길이만큼의 문자를 추출하는 데 사용됩니다. 이 함수는 데이터 분석 시 텍스트 데이터를 조작하거나 특정 부분을 추출할 때 매우 유용합니다.
2.
기본 구문 :
MID(<문자열>, <시작 위치>, <추출할 문자 수>)
3.
매개 변수 :
<문자열>: 추출할 문자열을 지정합니다.
<시작 위치>: 추출을
시작할 위치를 지정합니다. 첫 번째 문자는 1부터 시작합니다.
<추출할 문자 수>:
추출할 문자의 개수를 지정합니다.
4.
예시 코드 :
(1) 기본 예시
MID("abcde", 2, 3)
결과 :
"bcd"를 반환합니다. "abcde" 문자열에서 두 번째 위치부터 시작하여 3개의 문자를 추출합니다.
(2) 열 데이터 활용
MID('Reseller'[ResellerName], 1, 5)
결과 :
'Reseller' 테이블의 'ResellerName' 열에서 각 이름의 첫 5글자를 추출합니다. 이는 LEFT([ResellerName], 5) 와 동일한 결과를 제공합니다.
(3) 주문 번호에서 날짜 추출
주문 번호가 "ORD20240101_001" 형식으로 되어 있다고 가정해 봅시다. 이 경우 날짜 부분을 추출하려면:
ID('Orders'[OrderNumber], 4, 8)
결과 :
주문 번호에서 "20240101"과 같은 날짜 부분을 추출합니다.
(4) 제품 코드의 중간 부분 추출
제품 코드가 "A1234567" 형식이라면, 중간의 4자리를 추출하기 위해:
MID('Products'[ProductCode], 2, 4)
결과 :
"1234"와 같은 중간 4자리를 추출합니다.
5.
MID 함수 사용 시 주의사항 :
• 시작 위치:
시작 위치가 텍스트의 길이보다 크면 빈 문자열이 반환됩니다.
• 유니코드 지원: DAX의 MID 함수는 유니코드를 사용하므로
모든 문자의 길이가 동일하게 취급됩니다. 이는 Microsoft Excel의 싱글바이트 및 더블바이트 문자 처리와는 다릅니다.
• 숫자 데이터: MID 함수를
숫자 데이터에 사용할 경우, 결과는 텍스트 형식으로 반환됩니다.
6.
요약 :
MID 함수는 텍스트 데이터 분석과 조작에 있어 강력한 도구입니다. 특히
복잡한 형식의 데이터에서 특정 부분을 추출하거나, 데이터 정제 작업을 수행할 때 매우 유용하게 활용될 수 있습니다.
REPLACE: 텍스트 일부 대체
1.
함수 정의 :
REPLACE 함수는
텍스트 문자열의 일부를 다른 텍스트로 대체하는 데 사용됩니다. 이 함수는 문자열 조작에 매우 유용하며, 데이터 정제나 형식 변경 작업에 자주 활용됩니다.
2.
기본 구문 :
REPLACE(문자열, 시작 위치, 대체할 문자 수, 새로운 문자열)
3.
매개 변수 :
문자열: 원래의 텍스트 문자열입니다.
시작 위치: 변경을 시작할 위치입니다. (1부터 시작)
대체할 문자 수: 원래 문자열에서 대체할 문자 개수입니다.
새로운 문자열: 원래 문자열의 일부를 대체할 새로운 문자열입니다.
4.
예시 구문 :
(1) 제품 코드 변경
제품 코드의 처음 두 문자를 "OB"로 변경하는 경우:
= REPLACE('Products'[ProductCode], 1, 2, "OB")
결과 :
이 예시에서
'AB1234'라는 제품 코드가 있다면, 결과는 'OB1234'가 됩니다.
(2) 전화번호 형식 변경
전화번호의 중간 4자리를 별표로 가리는 경우:
= REPLACE('Customers'[PhoneNumber], 5, 4, "****")
결과 :
이 예시에서 '
010-1234-5678'이라는 전화번호가 있다면, 결과는 '010-****-5678'이 됩니다].
(3) 날짜 형식 수정
날짜 문자열에서 월을 변경하는 경우:
= REPLACE("2024-08-18", 6, 2, "09")
결과 :
"2024-09-18"이 됩니다.
5.
사용 시 주의사항 :
• 시작 위치: 시작 위치는 1부터 시작합니다. 텍스트의 첫 번째 문자가 1번 위치입니다.
• 대소문자 구분:
REPLACE 함수는 대소문자를 구분하지 않습니다.
• 문자 삭제:
특정 문자를 삭제하려면 새로운 문자열(new_text) 매개변수를 빈 문자열("")로 설정하면 됩니다.
• 유니코드 지원: DAX는 유니코드를 사용하므로
모든 문자를 동일한 길이로 처리합니다.
6.
요약 :
REPLACE 함수는 데이터 정제, 형식 변경, 민감한 정보 마스킹 등 다양한 상황에서 유용하게 사용될 수 있습니다. 다른 DAX 함수와 결합하여 더 복잡한 텍스트 조작 작업을 수행할 수도 있습니다.
RIGHT: 오른쪽에서 지정한 문자 수 반환
1.
함수 정의 :
RIGHT 함수는
문자열의 오른쪽에서부터 지정된 수의 문자를 추출하는 데 사용되는 텍스트 함수입니다. 이 함수는 특히 코드나 ID의 마지막 부분을 추출할 때 유용합니다.
2.
기본 구문 :
RIGHT(<문자열>, <문자 개수>)
3.
매개 변수 :
문자열: 문자열 값을 포함하는 열 또는 직접 입력한 문자열.
문자 개수: 오른쪽 끝에서 가져올 문자 수.
4.
예시 코드 :
(1) 제품 코드의 마지막 두 자리 추출
제품 코드가
'PROD001', 'PROD002' 등의 형식으로 저장된 'ProductCode' 열이 있다고 가정해 봅시다. 마지막 두 자리 숫자만 추출하려면 다음과 같이 사용할 수 있습니다:
LastTwoDigits = RIGHT('Products'[ProductCode], 2)
결과 :
'01', '02' 등의 결과를 반환합니다.
(2) 이메일 도메인 추출
이메일 주소에서 도메인 부분만 추출하고 싶다면, '@' 기호 이후의 모든 문자를 가져오는 방식으로 RIGHT 함수를 사용할 수 있습니다:
EmailDomain = RIGHT('Customers'[Email], LEN('Customers'[Email]) - FIND("@", 'Customers'[Email]))
결과 :
'example.com', 'gmail.com' 등의 결과를 반환합니다.
(3) 가변 길이 추출
추출할 문자 수가 동적으로 변할 수 있습니다. 예를 들어, 'MyCount' 열의 값에 따라 제품 코드에서 가변 자릿수를 추출하고 싶다면 다음과 같이 사용할 수 있습니다:
DynamicExtract = RIGHT('Products'[ProductCode], [MyCount])
결과 :
PROD001 (MyCount: 2):
추출 결과:
'01'
설명: 오른쪽에서 2개의 문자를 추출했습니다.
PROD002 (MyCount: 3):
추출 결과:
'002'
설명: 오른쪽에서 3개의 문자를 추출했습니다.
ITEMX123 (MyCount: 4):
추출 결과:
'X123'
설명: 오른쪽에서 4개의 문자를 추출했습니다.
ABC4567 (MyCount: 3):
추출 결과:
'567'
설명: 오른쪽에서 3개의 문자를 추출했습니다.
'ProductCode' 열에서 'MyCount' 열에 지정된 수만큼의 문자를 오른쪽에서부터 추출합니다.
이러한 방식으로 가변 길이의 문자열을 동적으로 추출할 수 있어,
데이터 분석과 보고서 작성 시 유연성을 제공합니다.
5.
요약 :
RIGHT 함수는
문자열 처리에 매우 유용하며, 다른 DAX 함수들과 결합하여 더 복잡한 텍스트 조작 작업을 수행할 수 있습니다.
SEARCH: 텍스트 찾기
1.
함수 정의 :
SEARCH 함수는
텍스트 문자열 내에서 특정 단어나 문자가 위치하는 시작 위치를 반환하는 함수입니다. 엑셀의 SEARCH 함수와 비슷하며, 주로 조건문에서 특정 텍스트를 포함하는지 확인할 때 사용됩니다.
2.
기본 구문 :
SEARCH(<찾을_텍스트>, <대상_텍스트>, [시작_위치], [찾지_못했을_때_값])매개 변수
3.
매개 변수
찾을_텍스트: 검색할 단어나 문자입니다.
대상_텍스트: 찾을 텍스트가 있는 텍스트 문자열입니다.
시작_위치: 검색을 시작할 위치로, 기본값은 1입니다. (선택사항)
찾지_못했을_때_값: 검색한 텍스트를 찾지 못했을 때 반환할 값을 지정할 수 있습니다. (선택사항)
4.
함수의 특징
대소문자를 구분하지 않습니다.
와일드카드 문자(* 및 ?)를 사용할 수 있습니다.
검색에 실패하면 오류를 반환합니다 (찾지_못했을_때_반환값을 지정하지 않은 경우).
5.
예시 코드 :
(1) 기본 사용법
SEARCH("excel", "Microsoft Excel")
결과:
11
이 예시는 "Microsoft Excel" 문자열에서 "excel"의 시작 위치를 찾습니다. "excel"은 11번째 위치에서 시작하므로 11을 반환합니다.
(2) 대소문자 구분 없음
SEARCH("EXCEL", "Microsoft Excel")
결과:
11 SEARCH 함수는 대소문자를 구분하지 않으므로, 위의 예시와 동일한 결과를 반환합니다.
(3) 시작 위치 지정
SEARCH("a", "banana", 3)
결과:
4
이 예시는 "banana" 문자열에서 "a"를 찾되, 3번째 위치부터 검색을 시작합니다. 따라서 4번째 위치에 있는 "a"를 찾아 4를 반환합니다.
(4) 찾지 못했을 때 반환값 지정
SEARCH("z", "banana", 1, "Not Found")
결과:
"Not Found"
이 예시에서는 "banana"에 "z"가 없으므로, 지정된 "Not Found" 값을 반환합니다.
(5) 계산 열에서의 활용
'Product' 테이블에 다음과 같은 'ProductName' 데이터가 있다고 가정해 보겠습니다:
"Mountain Bike Pro"
"Road Bike Elite"
"City Bicycle Commuter"
"Sport Helmet Deluxe"
구문:
BikePosition = SEARCH("bike", 'Product'[ProductName], 1, BLANK())
결과:
설명:
"Mountain Bike Pro": "bike"가 10번째 위치에서 시작하므로 10을 반환합니다.
"Road Bike Elite": "bike"가 6번째 위치에서 시작하므로
6을 반환합니다.
"City Bicycle Commuter":
"bike"가 아닌 "bicycle"이 포함되어 있으므로 BLANK()를 반환합니다.
"Sport Helmet Deluxe":
"bike"가 포함되어 있지 않으므로 BLANK()를 반환합니다.
(6) 측정값에서의 활용
특정 문자열을 포함하는 제품의 판매량을 계산하는 측정값 예시: