Power BI 필수 함수

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

숫자/집계/통계함수

Created by
  • J
    JINA
Created at
ABS: 절대값 반환
1.
함수정의 :
ABS 함수는
숫자의 절대값을 구하는 함수입니다. 절대값이란 숫자의 부호를 제거한 값으로, 양수는 그대로 유지되고 음수는 양수로 변환됩니다.
2.
기본 구문 :
ABS(<number>)
3.
매개변수 :
<number>: 절대값을 구하고자 하는 숫자입니다. 이 값은 특정 숫자, 열 이름(컬럼), 혹은 수식으로 지정할 수 있습니다.
4.
예시 코드:
(1) ABS(-5)는
5를 반환합니다.
(2) ABS(3)는 그대로
3을 반환합니다.
5.
요약 :
즉, 숫자가 음수이든 양수이든 상관없이
항상 0 이상의 값을 반환해 주는 함수입니다.
데이터 분석에서 값의 크기만 필요할 때 유용하게 사용됩니다.
DIVIDE: 나누기 연산 (0으로 나눌 때 오류 방지)
1.
함수 정의 :
DIVIDE 함수는
두 숫자를 나눌 때 사용하는 함수로, 특히 나눗셈에서 "0으로 나누기" 오류를 방지할 수 있는 장점이 있습니다.
2.
기본 구문:
DIVIDE(<Numerator>, <Denominator>, [AlternativeResult])
3.
매개 변수
Numerator: 나눠지는 값 (분자)
Denominator: 나누는 값 (분모)
AlternativeResult (선택 사항):
분모가 0일 때 반환할 값. 이 값을 설정하지 않으면 BLANK()가 반환됩니다.
4.
DIVIDE 함수의 장점:
/ 연산자를 사용하여 나눗셈을 할 수도 있지만, 그 경우 분모가 0이 되면 오류가 발생합니다. 반면 DIVIDE 함수는 분모가 0이더라도 안전하게 처리할 수 있습니다.
5.
예시 코드:
(1) 기본적인 나눗셈:
DIVIDE(10, 2)
이 결과는
5입니다.
(2) 분모가 0인 경우:
DIVIDE(10, 0, 0)
이 경우 결과는
0이 됩니다. AlternativeResult로 0을 설정했기 때문입니다. 만약 이 값을 설정하지 않았다면 BLANK()가 반환됩니다.
6.
요약
DIVIDE 함수는
나눗셈을 보다 안전하게 수행하도록 도와주는 함수입니다
INT: 정수 반환
1.
함수 정의 :
INT 함수는
숫자 값을 정수로 변환하는 함수입니다. 소수점 이하의 숫자를 제거하고 가장 가까운 아래쪽의 정수로 변환하는 역할을 합니다.
소수점이 있는 숫자를 입력하면 그
숫자를 내림하여 정수로 만들어주는 함수입니다.
2.
기본 구문
INT(<number>)
3.
매개변수
number: 정수 부분만 가져올 숫자를 입력합니다. 이 숫자는 소수점이 포함된 숫자이거나 계산식이 될 수 있습니다.
4.
예시 코드:
INT(3.8) 는
3 을 반환 합니다.
INT(5.2) 는
5 를 반환 합니다.
INT(-4.7) 는
-5 를 반환 합니다.
5.
요약 :
이처럼
INT 함수는 소수점을 없애고 정수로 변환할 때 유용하게 사용할 수 있습니다.
ROUND : 반올림 / ROUNDDOWN: 내림 / ROUNDUP : 올림
• ROUND: 반올림
1.
함수 정의 :
ROUND 함수는 숫자를
특정 소수점 자리까지 반올림하는 함수입니다. Excel의 ROUND 함수와 비슷한 방식으로 작동합니다. 주로 숫자 데이터를 처리할 때 소수점 자릿수를 조정하거나 깔끔한 숫자 형태로 표현하고자 할 때 유용합니다.
2.
기본 구문 :
ROUND(<숫자>, <소수점 자리수>)
3.
매개 변수
<숫자>: 반올림할 숫자
<소수점 자리수>: 반올림할 자릿수 (0이면 정수 부분만 남기고 반올림)
4.
예시 코드 :
ROUND(3.14159, 2)
이 코드는 숫자 3.14159를 소수점 둘째 자리까지 반올림하여
3.14를 반환합니다.
ROUND(123.456, 0)
이 코드는 소수점 없이 정수로 반올림하여
123을 반환합니다.
5.
요약 :
ROUND 함수는
숫자를 원하는 자릿수까지 반올림해주는 함수로, 데이터를 처리하거나 시각화할 때 깔끔하게 보이도록 할 때 많이 사용됩니다.
• ROUNDDOWN: 내림
1.
함수 정의 :
ROUNDDOWN 함수는
숫자를 지정한 소수점 자리까지 내림하는 함수입니다. 즉, 반올림하지 않고 항상 소수점 아래 값을 버립니다. 이 함수는 데이터에서 정밀한 값보다 더 큰 범위로 조정하고 싶을 때 유용합니다.
2.
기본 구문 :
ROUNDDOWN(<숫자>, <소수점 자리수>)
3.
매개 변수 :
<숫자>: 내림할 숫자
<소수점 자리수>: 내림할 소수점 자리수 (0이면 정수 부분만 남김)
4.
예시 코드 :
(1 )ROUNDDOWN(3.14159, 2)
이 코드는 숫자 3.14159에서 소수점 둘째 자리까지만 남기고 내림하여
3.14를 반환합니다.
(2) ROUNDDOWN(123.456, 0)
이 코드는 소수점 이하를 모두 버리고
123을 반환합니다.
5.
요약 :
ROUNDDOWN 함수는 반올림 없이
항상 내림 처리하는 함수로, 소수점 이하를 없애거나 정수화하고 싶을 때 많이 사용됩니다.
• ROUNDUP: 올림
1.
함수 정의 :
ROUNDUP 함수는
숫자를 지정한 소수점 자리까지 올림하는 함수입니다. 즉, 소수점 이하 값이 있으면 해당 자리를 무조건 올려서 처리합니다. 이를 통해 값의 크기를 항상 증가시키는 방식으로 처리합니다.
2.
기본 구문 :
ROUNDUP(<숫자>, <소수점 자리수>)
3.
매개 변수 :
<숫자>: 올림할 숫자
<소수점 자리수>: 올림할 소수점 자리수 (0이면 정수 부분만 남기고 올림)
4.
예시 코드 :
(1) ROUNDUP(3.14159, 2)
이 코드는 숫자 3.14159를 소수점 둘째 자리까지 올림하여
3.15를 반환합니다.
(2) ROUNDUP(123.456, 0)
이 코드는 소수점 이하를 버리고 무조건 올림하여
124를 반환합니다.
5.
요약 :
ROUNDUP 함수는
소수점 이하 값을 무조건 올려주는 함수로, 반올림과 다르게 항상 상향 처리하고 싶을 때 사용됩니다.
차이점 요약 :
ROUND, ROUNDDOWN, ROUNDUP 함수는 숫자를 소수점 자리에서 반올림, 내림, 올림하는 함수들입니다. 각 함수의 동작 방식에 따라 숫자를 다루는 방법이 조금씩 다릅니다.
1.
ROUND 함수
ROUND 함수는 숫자를 반올림합니다.
• 예시 구문:
(1) ROUND(123.456, 2) → 결과:
123.46 (소수점 둘째 자리에서 반올림)
(2) ROUND(123.456, 0) → 결과:
123 (정수 자리에서 반올림)
2.
ROUNDDOWN 함수
ROUNDDOWN 함수는 무조건 내림 처리합니다. 지정된 소수점 자리에서 해당 숫자를 버립니다.
• 예시 구문:
(1) ROUNDDOWN(123.456, 2) → 결과:
123.45 (소수점 둘째 자리에서 내림)
(2) ROUNDDOWN(123.456, 0) → 결과:
123 (정수 자리에서 내림)
3.
ROUNDUP 함수
ROUNDUP 함수는 무조건 올림 처리합니다. 지정된 소수점 자리에서 값을 올립니다.
• 예시 구문 :
(1) ROUNDUP(123.456, 2) → 결과:
123.46 (소수점 둘째 자리에서 올림)
(2) ROUNDUP(123.456, 0) → 결과:
124 (정수 자리에서 올림)
4.
요약
ROUND: 반올림(5 이상 올림, 4 이하 내림)
• ROUNDDOWN: 무조건 내림
• ROUNDUP: 무조건 올림

