• 카테고리

    질문 & 답변
  • 세부 분야

    오피스

  • 해결 여부

    미해결

반복함수 질문

22.06.09 15:00 작성 조회수 169

0

안녕하세요. 

DAX 함수에 "X"가 붙는 경우 행별로 반복계산되는 부분이 있다고 설명해 주셨습니다. 그런예로 SUM()과 SUMX()는 차이가 분명해 보입니다.

다만, RANKX()의 경우 X가 붙어서 행별로 순위를 정하다 보니, All()함수를 이용하여 필터를 제거하는 것 같습니다. 

제가 궁금한것은 굳이 RANKX()함수를 사용하면서 번잡한 과정을 거치는 것 보다는, 이런 필터가 애초에 적용되지 않는 RANK()함수 같은것이 있다면 더 편할 것 같습니다. 

그런데 Microsoft Docs에서 찾아보니 RANK()함수는 없고, 뭔지 잘 모르는 RANK.EQ()만 있더군요. 혹시 RANK.EQ()가 필터 없이 어떤 필드의 값에 따라 순위를 구하는 함수인가요?

즐거운 하루 보내시기 바랍니다.^^

답변 1

답변을 작성해보세요.

1

RANK 함수와 RANK.EQ 함수가 같고 생각하시면 됩니다.

이해를 돕기 위해 Excel에는 RANK, RANK.EQ, RANK.AVG 등의 함수가 제공되는데
RANK 함수와 RANK.EQ 함수는 동점자를 처리하는 방식이 같아 동일한 결과가 반환됩니다.

테이블에서 계산 열로 순위를 계산할 수 있는 간단한 경우에는
RANK.EQ과 RANKX 함수의 결과가 동일하고
반복함수를 쓰는 것보다 RANK.EQ 함수를 사용하는 것이 성능이 더 나을 수도 있습니다.

그러나 일반적으로 저희가 작성하는 보고서는
다양한 필터 컨텍스트가 반영된 상황에서 값이 계산되어야 하는 상황이 대부분이므로
이런 복잡한 상황을 반영할 수 있는 RANKX의 사용 빈도가 훨씬 더 높습니다. 

홍길동(?) 님도 즐거운 하루 보내세요~ ^^