파워쿼리에도 엑셀, VBA 등과 같이, if를 활용한 조건문이 있습니다.
파워쿼리에서 if 문을 사용하여 조건 열을 만들 수도 있고, 다른 함수 안에서도 활용할 수 있습니다.
예시 파일에서는 테이블에서 쿼리를 생성하기 때문에 아래의 글을 함께 읽으시길 바랍니다.
#1. if 조건문 구조: if - then -else
파워쿼리에서 if 조건문은 'if 조건 then 참일 때 결과 else 거짓일 때 결과' 형식입니다.
아래의 예시를 보면서 더 자세히 설명드리겠습니다.
▲ 만약에 위의 표와 같이 점수(score)가 분포되어 있고, 50점 미만은 점수와 상관없이 학점이 F라고 가정합시다. 그러면 'a' 학생은 학점이 F가 될 것입니다.
▲위의 사진과 같이 '사용자지정 열'을 클릭 후 ' = if [score] < 50 then "F" else [score] ' 를 입력하면, 50점 미만은 "F", 50점 이상의 점수는 점수로 표시되는 'grade' 열이 생성됩니다.
▲코딩 결과
#2. if 조건문 중첩하기
if 조건문은 엑셀처럼 중첩해서 사용할 수 있습니다.
위의 예시에서 50점 미만은 F, 70점 미만은 C, 90점 미만은 B, 90점 이상(나머지 점수)은 A라고 가정합니다.
▲위의 사진과 같이 '사용자지정 열'을 클릭 후
= if [score] < 50 then "F"
else if [score] < 70 then "C"
else if [score] < 90 then "B" else "A"
과 같이 if문을 중첩적으로 활용하면 점수에 따라 아래와 같이 성적을 분류할 수 있습니다.
▲코딩결과
#3. 값 바꾸기 등 다른 함수 안에서도 활용 가능
만약에 'F' 성적의 학생은 이름(name)을 '낙제'라고 바꾼다고 가정해 봅시다.
우선, 아래와 같이 'name'열에 우클릭 후 '값 바꾸기'를 클릭합니다.
▲ name열 데이터에 우클릭 후 값 바꾸기 클릭
▲ 수식을 만들기 위함이기 때문에 우선 같은 값을 입력한 후 확인을 누릅니다.
▲ 위의 사진과 같이
= Table.ReplaceValue(#"추가된 사용자 지정 항목","a","a",Replacer.ReplaceText,{"name"})
라는 수식이 자동적으로 완성됩니다.
Table.ReplaceValue 함수의 기본적인 구조를 간단히 설명하자면 아래와 같습니다.
Table.ReplaceValue(테이블명(보통 쿼리 이전단계), 바꾸기 전 값, 바꾼 후 값, Replacer.ReplaceText, {"바꿀 열의 이름"}) 입니다.
▲ 따라서, 아래와 같이 수식을 작성하면, grade가 F인 학생 이름은 '낙제'로 변경됩니다.
= Table.ReplaceValue(#"추가된 사용자 지정 항목", each [name], each if [grade]= "F" then "낙제" else [name],Replacer.ReplaceText,{"name"})
여기서
1) #"추가된 사용자 지정 항목" 은 원본 표(보통 쿼리 이전 단계)를
2) each [name] 은 name 열의 데이터 하나하나를,
3) each if [grade]= "F" then "낙제" else [name] 은 grade에 따른 조건문을,
4) {"name"} 은 바꾼 값이 적용될 열(name 열)의 이름을 의미합니다.
'엑셀, VBA, 파워쿼리 > 파워쿼리' 카테고리의 다른 글
[파워쿼리] List.Max로 목록, 열의 최대값, 그룹별 최대값 출력하기 (0) | 2024.06.02 |
---|---|
[파워쿼리] 목록(List)를 활용하여 동적으로 필요한 열만 추출하기 (Table.SelectColumns) (0) | 2024.05.23 |
[파워쿼리] 데이터 필터링용 테이블로 추출조건 손쉽게 설정하기 (List.Contains 함수 활용) (0) | 2024.03.01 |
[파워쿼리] 쿼리 병합 및 '집계'로 데이터 항목별 합계, 평균, 최대값 등의 데이터를 끌고오기 (0) | 2023.11.05 |
[파워쿼리] 데이터 행이 너무 많아 로드가 안될 때 해결방법: 연결만 만들기, 피벗테이블로 만들기 (2) | 2023.10.24 |
댓글