Power BI Desktop의 DAX 기본 사항DAX basics in Power BI Desktop

이 문서는 Power BI Desktop을 처음 사용하는 사용자를 위한 것입니다.This article is for users new to Power BI Desktop. 여기서는 DAX(Data Analysis Expressions)를 사용하여 여러 가지 기본 계산 및 데이터 분석 문제를 해결하는 방법에 대해 신속하고 간략하게 소개합니다.It’s meant to give you a quick and easy introduction on how you can use Data Analysis Expressions (DAX) to solve a number of basic calculation and data analysis problems. 또한 일부 기본 개념, 완료할 수 있는 일련의 작업 및 지금까지 학습한 내용을 테스트할 수 있는 몇 가지 퀴즈를 검토합니다.We’ll go over some conceptual information, a series of tasks you can complete, and a few quizzes to test what you’ve learned. 이 문서를 완료하면 DAX의 가장 중요한 기본 개념을 제대로 이해하고 있어야 합니다.After completing this article, you should have a good understanding of the most important fundamental concepts in DAX.

DAX란 무엇인가요?What is DAX?

DAX란 수식 또는 식에서 하나 이상의 값을 계산하고 반환하는 데 사용할 수 있는 함수, 연산자 및 상수 컬렉션입니다.DAX is a collection of functions, operators, and constants that can be used in a formula, or expression, to calculate and return one or more values. 간단히 말해서, DAX를 사용하면 이미 모델에 있는 데이터로 새로운 정보를 만들 수 있습니다.Stated more simply, DAX helps you create new information from data already in your model.

DAX는 왜 중요한가요?Why is DAX so important?

매우 쉽게 새로운 Power BI Desktop 파일을 만들고 일부 데이터를 Power BI Desktop으로 가져올 수 있습니다.It’s quite easy to create a new Power BI Desktop file and import some data into it. DAX 수식을 사용하지 않고도 중요한 정보를 보여 주는 보고서를 만들 수 있습니다.You can even create reports that show valuable insights without using any DAX formulas at all. 그러나 제품 범주 전체 및 다양한 날짜 범위에 대해 증가 비율을 분석해야 하는 경우는 어떻게 될까요?But, what if you need to analyze growth percentage across product categories and for different date ranges? 또는 시장 추세와 비교하여 전년동기대비 성장을 계산해야 하는 경우는 어떻게 되나요?Or, you need calculate year-over-year growth compared to market trends? DAX 수식은 이러한 기능과 여러 가지 다른 중요한 기능도 제공합니다.DAX formulas provide this capability and many other important capabilities as well. 효과적인 DAX 수식을 만드는 방법을 학습하면 데이터를 최대한 활용하는 데 도움이 됩니다.Learning how to create effective DAX formulas will help you get the most out of your data. 필요한 정보를 얻으면 총결산에 영향을 주는 실제 비즈니스 문제를 해결할 수 있습니다.When you get the information you need, you can begin to solve real business problems that affect your bottom line. 이는 Power BI의 강력한 기능이며 DAX는 이러한 기능을 사용하는 데 도움이 됩니다.This is the power in Power BI, and DAX will help you get there.

필수 조건Prerequisites

Microsoft Excel에서 수식을 만드는 방법을 이미 잘 알고 있을 수 있습니다.You might already be familiar with creating formulas in Microsoft Excel. 이 지식은 DAX를 이해하는 데 도움이 되지만 Excel 수식에 대해 잘 모르는 경우에도 여기에 설명된 개념을 사용하면 DAX 수식을 만들고 실제 BI 문제 해결을 바로 시작할 수 있습니다.That knowledge will be helpful in understanding DAX, but even if you have no experience with Excel formulas, the concepts described here will help you get started creating DAX formulas and solving real-world BI problems right away.

여기서는 계산, 특히 측정값 및 계산 열에서 사용되는 DAX 수식을 이해하는 것에 초점을 두고 설명하려고 합니다.We’re going to focus on understanding DAX formulas used in calculations, more specifically, in measures and calculated columns. Power BI Desktop, 데이터 가져오기, 보고서에 필드 추가에 대해서는 이미 잘 알고 있어야 하며 측정값계산 열의 기본 개념도 숙지하고 있어야 합니다.You should already be familiar with Power BI Desktop, importing data, adding fields to a report, and you should also be familiar with fundamental concepts of Measures and Calculated columns.

