PowerBI.co.kr
경영정보시각화 자격증
실기-모의문제(A형)
실기-모의문제(B형)
Power BI 필수 함수
뉴스
Power BI 2025년 1월 기능 요약
Power BI 2025년 2월 기능 요약
Power BI 2025년 3월 기능 요약
Power BI 2025년 4월 기능 요약
Power BI 2025년 5월 기능 요약
Power BI 2025년 6월 기능 요약
Power BI 2025년 7월 기능 요약
Power BI 2025년 8월 기능 요약
Sign In

문자열 함수

작성자
  • J
    JINA
작성시각
Nov 8, 2024 5:11 PM
텍스트
Empty
• 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) 측정값에서의 활용
특정 문자열을 포함하는 제품의 판매량을 계산하는 측정값 예시:
BikeSales =
CALCULATE(
SUM(Sales[SalesAmount]),
SEARCH("bike", 'Product'[ProductName], 1) > 0
)
결과 : 650

설명 :
"Mountain Bike Pro": "bike" 포함 (위치 10) - 계산에 포함
"Road Bike Elite": "bike" 포함 (위치 6) - 계산에 포함
"City Bicycle Commuter": "bike" 미포함 - 계산에서 제외
"Sport Helmet Deluxe": "bike" 미포함 - 계산에서 제외
따라서, BikeSales 측정값은 다음과 같이 계산됩니다:
Mountain Bike Pro 판매액: 300 + 150 = 450
Road Bike Elite 판매액: 200
총 BikeSales = 450 + 200 = 650

