Рассчитайте разницу между 2 мерами из разных строк - PullRequest
0 голосов
/ 08 июля 2019

Я новичок в DAX и Power Pivot, и у меня есть небольшая проблема, которую я не могу решить. Я надеюсь, что вы можете мне помочь.

Я веду учет своих данных в неделю, поэтому каждую пятницу вечером я генерирую отчет о продажах системы. Каждый месяц я записываю в другую таблицу свои месячные цели, разделенные на неделю, чтобы я мог сравнивать достижения с моей целью каждую неделю.

Проблема заключается в том, что я хочу создать мизер в моей сводной таблице клиента, который измеряет разницу между целью клиента на текущую неделю минус фактические клиенты, о которых сообщалось в отчете за последнюю пятницу (последняя неделя).

Вот пример моей сводной таблицы. введите описание изображения здесь

Вот пример моего измерения Дакса:

=CALCULATE(sum(MetaTotalMes[#Clientes]),
FILTER(MetaTotalMes,MetaTotalMes[#Sem])) - CALCULATE(sum(Cartera[Clientes]),
FILTER(Cartera,[# Sem.]-1))

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

Вот пример использования Excel, чтобы показать, что мне нужно делать с Dax Mesure.

UDATE

Я внес некоторые коррективы в функцию, которую дал мне @AlexisOlson, и работает так, как мне нужно, с небольшой проблемой. Мера перестает возвращать значения, когда значения в столбце Actual client имеют значение BLANK, поэтому для устранения проблемы, которую я хочу использовать Функция LASTNONBLANK, чтобы скопировать последнее зарегистрированное значение во все поля BLANK; Не могли бы вы мне помочь? Вот изменения, которые я внес в оригинальную функцию, которую вы мне дали.

=VAR CurrentWeek = MAX ( Cartera[# Sem.] ) 
RETURN 
SUM(MetaTotalMes[#Clientes]) - CALCULATE(SUM(Cartera[Clientes]),
FILTER(ALL(Cartera),Cartera[#Sem.]=CurrentWeek-1))

Вот функция, которую я использую для вычисления столбца de ACTUAL CLIENTS (здесь я пытаюсь включить функцию LASTNONBLANK).

=CALCULATE(SUM([Clientes]),FILTER(ALL(Cartera[# Sem.]),
Cartera[#Sem.]=MAX(Cartera[# Sem.])))

Вот пример ожидаемого исчисления, я использую цвета, чтобы быть более точным в нужном исчислении. Желтые поля - это пустые поля, которые я пытаюсь заполнить, с последним зарегистрированным значением столбца.

https://i.stack.imgur.com/Mnfgr.png

1 Ответ

0 голосов
/ 08 июля 2019

Я думаю, вы хотите что-то вроде этого

Difference =
VAR CurrentWeek = MAX ( Cartera[# Sem.] )
RETURN
    CALCULATE ( SUM ( Cartera[Clientes] ), Cartera[# Sem.] = CurrentWeek + 1 )
        - SUM ( MetaTotalMes[#Clientes] )

CALCULATE позволяет вам заменить контекст фильтра текущей недели следующей неделей.

Не думаю, что вам нужноCALCULATE для 2-й части, так как она рассчитывается в контексте текущей недели, если ваши отношения таблицы установлены правильно.

...