예제 통합 문서Example Workbook

DAX를 학습하는 가장 좋은 방법은 몇 가지 기본 수식을 만들어 실제 데이터에 사용하고 그 결과를 직접 확인하는 것입니다.The best way to learn DAX is to create some basic formulas, use it with some actual data, and see the results for yourself. 이 문서의 예제 및 작업에서는 Contoso Sales Sample for Power BI Desktop Preview 파일을 사용합니다.The examples and tasks here use the Contoso Sales Sample for Power BI Desktop Preview file. 이는 자습서: Power BI Desktop에서 고유한 측정값 만들기 문서에 사용된 것과 동일한 샘플 파일입니다.This is the same sample file used in the Tutorial: Create your own measures in Power BI Desktop article. 여기서 다운로드할 수 있습니다.You can download it here.

시작하기Let's begin!

여기서는 세 가지 기본 개념인 구문, 함수 및 컨텍스트를 중심으로 DAX에 대한 이해를 진행합니다.We will frame our understanding of DAX around three fundamental concepts: Syntax, Functions, and Context. 물론 DAX에는 다른 중요한 개념도 있지만 이러한 세 가지 개념을 이해하면 DAX 기술을 구축할 최상의 토대가 제공됩니다.Of course, there are other important concepts in DAX, but understanding these three concepts will provide the best foundation on which to build your DAX skills.

구문Syntax

수식을 직접 만들기 전에 DAX 수식 구문에 대해 살펴보겠습니다.Before you create your own formulas, let’s take a look at DAX formula syntax. 구문에는 수식을 구성하는 요소, 보다 간단히 수식이 작성되는 방법이 포함됩니다.Syntax includes the various elements that make up a formula, or more simply, how the formula is written. 예를 들어 측정값에 대한 간단한 DAX 수식을 살펴보겠습니다.For example, let’s look at a simple DAX formula for a measure.

이 수식에는 다음과 같은 구문 요소가 있습니다.This formula includes the following syntax elements:

A.A. 측정값 이름 총 판매액.The measure name Total Sales.

B.B. 등호 연산자(=)는 수식의 시작을 나타냅니다.The equals sign operator (=) indicates the beginning of the formula. 계산되면 결과를 반환합니다.When calculated, it will return a result.

C.C. DAX 함수 합계판매액[SalesAmount] 열에 있는 모든 숫자를 더합니다.The DAX function SUM adds up all of the numbers in the Sales[SalesAmount] column. 함수에 대해서는 나중에 자세히 살펴보겠습니다.You’ll learn more about functions later.

D.D. 괄호 ()는 하나 이상의 인수를 포함하는 식을 둘러쌉니다.Parenthesis () surround an expression containing one or more arguments. 모든 함수에는 하나 이상의 인수가 필요합니다.All functions require at least one argument. 인수는 함수에 값을 전달합니다.An argument passes a value to a function.

E.E. 참조되는 테이블 판매액.The referenced table Sales.

F.F. 판매액 테이블에서 참조되는 열 [SalesAmount].The referenced column [SalesAmount] in the Sales table. 이 인수를 사용하여 SUM 함수는 SUM을 집계할 열을 파악합니다.With this argument, the SUM function knows on which column to aggregate a SUM.

DAX 수식을 이해하려는 경우 매일 생각하고 말하는 언어로 각 요소를 분석하면 도움이 되는 경우가 종종 있습니다.When trying to understand a DAX formula, it is often helpful to break down each of the elements into a language you think and speak every day. 예를 들어 이 수식을 다음과 같이 읽을 수 있습니다.For example, you can read this formula as:

Total Sales라는 측정값의 경우 Sales 테이블의 [SalesAmount] 열에 있는 값의 SUM을 계산(=)합니다.For the measure named Total Sales, calculate (=) the SUM of values in the [SalesAmount ] column in the Sales table.

보고서에 추가되면 이 측정값은 포함된 각각의 다른 필드(예: 미국의 휴대폰)에 대한 판매 금액을 합계하여 값을 계산하고 반환합니다.When added to a report, this measure calculates and returns values by summing up sales amounts for each of the other fields we include, for example, Cell Phones in the USA.

