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 2:17 PM
텍스트
Empty
• 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 방식을 사용하면 순위가 연속적이므로, 순위를 건너뛰지 않는 방식이 필요할 때 유용합니다.
Made with Slashpage