Страницы: 1
RSS
Семантическая ошибка с функцией "Calculate"
 
Добрый день!

Чувствую себя не умным)
При расчете меры получил такую ошибку:
Цитата
Семантическая ошибка: Функция "Calculate" использовалась в логическом выражении (True/False), которое используется как выражение фильтра таблицы. Такое использование недопустимо.
Вот формула этой меры:
Код
База на конец периода:=CALCULATE(DISTINCTCOUNT([Услуга]);'Показатели'[Период]='Показатели'[Дата конца периода])
При этом 'Показатели'[Дата конца периода] - это мера, рассчитанная по формуле:
Код
Дата конца периода:=MAX([Период])
Цель формулы - посчитать количество уникальных записей в выборке, для которых Период равен максимальному значению Периода в этой выборке.

Помогите, пожалуйста.
 
Поиск FOREVER!
Согласие есть продукт при полном непротивлении сторон
 
Не зря я себя так чувствовал)))
Разобрался, спасибо! Я 2 часа рыл интернет по Calculate, Filter, Related и т.д. но чтобы вбить текст ошибки - в этот раз у меня не вышло.
Вот рабочая формула:
Код
=CALCULATE(DISTINCTCOUNT([Услуга]);FILTER(ALL('Показатели'[Период];'Показатели'[На конец]);[На конец]=1 && [Период]=Max('Показатели'[Период])))
Еще раз спасибо!
 
Всем привет, прочитав всё что написано выше думал решу свою проблему, но не получается. Подскажите где ошибка пожалуйста так как всё равно ругается. Формула моя ниже:
AVE IO 2M wd = AVERAGEX(SUMMARIZE(REPORT_IMS,REPORT_IMS[VISIT MONTH]),CALCULATE(DISTINCTCOUNT(REPORT_IMS[SALEPOINT CODE]),REPORT_IMS[WORKING DAY]<=CALCULATE(MAX(REPORT_IMS[WORKING DAY]),FILTER(ALL(REPORT_IMS[VISIT DATE]),REPORT_IMS[VISIT DATE]=MAX(REPORT_IMS[VISIT DATE]))),REPORT_IMS[VISIT DATE]<DATE(YEAR(TODAY()),MONTH(TODAY()),01),REPORT_IMS[VISIT DATE]>=DATE(YEAR(TODAY()),MONTH(TODAY())-2,01)))

Проблема всплывает когда использую красный текст, если ставлю просто цифру например 16 рабочих дней (REPORT_IMS[WORKING DAY]<=16) проблемы нет.

В целом формула считает среднее количество salepoint по двум прошедшим месяцам но с определённым количеством рабочих дней в месяце.
 
Без примера данных такие вещи сложно определять. Да еще и на что ругается Вы не указали(что за ошибка появляется). Попробуйте вынести в переменную свое расчетное значение:
Код
AVE IO 2M wd = 
var visit_dt = CALCULATE(MAX(REPORT_IMS[WORKING DAY]),FILTER(ALL(REPORT_IMS[VISIT DATE]),REPORT_IMS[VISIT DATE]=MAX(REPORT_IMS[VISIT DATE])))
RETURN AVERAGEX(SUMMARIZE(REPORT_IMS,REPORT_IMS[VISIT MONTH]),CALCULATE(DISTINCTCOUNT(REPORT_IMS[SALEPOINT CODE]),REPORT_IMS[WORKING DAY]<=visit_dt,REPORT_IMS[VISIT DATE]<DATE(YEAR(TODAY()),MONTH(TODAY()),01),REPORT_IMS[VISIT DATE]>=DATE(YEAR(TODAY()),MONTH(TODAY())-2,01)))
Изменено: Дмитрий(The_Prist) Щербаков - 27.08.2021 09:51:52
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Я думал по названию темы будет понятно что за ошибку показывает. Пробовал сделать проблемную часть всей формулы отдельной меры и подставить её. Отдельная мера показывает нужный результат но при добавление в изначальную формулу также ошибка
 
Цитата
ANSWERIVER написал:
Нужна помощь
Цитата
Дмитрий(The_Prist) Щербаков написал:
Без примера данных такие вещи сложно определять.
файл эксель сверстайте, в котором будет Ваша проблема
 
Vladimir Chebykin,
вот файл на оснований которого делаю расчёты
 
Всем привет. Есть идеи?
 
ANSWERIVER, в вашем файле-примере данные не соответствуют коду меры - нет поля VISIT DATE. Изобретать за вас?
Чем не устраивает вариант из #5?
F1 творит чудеса
 
Дмитрий(The_Prist) Щербаков,

Спасибо работает ваш вариант
Страницы: 1
Наверх