'이 측정값은 보고서에 SalesAmount 필드를 추가하는 것과 같은 동작을 수행하는 것이 아닐까?'라고 생각할 수 있습니다.You might be thinking ‘Isn’t this measure doing the same thing as if I were to just add the SalesAmount field to my report?’ 네, 그렇습니다.Well, yes. 그러나 SalesAmount 필드 값의 합계를 구하는 측정값을 직접 만드는 적절한 이유가 있습니다. 바로 다른 수식에서 인수로 사용할 수 있기 때문입니다.But, there’s a good reason to create our own measure that sums up values from the SalesAmount field: We can use it as an argument in other formulas. 지금은 약간 혼란스러울 수 있지만 이러한 사실을 알고 있으면 DAX 수식에 대한 이해가 증가함에 따라 수식 및 모델을 보다 효율적으로 만들 수 있습니다.This may seem a little confusing now, but as your DAX formula skills grow, knowing this will make your formulas and your model more efficient. 실제로 나중에 다른 수식에서 인수로 표시되는 Total Sales 측정값을 확인할 수 있습니다.In-fact, you’ll see the Total Sales measure showing up as an argument in other formulas later on.

이 수식에 대해 몇 가지 더 살펴보겠습니다.Let’s go over a few more things about this formula. 특히 합계 함수를 사용했습니다.In particular, we introduced a function, SUM. 함수는 복잡한 계산 및 숫자, 날짜, 시간, 텍스트 등을 사용한 조작을 더 쉽게 수행할 수 있도록 미리 작성된 수식입니다.Functions are pre-written formulas that make it easier to do complex calculations and manipulations with numbers, dates, time, text, and more. 함수에 대해서는 나중에 자세히 살펴보겠습니다.You will learn more about functions later.

또한 [SalesAmount] 열은 해당 열이 속하는 Sales 테이블 뒤에 오는 것을 확인할 수 있습니다.You also see the column [SalesAmount] was preceded by the table Sales in which the column belongs. 열 이름이 테이블 이름 뒤에 포함된다는 점에서 정규화된 열 이름이라고 합니다.This is known as a fully qualified column name in that it includes the column name preceded by the table name. 동일한 테이블에 있는 참조되는 열에서는 테이블 이름을 수식에 포함할 필요가 없습니다.Columns referenced in the same table do not require the table name be included in the formula. 따라서 많은 열을 참조하는 긴 수식을 더 짧게 만들어 더 쉽게 읽을 수 있습니다.This can make long formulas that reference many columns shorter and easier to read. 그러나 동일한 테이블에 있는 경우에도 측정값 수식에는 테이블 이름을 포함하는 것이 좋습니다.However, it's good practice to include the table name in your measure formulas, even when in the same table.

참고

테이블 이름에 공백, 예약된 키워드 또는 허용되지 않는 문자가 포함된 경우 테이블 이름을 작은따옴표로 묶어야 합니다.If a table name contains spaces, reserved keywords, or disallowed characters, you’ll need to enclose the table name in single quotation marks. 또한 테이블 이름에 ANSI 영숫자 문자 범위를 벗어나는 문자가 포함된 경우에는 로캘에서 해당 문자 집합을 지원하는지 여부와 관계없이 해당 이름을 따옴표로 묶어야 합니다.You’ll also need to enclose table names in quotation marks if the name contains any characters outside the ANSI alphanumeric character range, regardless of whether your locale supports the character set or not.

수식은 올바른 구문을 사용해야 합니다.It’s important your formulas have the correct syntax. 대부분의 경우 구문이 올바르지 않으면 구문 오류가 반환됩니다.In most cases, if the syntax is not correct, a syntax error will be returned. 구문은 올바르지만 반환된 값이 예상과 다른 경우도 있습니다.In other cases, the syntax may be correct, but the values returned might not be what you are expecting. Power BI Desktop의 DAX 편집기에서는 올바른 요소를 선택하여 구문상 올바른 수식을 만드는 데 사용되는 추천 기능을 제공합니다.The DAX editor in Power BI Desktop includes suggestions; a feature used to create syntactically correct formulas by helping you select the correct elements.

간단한 수식을 만들어 보겠습니다.Let’s create a simple formula. 이 작업을 통해 수식 구문 및 수식 입력줄에서 추천 기능이 어떻게 도움이 되는지를 더 잘 이해할 수 있습니다.This task will help you further understand formula syntax and how the suggestions feature in the formula bar can help you.

