2015-10-16 2 views
0

У меня возникла проблема с функцией Calculate через PowerPivot, которая дает мне правильные цифры. Предположим следующую информацию.DAX Рассчитайте несколько проблем с критериями

RepairsTable 

Repair ID Location Amount Date 
1 West 50 Aug 
2 East 60 Aug 
3 West 40 Sep 
4 East 30 Sep 
5 West 1000 Sep 

MilesTable 

Location Miles Date Total Amt Repairs 
West 100 Sep 
East 100 Aug 

В Всего Amt Ремонт в Майлса таблице является вычисляемым столбцом в PowerPivot, которую я хочу, чтобы показать общую сумму $ ремонта на основе Местоположение & Дата от Ремонта таблицы.

Я использовал следующие формулы:

=CALCULATE(SUM(RepairsTable[Amount]),FILTER(RepairsTable,RepairsTable[Date]=MilesTable[Date])) 

и

=CALCULATE(SUM(RepairsTable[Amount]),FILTER(RepairsTable,RepairsTable[Location]=MilesTable[Location])) 

А также:

=CALCULATE(SUM(RepairsTable[Amount]),FILTER(RepairsTable,RepairsTable[Date]=MilesTable[Date]&&RepairsTable[Location]=MilesTable[Location])) 

и

=CALCULATE(SUM(RepairsTable[Amount]),FILTER(RepairsTable,RepairsTable[Date]=MilesTable[Date]),FILTER(RepairsTable,RepairsTable[Location]=MilesTable[Location])) 

Я не могу для жизни меня, кажется, придумать правильные значения в расчетной колонке Total Amt Repairs. Значения Ищу являются:

1040 for West/Sep 
60 for East/Aug 

Я могу сделать это просто отлично с SUMIFS функции в таблице, но я не могу заставить его работать в PowerPivot.

ответ

0

Итак, несколько вещей для покрытия здесь.

  1. Почему вы меняете инструменты, если проблема решена в другом месте?
  2. Почему эта агрегация должна быть в вычисленном столбце? Тип агрегации, которую вы смотрите здесь, обычно выполняется в сводной таблице с помощью мер, а не в вычисленных столбцах.
  3. Если вы понимаете вышеизложенное, вы по-прежнему уверены, что выполнение этого в вычисленном столбце модели является правильным решением, ваши 3-я и 4-я меры работают для меня с вашими данными образца без какой-либо связи между таблицами, с отношением между [Таблица] для каждой таблицы или с отношением между [Таблица] каждой таблицы.

Кроме того, лучшая формулировка того, что вы хотите, состоит в следующем:

=CALCULATE(
    SUM(RepairsTable[Amount]) 
    ,RepairsTable[Date] = EARLIER(MilesTable[Date]) 
    ,RepairsTable[Location] = EARLIER(MilesTable[Location]) 
) 

Я не решаюсь предложить это, хотя, потому что он идентичен вашему 4 определения с двумя фильтрами, только более аккуратно выражены.

Что происходит в ваших реальных данных, которые отличаются от этого образца?

Смежные вопросы