DAX함수 7

DAX에서 VLOOKUP 함수 만들기 (2) - LOOKUPVALUE보다 편한 RELATED

전 글에서 VLOOKUP 함수를 대신해 DAX에서 사용할 수 있는 함수 LOOKUPVALUE에 관해 설명드렸습니다. ​ 만일 모델 페이지에서 관계 설정이 가능하다면 LOOKUPVALUE라는 함수 대신 VLOOKUP 함수를 대신 할 수 있는 방법이 있습니다. ​ 두 쿼리 (Quantity, Type)을 입력한 뒤 모델 페이지로 이동을 하면 Type끼리 자동으로 관계설정이 된 것을 확인할 수 있습니다. 두 쿼리 내에서 같은 같은 데이터를 담고 있는 열은 파워비아이에서 자동으로 인식해서 연결을 시킵니다. ​ 이렇게 된다면, 위의 그림과 같이 Quantity라는 쿼리 내의 열 [Type] 과 Type라는 쿼리 내의 열 [Type] 이 서로 상호작용을 하게 되어 각 행에 해당되는 다른 열의 데이터를 가지고 올 수..

DAX/DAX 2021.03.27

DAX에서 VLOOKUP 함수의 사용

VLOOKUP 함수도 엑셀에서 많이 사용되는 함수중 하나라 생각됩니다. 다른 시트에 있는 여러 데이터를 쉽게 가지고 올 수 있는 함수입니다. 엑셀에 관한 설명은 넘어가기로 하고, 아래를 먼저 보겠습니다. 먼저 2개의 테이블이 있다고 가정하겠습니다. 하나는 모든 벽의 종류와 각 벽마다 몇 겹의 드라이월 보드가 들어가는지를 보여주는 테이블입니다. 다른 하나는 각 층별 벽의 종류와 각 벽의 수량으로 이루어진 테이블입니다. 여기서 드라이월 보드의 총면적을 구하려면 Quantity * Drywall이라는 수식이 필요하겠죠 ​ 엑셀이라면 VLOOKUP 함수를 사용해서 가져오면 되겠지만, Power BI에서는 VLOOKUP 함수가 존재하지 않습니다. 역시 비슷한 개념을 가진 LOOKUPVALUE라는 함수를 하용해야 ..

DAX/DAX 2021.03.27

DAX에서 COUNTIF 함수 만들어 사용하기

저번 글에서 DAX에는 SUMIF함수가 없다고 말씀을 드렸습니다. 마찬가지로 COUNTIF함수도 존재를 하지 않습니다. 하지만 다른 함수들을 이용해 COUNTIF함수와 똑같은 기능을 가지도록 만들 수 있습니다. ​ 아래는 Material이라는 이름을 가진 쿼리이며 각 층별, 타일의 형태별 개수를 보여줍니다. 먼저 COUNT 함수를 사용한다면 행의 개수를 반환하므로 15가 나와야겠죠? FLOOR열을 기준으로 COUNT함수를 이용해 행의 개수를 구하겠습니다. Material 쿼리에 있는 [Floor]열의 개수를 반환하라는 함수입니다. ​ 그럼 이제 엑셀에서 자주 쓰는 COUNTIF와 똑같은 역할을 하는 함수를 이용할 건데요. 예전에는 CALCULATE 함수 안에 FILTER를 이용해 구했었는데, COUNTX..

DAX/DAX 2021.03.27

DAX에서 SUMIF 함수 만들어 사용하기