작업: 측정값 수식 만들기Task: Create a measure formula

이 작업을 완료하려면 Contoso Sales Sample Power BI Desktop 파일을 열어야 합니다.To complete this task, you’ll need to open the Contoso Sales Sample Power BI Desktop file.

  1. 보고서 뷰의 필드 목록에서 판매액 테이블을 마우스 오른쪽 단추로 클릭한 다음 새 측정값을 클릭합니다.In Report view, in the field list, right-click on the Sales table, and then click New Measure.

  2. 수식 입력줄에서 새 측정값 이름 이전 분기 판매액을 입력하여 측정값을 대체합니다.In the formula bar, replace Measure by typing a new measure name, Previous Quarter Sales.

  3. 등호 다음에 합계를 입력한 다음 여는 괄호를 입력합니다.After the equals sign, type SUM followed by an opening parenthesis.

    열 이름을 입력하여 바로 합계를 계산하는 대신 다른 함수를 입력하여 합계를 계산할 데이터를 필터링 하겠습니다.Rather than type a column name to sum up right away, we’re going to enter another function, to filter the data we want to sum up.

  4. 괄호 사이에 계산을 입력한 다음 여는 괄호를 입력합니다.Between the parentheses, type CALCULATE, followed by an opening parenthesis.

    CALCULATE 함수를 사용하여 CALCULATE 함수에 전달되는 인수로 합계를 계산할 금액을 필터링합니다.You’ll use the CALCULATE function to filter the amounts we want to sum by an argument we pass to the CALCULATE function. 이런 함수를 중첩 함수라고 합니다.This is what’s referred to as nesting functions. CALCULATE 함수에는 둘 이상의 인수가 있습니다.The CALCULATE function has at least two arguments. 첫 번째는 계산할 식이고 두 번째는 필터입니다.The first is the expression to be evaluated, and second, a filter.

  5. 계산 함수에 대한 괄호 () 사이에 판매액[SalesAmount]을 입력합니다.Between the parenthesis () for the CALCULATE function, type Sales[SalesAmount]. CALCULATE 함수에 대한 첫 번째 식 인수입니다.This is the first expression argument for our CALCULATE function.

  6. 쉼표(,)를 입력하여 첫 번째 필터를 지정하고 PREVIOUSQUARTER를 입력한 다음 여는 괄호를 입력합니다.Type a comma (,) to specify the first filter, then type PREVIOUSQUARTER followed by an opening parenthesis..

    PREVIOUSQUARTER 시간 인텔리전스 함수를 사용하여 이전 분기별로 SUM 결과를 필터링합니다.You’ll use the PREVIOUSQUARTER time intelligence function to filter our SUM results by the previous quarter.

  7. PREVIOUSQUARTER 함수에 대한 괄호 () 사이에 달력[DateKey]을 입력합니다.Between the parenthesis () for the PREVIOUSQUARTER function, type Calendar[DateKey].

    PREVIOUSQUARTER 함수에는 인접한 날짜 범위를 포함하는 열인 인수 하나가 있습니다.The PREVIOUSQUARTER function has one argument, a column containing a contiguous range of dates. >

  8. PREVIOUSQUARTER 함수와 계산 함수에 전달한 인수가 모두 두 개의 닫는 괄호 ))로 닫혀 있는지 확인합니다.Make sure both the arguments being passed to the PREVIOUSQUARTER function and the CALCULATE function are closed by two closing parentheses )).

    이제 수식이 다음과 같이 표시됩니다.Your formula should now look like this:

    Previous Quarter Sales = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))Previous Quarter Sales = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))

  9. 수식 입력줄에서 확인 표시 를 클릭하거나 Enter 키를 눌러 수식의 유효성을 검사하고 모델에 추가합니다.Click the checkmark in the formula bar or press Enter to validate the formula and add it to the model.

이제 완료되었습니다.You did it! 쉽지는 않았지만 방금 DAX를 사용하여 측정값을 만들었습니다.You just created a measure using DAX, and not an easy one at that. 이 수식은 보고서에서 적용된 필터에 따라 이전 분기에 대한 총 판매액을 계산합니다.What this formula will do is calculate the total sales for the previous quarter, depending on the filters applied in a report. 예를 들어 차트에 SalesAmount와 새로운 Previous Quarter Sales 측정값을 배치한 다음 Year 및 QuarterOfYear를 슬라이서로 추가하면 다음과 같은 모습이 됩니다.For example, if we put SalesAmount and our new Previous Quarter Sales measure in a chart, and then added Year and QuarterOfYear as Slicers, we’d get something like this:

