요약 : 즉, 숫자가 음수이든 양수이든 상관없이 항상 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와 달리, 계산 결과가 숫자인 경우에만 셀 수 있습니다.
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입니다.
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(테이블, 테이블[판매량] * 테이블[단가])
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 방식을 사용하면 순위가 연속적이므로, 순위를 건너뛰지 않는 방식이 필요할 때 유용합니다.