이 세 가지 함수는 숫자를 다룰 때 원하는 방식으로 자릿수를 조정할 수 있어 매우 유용합니다.
• AVERAGE: 평균 계산 / AVERAGEA: 평균 계산 (텍스트는 0으로) / AVERAGEX: 식을 평가한 후 평균
DAX에서 사용하는 세 가지 평균 함수인 AVERAGE, AVERAGEA, AVERAGEX는 모두 평균을 계산하지만, 작동 방식과 처리하는 데이터의 유형에 따라 차이가 있습니다.
• AVERAGE 함수
1.
함수 정의 :
지정된 열에서
숫자 값들의 평균을 계산합니다.
2.
특징:
숫자가 아닌 값(예: 텍스트 또는 블랭크 값)은 무시됩니다.
3.
기본 구문 :
AVERAGE([column])
4.
예시 코드:
Product 테이블의 Amount 열에 있는 숫자 값들의 평균을 계산합니다.
AVERAGE(Table[Amount])를 사용하면 10, 20, 30의 평균을 계산합니다. 빈 값은 무시됩니다.
5. 결과 :
(10 + 20 + 30) / 3 = 20
• AVERAGEA 함수
1.
함수 정의 :
숫자뿐만 아니라 다른 데이터 유형도 포함하여 평균을 계산합니다.
2.
특징 :
숫자, 텍스트, TRUE/FALSE 등의 값까지 포함하여 처리합니다.
TRUE는 1로, FALSE는 0으로 계산합니다.
공란(빈셀)은 0으로 처리합니다.
텍스트 값은 0으로 처리합니다.
3.
기본 구문:
AVERAGEA([column])
4.
예시 코드:
Product 테이블의 Amount 열에 있는 숫자 값뿐만 아니라 텍스트와 TRUE/FALSE 값을 포함한 전체 평균을 계산합니다.
AVERAGEA(Table[Amount])를 사용하면
공란은 0으로 처리되고,
텍스트 **"None"**은 0으로 처리되며,
TRUE는 1, FALSE는 0으로 처리되어 평균을 계산합니다.
5.
결과 :
(10 + 20 + 0 + 0 + 1 + 0) / 6 = 5.17
AVERAGEX 함수
1.
함수 정의 :
테이블을 기반으로 식을 평가한 후 그 결과에 대한 평균을 계산합니다.
2.
특징 :
테이블을 대상으로 각 행마다 계산을 수행한 후 그 결과 값들의 평균을 구합니다.
사용자가 직접 계산식을 작성할 수 있습니다.
3.
기본 구문:
AVERAGEX(Table, <expression>)
4.
예시 코드:
Product 테이블에서 각 행마다 Amount와 Quantity를 곱한 값을 계산한 후 그 값들의 평균을 계산합니다.
AVERAGEX(Table, Table[Amount] * Table[Quantity])는
각 행에서 Amount와 Quantity를 곱한 값을 계산한 후 그 값들의 평균을 구합니다.
각 행 계산:
A: 10 * 2 = 20
B: 20 * 3 = 60
C: 30 * 4 = 120
5.
결과 :
(20 + 60 + 120) / 3 = 66.67
차이점 요약 :
1.
AVERAGE는 열의 숫자 값만을 대상으로 평균을 계산합니다.
2.
AVERAGEA는 숫자뿐만 아니라 TRUE/FALSE 및 텍스트 값도 고려하여 평균을 계산합니다.
3.
AVERAGEX는 사용자가 지정한 계산식을 각 행에 적용하여 그 결과의 평균을 계산합니다.
4.
이러한 차이점으로 인해 상황에 맞게 적절한 함수를 선택하여 사용할 수 있습니다.
• COUNT: 숫자 셀 개수 / COUNTA: 비어 있지 않은 셀 개수 / COUNTAX: 계산된 비어 있지 않은 셀 개수 / COUNTX: 식을 평가한 후 개수
DAX 함수 중 COUNT, COUNTA, COUNTAX, COUNTX 함수는 모두 데이터를 세는 데 사용되지만, 그 기능과 적용 방식에 약간씩 차이가 있습니다.
COUNT 함수
1.
함수 정의 :
지정된 열에서 숫자 값이 있는
행의 개수를 셉니다. 텍스트나 빈 값은 무시됩니다.
2.
특징 :
숫자 값만 세기 때문에 텍스트나 빈 셀은 무시합니다.
3.
기본 구문:
COUNT([column])
4.
예시 코드 :
숫자 열에서 값이 있는 행의 개수를 알고 싶을 때 사용됩니다.
COUNT([SalesAmount])
• COUNTA 함수
1.
함수 정의 :
지정된 열에서
모든 비어있지 않은 값을 셉니다. 즉, 숫자, 텍스트, 논리 값(True/False) 등 값이 있는 모든 셀이 대상입니다.
2.
특징 :
숫자뿐만 아니라
텍스트나 논리 값도 포함해서, 비어있지 않은 셀의 개수를 알고 싶을 때 사용됩니다.
3.
기본 구문 :
COUNTA([column])
4.
예시 코드:
COUNTA([SalesRep])
숫자가 아닌 값도 포함해서 셀을 셉니다.
• COUNTAX 함수
1.
함수 정의 :
주어진 테이블 또는 열에 대한
계산식을 기반으로 비어 있지 않은 값을 셉니다. 이 함수는 테이블에서 각 행에 대해 식을 평가하고, 결과가 비어 있지 않은 행만 셉니다.
2.
특징 :
각 행에서
지정된 식을 먼저 계산한 후, 그 결과 값이 있는지 여부에 따라 행을 셉니다. (숫자, 텍스트 등 모두 포함 가능)
3.
기본 구문 :
COUNTAX(<table>,<expression>)
4.
예시 코드 :
SalesData 테이블의 SalesAmount 열에서 값을 계산할 때 사용할 수 있습니다.
공란(BLANK())이 아닌 값의 수를 세는 방식으로 작동합니다.
SalesAmount 열의 유효한 값(공란이 아닌 값)을 세어보겠습니다.
COUNTAX(SalesData, SalesData[SalesAmount])
위 수식은 SalesAmount 열에서 공란(BLANK())이 아닌 값의 수를 반환합니다.
계산 과정 :
위의 예제 데이터를 기준으로 계산을 진행하면:
ID 1: SalesAmount = 200 (유효한 값)
ID 2: SalesAmount = 0 (유효한 값)
ID 3: SalesAmount = BLANK() (공란, 포함되지 않음)
ID 4: SalesAmount = 150 (유효한 값)
ID 5: SalesAmount = 100 (유효한 값)
ID 6: SalesAmount = BLANK() (공란, 포함되지 않음)
따라서, 유효한 값은 200, 0, 150, 100으로 총 4개가 됩니다.
5. 결과 :
결과는 4입니다.
• COUNTX 함수
1.
함수 정의 :
주어진 테이블 또는 열에서 숫자 값만 계산하여 셉니다. 각
행에서 식을 계산한 후, 그 결과가 숫자일 경우만 세어줍니다.
2.
특징 :
산된 값이 숫자인 경우에만 행을 셀 때 사용됩니다.
COUNTAX와 달리, 계산 결과가 숫자인 경우에만 셀 수 있습니다.
3.
기본 구문 :
COUNTX(<table>,<expression>)
4.
예시 코드:
COUNTX(Sales, Sales[Quantity] * Sales[UnitPrice])
차이점 요약 :
1.
COUNT: 숫자 값이 있는 셀만 셈.
2.
COUNTA: 모든 비어있지 않은 값(숫자, 텍스트 등)을 셈.
3.
COUNTAX: 각 행에 대해 계산된 결과 값이 비어있지 않은 행을 셈 (숫자, 텍스트 등 모두 가능).
4.
COUNTX: 각 행에 대해 계산된 결과 값이 숫자인 행만 셈.
5.
이 네 함수는 모두 값을 세는 역할을 하지만, 데이터의 유형과 계산 방식에 따라 적절히 선택해야 합니다.
COUNTBLANK: 빈 셀 개수
1.
함수 정의 :
COUNTBLANK 함수는 주어진 열 또는 테이블에서
빈 셀의 개수를 세는 함수입니다. 즉, 데이터 중에서 값이 없는 셀을 찾아 그 개수를 반환합니다. Excel에서 빈 셀을 세는 방법과 비슷하다고 생각하면 됩니다.
2.
기본 구문:
만약 어떤 테이블의 열에 빈 셀이 있다면, COUNTBLANK 함수를 사용하여 그 열에 있는 빈 셀의 개수를 계산할 수 있습니다.
COUNTBLANK(열이름)
3.
예시 코드 :
예를 들어, "판매량"이라는 열이 있는 테이블에서 빈 값을 세고 싶다면,
COUNTBLANK(판매량)
이렇게 하면 "판매량" 열에 있는 빈 셀의 개수를 반환합니다.
4.
요약:
COUNTBLANK 함수는
지정된 열이나 테이블에서 빈 셀(누락된 값)의 개수를 반환합니다
COUNTROWS: 행 개수
1.
함수 정의 :
COUNTROWS 함수는
테이블에 있는 행(row)의 개수를 세는 함수입니다. 테이블에 있는 모든 행을 대상으로 카운트하며, 테이블의 특정 조건을 기반으로 필터링된 경우에도 그 필터링된 행만 계산됩니다.
2.
기본 구분 :
COUNTROWS(테이블)
3.
매개 변수 :
테이블: 여기에는 행의 개수를 셀 테이블을 지정합니다.
4.
예시 코드 :
(1)
모든 행을 셀 때:
COUNTROWS(Products)
이 함수는 Products 테이블에 있는 모든 행의 개수를 반환합니다.
(2)
필터링된 행만 셀 때:
CALCULATE(COUNTROWS(Products), Products[Category] = "Electronics")
여기서는 Products 테이블에서 Category가 "Electronics"인 행의 개수만 계산합니다.
5.
요약 :
COUNTROWS 함수는
테이블의 행 개수를 쉽게 셀 수 있는 함수입니다.
DISTINCTCOUNT: 고유 값 개수 / DISTINCTCOUNTNOBLANK: 빈 값을 제외한 고유 값 개수
DISTINCTCOUNT 함수와 DISTINCTCOUNTNOBLANK 함수는 둘 다 특정 열이나 집합에서 고유한 값(중복되지 않은 값)의 개수를 계산하는 함수입니다. 그러나 이 두 함수는 빈 값(Null 또는 빈 문자열)을 처리하는 방식에서 차이가 있습니다.
DISTINCTCOUNT 함수
1.
함수 정의 :
특정 열에서
중복되지 않는 고유한 값의 수를 계산합니다.
2.
빈 값 처리 :
DISTINCTCOUNT 함수는
빈 값을 하나의 고유 값으로 간주하여 계산에 포함시킵니다.
3.
예시 코드 :
DISTINCTCOUNT(Table[Column])
만약 Table[Column]에 [1, 2, 2, 3, (빈 값)]이라는 데이터가 있다면,
4.
결과 :
DISTINCTCOUNT는 빈 값을 포함하여 고유한 값의 개수4로 반환합니다.
DISTINCTCOUNTNOBLANK 함수
1.
함수 정의 :
특정 열에서
중복되지 않는 고유한 값의 수를 계산하되, 빈 값은 계산에서 제외합니다.
2.
빈 값 처리 :
DISTINCTCOUNTNOBLANK 함수는
빈 값을 무시하고 고유한 값만을 계산합니다.
3.
예시 코드 :
DISTINCTCOUNTNOBLANK(Table[Column])
4.
결과 :
동일한 데이터 [1, 2, 2, 3, (빈 값)]이 있을 때, DISTINCTCOUNTNOBLANK는
빈 값을 제외하고 고유한 값의 개수를 3으로 반환합니다.
차이점 요약:
1.
DISTINCTCOUNT: 빈 값(Null 또는 빈 문자열)을 하나의 고유 값으로 포함하여 계산.
2.
DISTINCTCOUNTNOBLANK: 빈 값을 계산에서 제외하고 고유한 값만 계산.
3.
이 차이는 데이터에 빈 값이 존재할 때 고유 값 개수 계산 방식에서 중요한 영향을 미칩니다.
• MAX: 최대값 반환 / MAXA: 최대값 반환 (텍스트 포함) / MAXX: 식을 평가한 후 최대값
MAX, MAXA, MAXX 함수는 모두 최대값을 계산하는 함수들이지만, 사용 방식과 처리 방식에서 차이가 있습니다. 각 함수의 정의와 특징은 다음과 같습니다.
MAX 함수
1.
함수 정의
지정한 열(column)에서 숫자의 최대값을 반환합니다.
2.
특징 :
단순히 하나의 열이나
숫자 집합에서 최대값을 찾을 때 사용합니다. 숫자가 아닌 값은 무시하고, 숫자 중에서 최대값을 반환합니다.
3.
기본 구문 :
MAX(테이블[숫자열])
4.
예시 코드 :
MAX(테이블[숫자열1])
결과: 20
MAXA 함수
1.
함수 정의 :
MAX와 유사하지만
숫자가 아닌 값도 포함하여 최대값을 반환합니다.
2.
특징 :
숫자뿐만 아니라 텍스트 또는 TRUE/FALSE 값까지 고려하여 최대값을 구할 때 사용합니다.
숫자는 그대로 계산되지만,
텍스트는 0으로 처리됩니다.
TRUE는 1, FALSE는 0으로 처리됩니다.
숫자가 아닌 값을 포함할 때 이 함수를 사용합니다.
3.
기본 구문:
MAXA(테이블[열])
4.
예시 코드 :
MAXA(테이블[TRUE/FALSE])
결과: 1
설명:
TRUE는 1로, FALSE는 0으로 처리됩니다. 따라서 TRUE(1)가 최대값입니다.
MAXX 함수
1.
함수 정의 :
각 행에 대해
계산식을 평가한 결과의 최대값을 반환합니다.
2.
특징 :
각 행에 대해 계산을 먼저 한 후, 그 계산 결과 중에서 최대값을 찾습니다. 테이블 내 여러 열을 이용한 계산이 필요할 때 유용합니다.
3.
기본 구문:
MAXX(테이블, 테이블[열1] * 테이블[열2])
4.
예시 코드 :
MAXX(테이블, 테이블[숫자열1] * 테이블[숫자열2])
결과:
240
설명: 각 행에 대해 숫자열1 * 숫자열2의 결과는 다음과 같습니다
ID 1: 10 * 5 = 50
ID 2: 15 * 7 = 105
ID 3: 8 * 9 = 72
ID 4: 20 * 12 = 240
ID 5: 0 * 14 = 0
이 계산된 값 중에서 최대값은 240입니다.
차이점 요약 :
1.
MAX: 숫자만 처리, 열의 최대값을 구함.
2.
MAXA: 숫자 외에도 TRUE/FALSE, 텍스트 등도 처리 (TRUE는 1, FALSE는 0, 텍스트는 0으로 간주).
3.
MAXX: 각 행마다 계산식을 적용한 후 그 결과에서 최대값을 구함.
4.
MAX는 단순한 최대값을 구하고, MAXA는 숫자가 아닌 값도 고려하며, MAXX는 각 행마다 계산식을 통해 얻은 값 중 최대값을 반환한다고 보면 됩니다.
• MIN: 최소값 반환 / MINA: 최소값 반환 (텍스트 포함) / MINX: 식을 평가한 후 최소값
MIN, MINA, MINX 함수는 모두 최소값을 계산하는 함수들로, 사용 방식과 처리 방식에서 차이가 있습니다. 각 함수의 정의와 특징은 다음과 같습니다.
• MIN 함수
1.
함수 정의 :
지정한 열(column)에서 숫자의 최소값을 반환합니다.
2.
특징 :
하나의 열이나
숫자 집합에서 가장 작은 값을 찾을 때 사용합니다. 숫자가 아닌 값은 무시하고, 숫자 중에서 최소값을 반환합니다.
3.
기본 구문 :
MIN(테이블[숫자열])
4.
예시 코드 :
MIN(테이블[숫자열1])
결과:
0
설명: 숫자열1에서 가장 작은 값은 0입니다. 이 함수는
숫자만 비교하여 최소값을 구합니다.
• MINA 함수
1.
함수 정의 :
MIN과 유사하지만 숫자가 아닌 값도 포함하여 최소값을 반환합니다.
2.
특징 :
숫자뿐만 아니라 텍스트 또는 TRUE/FALSE 값까지 고려하여 최소값을 구할 때 사용합니다.
숫자는 그대로 계산되지만,
텍스트는 0으로 처리됩니다.
TRUE는 1, FALSE는 0으로 처리됩니다.
숫자가 아닌 값을 포함할 때 이 함수를 사용합니다.
3.
기본 구문 :
MINA(테이블[열])
4.
예시 코드 :
MINA(테이블[TRUE/FALSE])
결과:
0
설명:
TRUE는 1로, FALSE는 0으로 처리됩니다. 따라서 FALSE(0)가 최소값입니다.
• MINX 함수
1.
함수 정의 :
각 행에 대해
계산식을 평가한 결과의 최소값을 반환합니다.
2.
특징 :
테이블에서
각 행마다 수식을 적용한 후 그 결과에서 최소값을 구하고자 할 때 사용합니다. 각 행에 대해 계산을 먼저 한 후, 그 계산 결과 중에서 최소값을 찾습니다. 테이블 내 여러 열을 이용한 계산이 필요할 때 유용합니다.
3.
기본 구문:
MINX(테이블, 테이블[열1] * 테이블[열2])
4.
예시 코드
MINX(테이블, 테이블[숫자열1] * 테이블[숫자열2])
결과:
0
설명: 각 행에 대해 숫자열1 * 숫자열2의 결과는 다음과 같습니다:
ID 1: 10 * 5 = 50
ID 2: 15 * 7 = 105
ID 3: 8 * 9 = 72
ID 4: 20 * 12 = 240
ID 5: 0 * 14 = 0
이 계산된 값 중에서 최소값은 0입니다.
차이점 요약 :
1.
MIN: 숫자만 처리, 열의 최소값을 구함. => 예시: MIN(테이블[숫자열1]) → 최소값: 0
2.
MINA: 숫자 외에도 TRUE/FALSE, 텍스트 등을 처리 (TRUE는 1, FALSE는 0, 텍스트는 0으로 간주). => 예시: MINA(테이블[TRUE/FALSE]) → 최소값: 0 (FALSE)
3.
MINX: 각 행마다 계산식을 적용한 후 그 결과에서 최소값을 구함. => 예시: MINX(테이블, 테이블[숫자열1] * 테이블[숫자열2]) → 최소값: 0
4.
MIN은 숫자들 중 최소값을 구하고, MINA는 숫자 외의 값도 고려하여 최소값을 구하며, MINX는 각 행마다 계산식을 적용하여 그 결과 중 최소값을 반환하는 함수입니다.
• PRODUCT: 곱 반환 / PRODUCTX: 식을 평가한 후 곱
PRODUCT 함수와 PRODUCTX 함수는 DAX에서 곱셈 연산을 수행하는 함수들로, 데이터를 처리하는 방식에 차이가 있습니다.
• PRODUCT 함수
1.
함수 정의 :
PRODUCT 함수는
특정 컬럼에 있는 모든 숫자 값을 곱하는 함수입니다. 컬럼에 있는 값들을 순차적으로 곱하여 하나의 최종 결과를 반환합니다.
2.
기본 구문:
PRODUCT(<Column>)
3.
예시 구문:
Sales 테이블에 Amount라는 컬럼이 있다고 가정해보겠습니다. 이 컬럼의 값이 10, 20, 30이라고 할 때, PRODUCT(Sales[Amount]) 함수는 이 세 값을 곱하여 결과를 반환합니다.
PRODUCT(Sales[Amount])
Sales[Amount]의 값: 10, 20, 30
4.
결과 :
10 * 20 * 30 = 6,000
따라서 이 함수는 10, 20, 30의 곱인
6,000을 반환합니다.
• PRODUCTX 함수
1.
함수 정의 :
PRODUCTX 함수는 테이블의
각 행에 대해 특정 계산식을 적용한 후, 그 계산된 값들을 곱하는 함수입니다. 이 함수는 테이블에서 각 행마다 별도의 연산을 수행한 뒤 그 결과를 곱하는 방식으로 작동합니다.
2.
기본 구문:
PRODUCTX(<Table>, <Expression>)
3.
예시 구문:
Sales 테이블에 Price와 Quantity라는 두 개의 컬럼이 있다고 가정해보겠습니다. 테이블의 값은 아래와 같습니다:
PRODUCTX(Sales, Sales[Price] * Sales[Quantity])
이 함수는 각 행마다 Price와 Quantity를 곱한 후, 그 결과값을 곱합니다.
첫 번째 행: 10 * 2 = 20
두 번째 행: 20 * 3 = 60
세 번째 행: 30 * 4 = 120
이제 이 결과값들을 다시 곱합니다
4. 결과 :
20 * 60 * 120 = 144,000
따라서 이 함수는
144,000을 반환합니다.
차이점 요약 :
1.
PRODUCT 함수는 특정 컬럼의 모든 값을 곱하는 단순한 곱셈 함수입니다. 예를 들어, Amount 컬럼의 값들이 10, 20, 30일 경우, 이 함수는 10 * 20 * 30 = 6,000을 반환합니다.
2.
PRODUCTX 함수는 각 행마다 다른 계산을 적용한 후, 그 계산된 값을 곱합니다. 예를 들어, Price와 Quantity 컬럼이 있는 테이블에서 각 행의 Price와 Quantity를 곱한 후, 그 결과를 모두 곱하여 최종 결과를 반환합니다. 예시 테이블에서는 최종 결과가 144,000이 됩니다.
3.
두 함수는 곱셈 연산을 수행하지만, PRODUCT는 단순한 컬럼 값을 곱하는 데 사용되고, PRODUCTX는 보다 복잡한 계산식이 필요한 경우에 적합합니다.
SUM: 합계 계산 / SUMX: 식을 평가한 후 합계
SUM 함수와 SUMX 함수는 모두 합계를 구하는 데 사용되지만, 그 방식과 적용되는 상황에서 차이가 있습니다.
• SUM 함수
SUM 함수는 단순하게 열(column) 내의 숫자를 모두 더하는 함수입니다. 이 함수는 단일 열의 합계를 구할 때 사용됩니다.
사용 예시
예를 들어, 아래와 같은 테이블이 있다고 가정합시다.
1.
함수 정의 :
SUM 함수는
단순하게 열(column) 내의 숫자를 모두 더하는 함수입니다. 이 함수는 단일 열의 합계를 구할 때 사용됩니다.
2.
기본 구문 :
SUM(column)
3.
예시 코드 :
예를 들어, 아래와 같은 테이블이 있다고 가정합시다.
SUM 함수는 이 테이블의 "판매량" 열의 값을 모두 더합니다.
Total Sales = SUM(테이블[판매량])
4.
결과 :
10 + 20 + 15 =
45
• SUMX 함수
1.
함수 정의 :
SUMX 함수는
행 단위 계산을 수행한 후, 그 결과를 합산하는 함수입니다. 즉, 각 행에 대해 어떤 계산식을 적용한 후 그 결과값을 더하고자 할 때 사용됩니다.
2.
기본 구문 :
SUMX(table, expression)
3.
예시 코드 :
이번에는 아래와 같은 테이블이 있다고 가정합시다.
SUMX 함수는 각 행에 대해 "판매량"과 "단가"를 곱한 후 그 결과를 더할 수 있습니다.
Total Revenue = SUMX(테이블, 테이블[판매량] * 테이블[단가])
4. 결과:
(10 * 5) + (20 * 7) + (15 * 8) = 50 + 140 + 120 =
310
차이점 요약 :
1.
SUM 함수는 단순 열을 더할 때 사용됩니다. 계산 없이 열의 값들을 단순하게 합산합니다.
2.
SUMX 함수는 각 행별로 계산을 적용한 후 그 결과를 합산할 때 사용됩니다. 즉, 계산된 값들의 합을 구할 때 적합합니다.
3.
SUM 함수는 단순한 열의 합계를 구하는 데 쓰이고, SUMX 함수는 각 행별로 계산을 수행한 후 그 계산된 값을 합산할 때 사용됩니다.
MEDIAN: 중간값 반환
1.
함수 정의 :
MEDIAN 함수는
주어진 열이나 테이블의 값들 중에서 중간 값을 반환하는 함수입니다. 중간 값은 데이터를 크기 순서대로 정렬했을 때 가운데 위치한 값입니다. 값의 개수가 짝수일 경우에는 가운데에 위치한 두 값의 평균을 반환합니다. 중간값은 데이터의 극단적인 값에 덜 민감하기 때문에 평균보다 더 정확한 중심 경향을 나타낼 수 있습니다.
2.
기본 구문 :
MEDIAN(<ColumnName>)
3.
매개 변수 :
<ColumnName>: 중간 값을 계산할 열을 지정합니다.
4.
예시 코드:
매출 데이터가 {100,200,150,300,250} 일때, 매출의 중간 값을 구하기 위해서 MEDIAN 함수를 사용하면 다음과 같습니다.
MEDIAN(Sales[매출])
이 함수를 실행하면 다음과 같이 값들이 정렬되고,
정렬된 값: 100, 150, 200, 250, 300
5.
결과 :
가운데 값인
200이 반환됩니다.
또한, 만약
값이 짝수 개라면(예: 100, 150, 200, 250), 가운데 두 값(150, 200)의 평균인 175가 반환됩니다.
6.
요약 :
MEDIAN 함수는 평균(AVERAGE)과는 달리 극단값(예: 매우 크거나 작은 값)에 영향을 덜 받기 때문에,
분포가 비대칭인 데이터에서 더 유용할 수 있습니다.
RANKX: 순위 계산
1.
함수 정의 :
RANKX 함수는 주어진 데이터 테이블에서
특정 값의 순위를 계산할 때 사용됩니다. 주로 순위 매기기나 순위 비교를 할 때 유용합니다.
2.
기본 구문
RANKX(
<테이블>,
<식>,
[<값 비교 방식>],
[<정렬 방향>],
[<타이 브레이크>]
)
3.
매개 변수 :
<테이블>: 순위를 계산할 테이블(또는 데이터 집합).
<식>: 순위를 계산할 기준이 되는 값.
<값 비교 방식>: 생략 가능. 기본적으로는 Value로 비교되며, 논리적 비교 방식 등을 설정할 수 있습니다.
<정렬 방향>: 기본값은 ASC(오름차순)입니다. DESC(내림차순)를 지정하면 높은 값일수록 높은 순위를 갖습니다.
<타이 브레이크>: 순위가 동일한 경우 어떻게 처리할지 설정하는 옵션입니다.
4.
예시 코드 :
아래와 같은 테이블이 있다고 가정해 봅시다.
학생들의 점수를 기준으로 순위를 매기고 싶다면 RANKX 함수를 다음과 같이 사용할 수 있습니다.
RANKX(
ALL(학생_테이블), -- 테이블 전체
학생_테이블[점수], -- 기준이 되는 값 (점수)
, -- 값 비교 방식 (기본값 사용)
DESC -- 높은 점수가 높은 순위를 가지도록 내림차순 정렬

)
이 함수는 각 학생의 점수를 기준으로 순위를 계산합니다. 결과는 다음과 같습니다.
5.
요약 :
RANKX 함수는 특정 기준에 따라 데이터의 순위를 계산합니다.
오름차순 또는 내림차순 정렬을 설정할 수 있습니다.
동일한 값을 가진 경우 동일 순위로 처리됩니다.
참고 : 타이브레이크 방식에는 DENSE 방식과 SKIP 방식이 있습니다.
1.
기본 방식 (SKIP)
기본 순위 계산 방식에서는,
동일한 점수에 대해 동일 순위를 부여하고, 그 다음 순위는 해당 순위만큼 건너뛰게 됩니다.
RANKX(
ALL(학생_테이블),
학생_테이블[점수],
,
DESC -- 내림차순 정렬
)
결과는 다음과 같습니다:
영희와 수지가 동일한 1위 순위를 받고, 그 다음 순위인 2위는 건너뛰고 철수가 3위가 됩니다.
이것이 기본적인 SKIP 방식입니다.
2.
DENSE 방식
DENSE 방식에서는
동일한 값에 동일한 순위를 부여하되, 그 다음 순위를 건너뛰지 않습니다.
RANKX(
ALL(학생_테이블),
학생_테이블[점수],
,
DESC, -- 내림차순 정렬
DENSE -- DENSE 방식 적용
)
결과는 다음과 같습니다
동일한 순위를 부여한 뒤, 다음 순위는 건너뛰지 않고 바로 2위가 철수에게 부여되었습니다.
3.
요약 :
SKIP 방식: 동일한 값에 동일 순위를 부여하고, 다음 순위는 건너뛰어 계산합니다.
DENSE 방식: 동일한 값에 동일 순위를 부여하고, 다음 순위는 건너뛰지 않고 연속적으로 매깁니다.
DENSE 방식을 사용하면 순위가 연속적이므로, 순위를 건너뛰지 않는 방식이 필요할 때 유용합니다.