방금 DAX 수식의 몇 가지 중요한 측면이 소개되었습니다.You were just introduced to several important aspects of DAX formulas. 첫 번째 이 수식에는 두 개의 함수가 포함되었습니다.First, this formula included two functions. PREVIOUSQUARTER 시간 인텔리전스 함수는 계산 필터 함수에 전달되는 인수로 중첩됩니다.Notice PREVIOUSQUARTER, a time intelligence, function is nested as an argument passed to CALCULATE, a filter function. DAX 수식에는 중첩 함수가 최대 64개까지 포함될 수 있습니다.DAX formulas can contain up to 64 nested functions. 그러나 수식에 이렇게 많은 중첩 함수가 포함될 가능성은 없습니다.It’s unlikely a formula would ever contain so many nested functions. 실제로 이러한 함수는 만들고 디버그하기가 매우 어려우며 빠르게 이러한 작업을 수행할 수도 없습니다.In fact, such a formula would be very difficult to create and debug, and it probably wouldn’t be very fast either.

이 수식에서는 필터도 사용했습니다.In this formula, you also used filters. 필터는 계산될 범위를 좁힙니다.Filters narrow down what will be calculated. 이 경우 실제로 다른 함수의 결과인 필터 한 개를 인수로 선택했습니다.In this case, you selected one filter as an argument, which is actually the result of another function. 필터에 대해서는 나중에 자세히 살펴보겠습니다.You will learn more about filters later.

마지막으로 CALCULATE 함수를 사용했습니다.Finally, you used the CALCULATE function. DAX에서 가장 강력한 함수 중 하나입니다.This is one of the most powerful functions in DAX. 모델을 작성하고 더 복잡한 수식을 만들 때 이 함수를 여러 번 사용할 가능성이 많습니다.As you author models and create more complex formulas, you will likely use this function many times. CALCULATE 함수에 대한 설명은 이 문서의 범위를 벗어나지만 DAX에 대한 지식이 많아지면 이 함수에 특별히 주의해야 합니다.Discussing the CALCULATE function is outside the scope of this article, but as your knowledge of DAX grows, pay special attention to this one.

구문 QuickQuizSyntax QuickQuiz

  1. 수식 입력줄에서 이 단추의 기능은 무엇인가요?What does this button on the formula bar do?

  2. DAX 수식에서 항상 열 이름을 둘러싸는 것은 무엇인가요?What always surrounds a column name in a DAX formula?

답변은 이 문서의 끝에서 제공됩니다.Answers are provided at the end of this article.

함수Functions

함수는 특정 순서 또는 구조에서 인수라는 특정 값을 사용하여 계산을 수행하는 미리 정의된 수식입니다.Functions are predefined formulas that perform calculations by using specific values, called arguments, in a particular order or structure. 인수는 다른 함수, 다른 수식, 식, 열 참조, 숫자, 텍스트, TRUE/FALSE 같은 논리 값 또는 상수일 수 있습니다.Arguments can be other functions, another formula, expression, column references, numbers, text, logical values such as TRUE or FALSE, or constants.