이 측정값을 사용하면, "bike"라는 단어가 포함된 제품들의 총 판매액을 쉽게 계산할 수 있습니다.
이는 자전거 관련 제품의 성과를 빠르게 파악하는 데 유용할 수 있습니다.
6.
요약 :
SEARCH 함수는 이처럼 문자열 검색, 데이터 필터링, 조건부 계산 등 다양한 상황에서 유용하게 사용될 수 있습니다. 특히
대소문자를 구분하지 않고 검색해야 하는 경우에 적합하며, 와일드카드 문자를 지원하여 더욱 유연한 검색이 가능합니다.
(참고)FIND 함수와 SEARCH 함수의 차이점
1.
대소문자 구분 여부
•
FIND: 대소문자를 구분합니다.
예: "Apple"과 "apple"은 다른 문자열로 취급됩니다.
•
SEARCH: 대소문자를 구분하지 않습니다.
예: "Apple"과 "apple"을 동일하게 취급합니다.
2.
와일드카드 지원 여부
•
FIND: 와일드카드를 지원하지 않습니다.
예: "p*"와 같은 패턴은 검색할 수 없습니다.
•
SEARCH: 와일드카드를 지원합니다.
예: "p*"는 "pineapple"과 일치하며 첫 번째 위치를 반환합니다.
3.
찾을 수 없는 경우 처리
•FIND: not_found_value를 사용하여 값 지정이 가능합니다.
예: FIND("pear", "apple", , -1) → 결과: -1
•SEARCH: not_found_value를 사용하여 값 지정이 가능합니다.
예: SEARCH("pear", "apple", , -1) → 결과: -1
4.
기본 용도
•
FIND: 대소문자를 구분하여 문자열을 정확히 찾고 싶을 때 적합합니다.
예: 특정 단어나 패턴이 정확히 일치하는지 확인.
•
SEARCH: 대소문자를 구분하지 않고 유연한 검색(와일드카드 포함)이 필요할 때 적합합니다.
예: 텍스트 패턴 검색 또는 대소문자 무시 검색.
5.
검색 시작 위치
•FIND: 검색 시작 위치를 지정할 수 있습니다.
예: FIND("p", "pineapple", 6) → 결과: 8
•SEARCH: 검색 시작 위치를 지정할 수 있습니다.
예: SEARCH("p", "pineapple", 6) → 결과: 8
• SUBSTITUTE: 텍스트 대체
1.
함수 정의 :
SUBSTITUTE 함수는
문자열 내의 특정 텍스트를 다른 텍스트로 대체할 때 사용합니다.
2.
기본 구문 :
SUBSTITUTE(<텍스트>, <기존 텍스트>, <새 텍스트>[, < 인스턴스 번호 지정>])
3.
매개 변수 :
<텍스트>: 수정할 원본 텍스트입니다.
<기존 텍스트>: 대체하고 싶은 텍스트입니다.
<새 텍스트>: 대체할 새로운 텍스트입니다.
< 인스턴스 번호 지정> (선택): 문자열에서
대체할 텍스트의 위치를 지정합니다. 1이면 첫 번째로 나타나는 기존 텍스트만 바꾸고, 2면 두 번째 것을 바꾸는 방식입니다. 지정하지 않으면 모든 인스턴스를 대체합니다.
4.
예시 코드 :
(1) Power BI is great"라는 문자열에서 "great"을 "amazing"으로 바꾸고 싶다면
SUBSTITUTE("Power BI is great", "great", "amazing")
결과:
“"Power BI is amazing"를 반환합니다.
(2) 특정
인스턴스만 바꾸고 싶을 때는 네 번째 인수를 사용하면 됩니다. 예를 들어, "apple, apple, apple"에서 두 번째 "apple"만 "orange"로 바꾸고 싶다면
SUBSTITUTE("apple, apple, apple", "apple", "orange", 2)
결과:
"apple, orange, apple"가 됩니다.
5.
요약 :
이렇게 SUBSTITUTE 함수는
문자열 내에서 특정 단어나 구를 원하는 방식으로 쉽게 바꿀 수 있게 해줍니다.
• TRIM: 공백 제거
1.
함수 정의 :
TRIM 함수는
문자열의 앞, 뒤, 또는 중간에 있는 불필요한 공백을 제거하는 함수입니다. 주로 데이터 정리나 형식을 일관되게 하기 위해 사용됩니다. TRIM 함수는 모든 추가적인 공백을 제거하고, 각 단어 사이의 하나의 공백만 남겨둡니다.
2.
기본 구문 :
TRIM(<텍스트>)
3.
매개 변수 :
<텍스트>: 공백을 제거할 문자열입니다.
4.
예시 코드 :
아래와 같은 데이터가 있다고 가정해봅시다.
위 데이터에 TRIM 함수를 적용하면:
CleanProductName = TRIM(ProductName)
결과:
5.
요약 :
이렇게 TRIM 함수를 사용하면
문자열의 앞뒤와 중간에 있는 불필요한 공백이 제거되어 데이터를 깔끔하게 정리할 수 있습니다.
• UPPER: 대문자로 변환
1.
함수 정의 :
UPPER 함수는
문자열을 모두 대문자로 변환하는 함수입니다. Excel의 UPPER 함수와 동일하게 작동합니다. 주로 텍스트 데이터의 형식을 통일하거나 대소문자 구분 없이 검색해야 할 때 유용하게 사용할 수 있습니다.
2.
기본 구문 :
UPPER(<text>)
3.
매개 변수:
<text>: 대문자로 변환할 문자열입니다. 이 값은 문자열이거나 문자열을 반환하는 열이 될 수 있습니다.
4.
예시 코드 :
(1) 단순 문자열 변환
UPPER("hello world")
결과:
"HELLO WORLD"
(2) 열의 값을 대문자로 변환
만약 Customers 테이블에 FirstName이라는 열이 있다고 가정하면:
UPPER(Customers[FirstName])
결과:
FirstName 값이 "John"이라면 결과는 "JOHN"이 됩니다.
(3) 대문자 변환을 사용한 새로운 열 생성
Customers 테이블에 아래와 같은 데이터가 있다고 가정해 보겠습니다:
여기서 City 열의 값을 대문자로 변환한 새로운 열 City_Upper를 추가하려고 할 때,
DAX 수식은 다음과 같이 작성할 수 있습니다:
City_Upper = UPPER(Customers[City])
결과 :
City_Upper 열이 추가되면서, 기존의 City 열 값들이 모두 대문자로 변환된 것을 볼 수 있습니다.
5.
요약 :
이렇게 UPPER 함수를 사용하면
데이터의 일관성을 유지하면서, 텍스트 데이터를 처리할 수 있습니다.
• VALUE: 문자열을 숫자로 변환
1.
함수 정의 :
VALUE 함수는
텍스트 형식의 숫자 데이터를 실제 숫자 데이터로 변환할 때 사용됩니다. 주로 데이터 모델에서 숫자 값이 문자열로 저장되어 있을 때, 계산을 수행하거나 다른 숫자 값과 비교할 수 있도록 숫자 형식으로 변환할 때 유용합니다.
2.
기본 구문 :
VALUE(<text>)
3.
매개 변수 :
<text>: 숫자로 변환할 수 있는 텍스트 값입니다.
4.
동작 방식 :
• 입력된
텍스트가 숫자로 변환 가능한 경우, 해당 숫자 값으로 반환합니다.
•
텍스트가 숫자로 변환할 수 없는 경우, 오류를 반환합니다.
5.
예시 코드 :
(1) 간단한 사용
텍스트 "123"을 숫자 123으로 변환하는 경우:
VALUE("123")
결과:
123
(2) 데이터 컬럼에서 변환
ProductSales라는 테이블이 있고, 이 테이블에는 Price 열이 텍스트 형식으로 저장되어 있다고 가정해보겠습니다. 데이터는 다음과 같습니다
Price 열의 텍스트 데이터를 숫자로 변환하려면, 아래와 같이 DAX 계산 열을 만들 수 있습니다:
ConvertedPrice = VALUE(ProductSales[Price])
결과 :
Price 열은 여전히 텍스트 형식이지만,
ConvertedPrice 열은 VALUE 함수를 통해 숫자 형식으로 변환된 값입니다.
이렇게 하면 ConvertedPrice 열에서 숫자 연산을 자유롭게 수행할 수 있습니다
(예: 합계, 평균, 비교 등).
(3) 숫자로 변환할 수 없는 텍스트
VALUE("Hello")
결과:
오류 (텍스트 "Hello"는 숫자로 변환할 수 없기 때문)
6.
요약 :
VALUE 함수는 주로
CSV 파일이나 다른 외부 데이터 소스에서 가져온 값들이 텍스트로 저장되어 있을 때 유용하게 사용됩니다. 이를 통해 계산을 더 쉽게 할 수 있도록 숫자로 변환할 수 있습니다.
Made with Slashpage