2017-09-06 7 views
0

좋아, 매우 단순화 된 테이블 ...DAX 평균 세 개의 열, 주문 번호, 제품 번호, 수량의

Order | Product | Qty 
1  | A  | 10 
1  | B  | 20 
2  | C  | 30 

I 수량의 평균을 계산하려면, 그래서 ..이에있다 "기본 입자"

AvgQty = 3분의 60 = 20

쉬운, 그러나 나는 또한 다음 제거 할

제품 :

Order | Qty 
1  | 30 
2  | 30 

지금은 수량이 다시 집계해야하고, 지금은 AvgQty이 새로운 라인의 평균을 반환 할 것입니다 [가 합()와 마찬가지로] ...

AvgQty = 2분의 60 = 30 명시 적으로 같은 주문에 의해 그룹화하여이 작업을 수행하려고하면

는 :

measure := 
IF (
    ISFILTERED ('Table'[Product]), 
    AVERAGEX (
     SUMMARIZE (
      'Table', 
      'Table'[Order], 
      'Table'[Product], 
      "SumQty", SUM ('Table'[Qty]) 
     ), 
     [SumQty] 
    ), 
    AVERAGEX (
     SUMMARIZE (
      'Table', 
      'Table'[Order], 
      "SumQty", SUM ('Table'[Qty])), 
     [SumQty] 
    ) 
) 

그것은 여전히 ​​계속 표시 때문에 기술적으로 제품에 의해 필터링되지 않은 컬럼의 총 꽤 작업을 않도록 잘못된 총계 ...

나는 이것을 무시하는 방법이 확실하지 않다. ..?

내 실제 계산은 단순한 평균이 아니지만 내가 직면 한 주된 문제는 새 곡물에서 수량을 '다시 계산'할 수 있음을 보장하는 것입니다. 이걸 못질 할 수만 있다면 직접 수정할 수 있습니다. 문제가 .. 솔루션은 또한 주문 곡식에서도 모델에 테이블을로드 할 수 있습니다! ;)

+0

질문을 이해하지 못합니다. 무엇입니까? 원하는 결과? 주문 + 제품, 주문 만, 제품 만 및 총 –

+0

예 ... 다시 읽었으며 약간 불분명합니다. 다시 말씀 드리도록하겠습니다! 짧은 대답은 지금 나는 두 줄이있을 때, Qty의 '새로운'집합체의 평균을 얻고 싶습니다. 제품 필터가 제거되었습니다 ... – m1nkeh

+0

Ok, edited .. thanks! – m1nkeh

답변

0

나는 또한 마지막 날 그것에 대해 생각 나는 다음과 같은 이유로이 문제를 해결하는 방법은 없습니다 두려워 :

  • 계산 된 전체 테이블을 반환하는 DAX에는 기능이없는이 당신의 행으로
  • 는 복잡한 계단식 ISFILTERED 기능을 사용하여 여과 무엇을 찾을 수있는 하나의 행에 대해이
  • 집계 있었는지를 알 수있는 기능이 없다하지만이
  • 가장 큰 문제 정말 가능하거나 신뢰할 수 없습니다 : 당신이에있을 때 전체 또는 하위 총 수준은이 해결할 수없는 DAX 위해 이렇게

를 작동합니다 등 ISFILTERED, HASONEVALUE 같은 기존 기능 없음으로 세부 행에 사용 된 것을 알 수있는 방법은 없습니다 내 관점에서 순간에

MDX를 사용하여 모델을 쿼리하는 경우 (예 : 피벗 테이블)를 사용하면 AXIS() 함수를 사용하여 행/열에서 사용 된 집합을 반환하고 COUNT() 함수에있는 MDX 계수를 만들 수 있습니다.

+0

Gerhard, 매우 명확한 답변입니다. 나는 내 자신의 발견을 검증 할 때이 사실을 알게되어 기쁘게 생각합니다. 감사합니다. 필자는 (잠시 동안) PivotTable을 사용하여 작동을 확인했지만 실제로 PowerBI 매트릭스 컨트롤을 사용하여 "커버 아래에서"수행 중이었고보고 계층은 PowerBI입니다. – m1nkeh