DAX에는 날짜 및 시간, 시간 인텔리전스,정보, 논리,수학, 통계, 텍스트, 상위/하위기타 함수와 같은 범주의 함수가 포함되어 있습니다.DAX includes the following categories of functions: Date and Time, Time Intelligence,Information, Logical,Mathematical, Statistical, Text, Parent/Child and Other functions. Excel 수식의 함수에 익숙한 경우 DAX의 많은 함수가 유사하게 보이지만 DAX 함수는 다음과 같은 측면에서 고유합니다.If you’re familiar with functions in Excel formulas, many of the functions in DAX will appear similar to you; however, DAX functions are unique in the following ways:

  • DAX 함수는 항상 전체 열 또는 테이블을 참조합니다.A DAX function always references a complete column or a table. 테이블 또는 열에서 특정 값만 사용하려는 경우 수식에 필터를 추가할 수 있습니다.If you want to use only particular values from a table or column, you can add filters to the formula.
  • 행 단위로 계산을 사용자 지정해야 하는 경우 DAX는 현재 행 값이나 관련 값을 일종의 인수로 사용할 수 있는 함수를 제공하여 컨텍스트에 따라 다른 계산을 수행합니다.If you need to customize calculations on a row-by-row basis, DAX provides functions that let you use the current row value or a related value as a kind of argument, to perform calculations that vary by context. 컨텍스트에 대해서는 나중에 자세히 살펴보겠습니다.You will learn more about context later.
  • DAX에는 값이 아닌 테이블을 반환하는 함수가 많이 포함되어 있습니다.DAX includes many functions that return a table rather than a value. 테이블은 표시되지 않지만 다른 함수에 대한 입력을 제공하는 데 사용됩니다.The table is not displayed, but is used to provide input to other functions. 예를 들어 테이블을 검색한 다음 테이블에 포함된 고유 값을 계산하거나 필터링된 테이블 또는 열 전체에서 동적 합계를 계산할 수 있습니다.For example, you can retrieve a table and then count the distinct values in it, or calculate dynamic sums across filtered tables or columns.
  • DAX에는 다양한 시간 인텔리전스 함수가 포함되어 있습니다.DAX includes a variety of time intelligence functions. 이러한 함수를 사용하여 날짜 범위를 정의하거나 선택하고 그에 따라 동적 계산을 수행할 수 있습니다.These functions let you define or select date ranges, and perform dynamic calculations based on them. 예를 들어 병렬 기간 전체의 합계를 비교할 수 있습니다.For example, you can compare sums across parallel periods.
  • Excel에는 매우 많이 사용되는 VLOOKUP 함수가 있습니다.Excel has a very popular function, VLOOKUP. DAX 함수는 Excel의 VLOOKUP처럼 셀 또는 셀 범위를 참조로 사용하지 않습니다.DAX functions don’t take a cell or cell range as a reference like VLOOKUP does in Excel. DAX 함수는 열 또는 테이블을 참조로 사용합니다.DAX functions take a column or a table as a reference. Power BI Desktop에서는 관계형 데이터 모델을 사용하고 있다는 점에 유의해야 합니다.Keep in-mind, in Power BI Desktop, you’re working with a relational data model. 다른 테이블의 값을 조회하기가 매우 쉬우므로 대부분의 경우 수식을 만들 필요가 없습니다.Looking up values in another table is really quite easy, and in most cases you don’t need to create any formula at all.

    보다시피 DAX의 함수를 사용하면 매우 강력한 수식을 만들 수 있습니다.As you can see, functions in DAX can help you create very powerful formulas. 실제로 여기서는 함수의 기본 사항만 다루었습니다.We really only touched on the basics of functions. DAX에 대한 이해가 늘어나면 여러 가지 다른 함수를 사용하여 수식을 만들 수 있습니다.As your DAX skills grow, you'll create formulas using many different functions. 각 DAX 함수에 대한 자세한 내용은 DAX 함수 참조를 참조하세요.One of the best places to learn details about each of DAX functions is in the DAX Function Reference.

함수 QuickQuizFunctions QuickQuiz

  1. 함수는 항상 무엇을 참조하나요?What does a function always reference?
  2. 수식에 둘 이상의 함수가 포함될 수 있나요?Can a formula contain more than one function?
  3. 두 개의 텍스트 문자열을 하나의 문자열로 연결하려면 어떤 범주의 함수를 사용해야 할까요?What category of functions would you use to concatenate two text strings into one string?

답변은 이 문서의 끝에서 제공됩니다.Answers are provided at the end of this article.

컨텍스트Context

컨텍스트는 이해해야 할 가장 중요한 DAX 개념 중 하나입니다.Context is one of the most important DAX concepts to understand. DAX에는 행 컨텍스트와 필터 컨텍스트라는 두 가지 유형의 컨텍스트가 있습니다.There are two types of context in DAX; row context and filter context. 먼저 행 컨텍스트를 살펴보겠습니다.We’ll first look at row context.

행 컨텍스트Row context