DAX에서 SUMIF함수는 존재하지 않습니다. 사실 보고서에서 슬라이서로 클릭만 하면 원하는 결과를 보여주기 때문에 딱히 필요가 없는 함수 일지 모릅니다. ​ 아래와 같은 쿼리가 있다고 가정을 하겠습니다. 여기서 Zone A만의 합계를 구한다고 생각을 하면 엑셀에서는 SUMIF를 사용해서 A의 합계만 계산할 수 있습니다. 하지만 아래와 같이 Power BI에서는 슬라이서를 이용하면 간단히 해결이 될 수 있기 때문에 크게 문제가 되지 않았던 함수였는것 같습니다. 위에 보여지는 슬라이서에서 A를 클릭하면 딱히 수식을 이용하지 않더라도 Zone A의 합계가 자동 계산이 되어 카드로 표시가 되고, 1F를 선택하게 되면 자동으로 1F의 합계를 보여주게 되죠. ​ 하지만 어떤 경우는 슬라이서를 사용하지 않고 계산을..

DAX/DAX 2021.03.27

DAX에서 IF 함수의 사용

엑셀 함수에서 가장 많이 사용되는 함수중 하나가 IF함수가 아닐까 합니다. DAX에서의 IF함수의 형태는 100% 동일합니다. 딱 하나 다른 점은 셀 대신 열의 이름을 입력해야 한다는 것입니다. ​ IF(조건, 참의 값, 거짓의 값)으로 똑같지만 이전 글에 설명을 드렸듯이 엑셀은 셀 단위로 구성이 되고 쿼리는 열 단위로 구성이 되기 때문에 이것만 다르고 다른 것은 100% 동일합니다. ​ 엑셀에서는 IF(C3>500,"높음","낮음")으로 구성이 된다면 DAX에서는 IF('TABLE'[SALES]>500,"높음","낮음")으로 구성이 됩니다. 쿼리의 이름은 ''으로 표시가 되면 열의 이름은 []으로 표시가 됩니다. 그래서 'TABLE'은 쿼리의 이름이며, [SALES]는 쿼리 내 열의 이름이 됩니다. 다..

DAX/DAX 2021.03.27

SUM과 SUMX의 차이점을 알아보자

아마 엑셀을 사용할 때 가장 많이 사용하는 함수중 하나가 SUM이라 생각합니다. DAX에서는 SUM외에 SUMX라는 함수를 가지고 있는데 간단히 알아보겠습니다. ​ A,B,C라는 Type의 개수와 단가를 보여주는 표입니다. 그리고 아래에서 Total이라고 보이는 것은 SUM을 이용한 결과치이고 Totalx라는 것은 SUMX의 결과치입니다. 도표상으로는 Total이 맞는 것 같지만 실제의 데이터를 보면 Total은 잘못된 결과입니다. ​ 두 함수의 다른 점은 SUM은 수직으로 계산을 하는 반면 SUMX는 수평적인 계산을 한다는 것입니다. 비슷한 엑셀의 함수는 SUMPRODUCT라고 생각을 하면 되겠습니다. Type A를 예를 들자면 데이터 내부에 있는 모든 A의 개수와 단가를 먼저 곱한 뒤 합계를 계산합니..

DAX/DAX 2021.03.27

DAX를 시작하기전 꼭 알아야 할 사항

DAX를 이용할 때 꼭 알아야 할 한 가지가 있어서 먼저 말씀드리겠습니다. DAX의 함수는 엑셀의 함수와 똑같은 것도 많고 다른 것도 많습니다. 처음 DAX의 함수를 접한 분들이 많이 혼돈스러워하는 부분은 엑셀과 약간 다른 명령체계입니다. 엑셀은 각각의 셀에서 아주 자유롭게 수식을 만들고 사용할 수 있습니다. 즉 같은 열에 있는 행이라도 얼마든지 자유롭게 다른 수식을 만들 수 있고, 다른 속성의 데이터 입력이 가능합니다. 하지만 DAX는 파워쿼리를 기반으로 명령문이 작성되기 때문에 반드시 열단위로 구성이 되어야 합니다. ​ 아래의 파워쿼리 데이터를 보겠습니다. (엑셀이 아닙니다) 필드의 이름이 도시, 지점, 날짜, 매출, 연도로 구성이 되어있고 각각의 속성은 문자, 문자, 날짜, 금액, 문자 이렇게 구성..

DAX/DAX 2021.03.27