행 컨텍스트는 가장 쉽게 현재 행이라고 생각하면 됩니다.Row context is most easily thought of as the current row. 이 컨텍스트는 테이블에서 단일 행을 식별하는 필터를 적용하는 함수가 수식에 있을 때마다 적용됩니다.It applies whenever a formula has a function that applies filters to identify a single row in a table. 함수는 필터링하는 테이블의 각 행에 대해 기본적으로 행 컨텍스트를 적용합니다.The function will inherently apply a row context for each row of the table over which it is filtering. 이 유형의 행 컨텍스트는 가장 자주 측정값에 적용됩니다.This type of row context most often applies to measures.

필터 컨텍스트Filter context

필터 컨텍스트는 행 컨텍스트보다 이해하기가 약간 더 어렵습니다.Filter context is a little more difficult to understand than row context. 가장 쉽게 이해하려면 필터 컨텍스트는 결과 또는 값을 결정하는 계산에 적용된 하나 이상의 필터라고 생각하면 됩니다.You can most easily think of filter context as: One or more filters applied in a calculation that determines a result or value.

필터 컨텍스트는 행 컨텍스트 대신 존재하는 것이 아니라 행 컨텍스트와 더불어 적용됩니다.Filter context doesn’t exist in-place of row context; rather, it applies in addition to row context. 예를 들어 계산에 포함할 값의 범위를 좁히려면 행 컨텍스트를 지정할 뿐만 아니라 해당 행 컨텍스트에서 특정 값(필터)만 지정하는 필터 컨텍스트를 적용할 수 있습니다.For example, to further narrow down the values to include in a calculation, you can apply a filter context which not only specifies the row context, but also specifies only a particular value (filter) in that row context.

필터 컨텍스트는 보고서에서 쉽게 볼 수 있습니다.Filter context is easily seen in your reports. 예를 들어 TotalCost를 시각화에 추가한 다음 Year 및 Region을 추가하면 지정된 연도 및 지역을 기반으로 하는 데이터의 하위 집합을 선택하는 필터 컨텍스트가 정의됩니다.For example, when you add TotalCost to a visualization, and then add Year and Region, you are defining a filter context that selects a subset of data based on a given year and region.

필터 컨텍스트가 DAX에서 매우 중요한 이유는 무엇인가요?Why is filter context so important to DAX? 필터 컨텍스트는 시각화에 필드를 추가하여 가장 쉽게 적용할 수 있지만 DAX 수식에서 모든, 관련, 필터, 계산과 같은 함수를 사용하는 필터를 기타 측정값 및 열별로 정의하여 적용할 수도 있기 때문입니다.Because while filter context can most easily be applied by adding fields to a visualization, filter context can also be applied in a DAX formula by defining a filter using functions such as ALL, RELATED, FILTER, CALCULATE, by relationships, and by other measures and columns. 예를 들어 Store Sales라는 측정값에서 다음 수식을 살펴보겠습니다.For example, let’s look at the following formula in a measure named Store Sales:

이 수식을 더 잘 이해하기 위해 다른 수식과 마찬가지로 자세히 분석할 수 있습니다.To better understand this formula, we can break it down, much like with other formulas.

이 수식에는 다음과 같은 구문 요소가 있습니다.This formula includes the following syntax elements:

A.A. 측정값 이름 매장 판매액.The measure name Store Sales.

B.B. 등호 연산자(=)는 수식의 시작을 나타냅니다.The equals sign operator (=) indicates the beginning of the formula.

C.C. 계산 함수는 지정된 필터로 수정된 컨텍스트에서 식을 인수로 평가합니다.The CALCULATE function evaluates an expression, as an argument, in a context that is modified by the specified filters.

D.D. 괄호 ()는 하나 이상의 인수를 포함하는 식을 둘러쌉니다.Parenthesis () surround an expression containing one or more arguments.

E.E. 식과 동일한 테이블에 있는 측정값 [Total Sales].A measure [Total Sales] in the same table as an expression. Total Sales 측정값에는 =SUM(Sales[SalesAmount]) 수식이 있습니다.The Total Sales measure has the formula: =SUM(Sales[SalesAmount]).

F.F. 쉼표(,)는 첫 번째 식 인수를 필터 인수와 구분합니다.A comma (,) separates the first expression argument from the filter argument.

G.G. 정규화된 참조되는 열 채널[ChannelName].The fully qualified referenced column, Channel[ChannelName]. 바로 행 컨텍스트입니다.This is our row context. 이 열의 각 행은 Store, Online 등의 채널을 지정합니다.Each row in this column specifies a channel: Store, Online, etc.

H.H. 필터로 사용되는 특정 값 매장.The particular value, Store as a filter. 바로 필터 컨텍스트입니다.This is our filter context.

이 수식은 Total Sales 측정값으로 정의된 판매액 값만 Channel[ChannelName] 열에서 “Store” 값을 필터로 사용하는 행에 대해서만 계산되도록 합니다.This formula ensures only sales values defined by the Total Sales measure are calculated only for rows in the Channel[ChannelName] column with the value “Store”, as a filter.

상상할 수 있듯이 수식 내에서 필터 컨텍스트를 정의할 수 있는 기능은 엄청나고 강력한 기능입니다.As you can imagine, being able to define filter context within a formula has immense and powerful capabilities. 관련 테이블에서 특정 값만 참조할 수 있는 기능도 이러한 예 중 하나일 뿐입니다.Being able to reference only a particular value in a related table is just one such example. 컨텍스트에 대해 완벽하게 이해하지 못해도 됩니다.Don’t worry if you do not completely understand context right away. 수식을 직접 만들어 보면 컨텍스트와 DAX에서 컨텍스트가 매우 중요한 이유를 더 잘 이해할 수 있습니다.As you create your own formulas, you will better understand context and why it’s so important in DAX.

컨텍스트 QuickQuizContext QuickQuiz

  1. 컨텍스트의 두 가지 유형은 무엇인가요?What are the two types of context?
  2. 필터 컨텍스트란 무엇인가요?What is filter context?
  3. 행 컨텍스트란 무엇인가요?What is row context?

답변은 이 문서의 끝에서 제공됩니다.Answers are provided at the end of this article.

요약Summary

DAX에서 가장 중요한 개념에 대한 기본적인 내용을 이해했으므로 이제 측정값에 대한 DAX 수식을 직접 만들 수 있습니다.Now that you have a basic understanding of the most important concepts in DAX, you can begin creating DAX formulas for measures on your own. 실제로 DAX는 배우기가 약간 까다로울 수 있지만 사용 가능한 많은 리소스를 제공합니다.DAX can indeed be a little tricky to learn, but there are many resources available to you. 이 문서 전체를 읽고 몇 가지 수식을 직접 시험해 보면 고유한 비즈니스 문제를 해결하는 데 도움이 되는 기타 DAX 개념 및 수식에 대해 더 자세히 이해할 수 있습니다.After reading through this article and experimenting with a few of your own formulas, you can learn more about other DAX concepts and formulas that can help you solve your own business problems. 많은 DAX 리소스를 사용할 수 있지만 DAX(Data Analysis Expressions) 참조가 가장 중요합니다.There are many DAX resources available to you; most important is the Data Analysis Expressions (DAX) Reference.

DAX는 파워 피벗 및 Analysis Services 테이블 형식 모델과 같은 다른 Microsoft BI 도구에서 여러 해 동안 사용되었으므로 유용한 정보도 많이 제공합니다.DAX has been around for several years in other Microsoft BI tools such as Power Pivot and Analysis Services Tabular models, so there’s a lot of great information out there. 자세한 내용은 Microsoft 및 업계 최고 BI 전문가들이 제공하는 설명서, 백서 및 블로그에서 확인할 수 있습니다.You can find more information in books, whitepapers, and blogs from both Microsoft and leading BI professionals. TechNet의 DAX 리소스 센터 Wiki도 시작하는 데 많은 도움이 될 수 있습니다.The DAX Resource Center Wiki on TechNet is also a great place to start.

빠른 퀴즈 답변QuickQuiz answers

구문:Syntax:

  1. 유효성을 검사하고 모델에 측정값을 입력합니다.Validates and enters the measure into the model.
  2. 대괄호([])Brackets [].

함수:Functions:

  1. 테이블 및 열A table and a column.
  2. 예.Yes. 수식에는 중첩된 함수가 최대 64개까지 포함될 수 있습니다.A formula can contain up to 64 nested functions.
  3. 텍스트 함수.Text functions.

컨텍스트:Context:

  1. 행 컨텍스트 및 필터 컨텍스트Row context and filter context.
  2. 단일 값을 결정하는 계산에서 사용되는 하나 이상의 필터One or more filters in a calculation that determines a single value.
  3. 현재 행The current row.