При написании кода (код взяла из интернета) в целях создания таблицы Календарь в Power BI Desktop выскочила ошибка:
текст ошибки: операции сравнения DAX не поддерживают сравнение значений типа integer со значениями типа True/False. Рассмотрите возможность использования функции VALUE или FORMAT для преобразования одного из значений
Скрин кода во вложении.
Что делаю не так?
Calendar = VAR _endYear=2026//YEAR(TODAY()) VAR _startYear=_endYear-4 VAR _start=DATE(_startYear,1,1) VAR _end = DATE(_endYear,12,31) VAR _cal = CALENDAR(_start,_end) VAR result = ADDCOLUMNS(_cal, "YearNumber",YEAR([Date]), "HalfYear", (MONTH([Date])>6)+1, "Year-HY",YEAR([Date])&"-"&(MONTH([Date])>6)+1, "Quarter","Q"&QUARTER([Date]), "MonthNumber",MONTH([Date]), "MonthName",FORMAT([Date],"MMMM"), "Year-Month",FORMAT([Date],"YYYY-MM"), "WeekNumber",WEEKNUM([Date],2), "Year-Week",YEAR([Date])&"-"&FORMAT(WEEKNUM([Date],2),"00"), "Day",DAY([Date]), "WeekDayNumber",WEEKDAY([Date],2), "WeekDateName",FORMAT([Date],"DDDD","RU-RU"), "CurrentYear",INT(YEAR([Date])=YEAR(TODAY())), "CurrentHalfYear",INT(AND(YEAR([Date])=YEAR(TODAY()),(MONTH([Date])>6)+1=(MONTH(TODAY())>6+1))), "CurrentMonth",INT(EOMONTH([Date],0)=EOMONTH(TODAY(),0)), "CurrentDay",IF([Date]=TODAY(),0,IF([Date]<TODAY(),-1,1)), "ClosePeriod",INT([Date]<=TODAY()), "DoubleDate",[Date], "DoubleDateSort",IF([Date]<TODAY(),-INT(FORMAT([Date],"YYYYMMDD")),INT(FORMAT([Date],"YYYYMMDD"))), "EndDayMonth",EOMONTH([Date],0) ) RETURN result
Дмитрий Никитин написал: А есть же простая функция CALENDARAUTO. Почему не использовать её?
в приведенном коде DAX используется его аналог CALENDAR() с заданным диапазоном пользователя. Разницы нет, просто в данном примере все дополнительные столбцы создаются в одной мере и нужно уметь проверять, если что-то идет не так. Конечно начинающему пользователю лучше каждый вычисляемый столбец создавать по отдельности - так проще будет ошибки исправлять.
Vladimir Ch написал: приложите файл с кодом календаря, ну или самостоятельно оттестируйте созданные вычисляемые столбцы по отдельности, где ошибка.
ошибка
"операции сравнения DAX не поддерживают сравнение значений типа integer со значениями типа True/False. Рассмотрите возможность использования функции VALUE или FORMAT для преобразования одного из значений"
ошибка в этом участке формулы. Из этой части формулы я не понимаю, что хотел автор получить в итоге. Если нужно видеть последние полгода от текущего месяца в текущем году, то можно так попробовать:
Vladimir Ch написал: ошибка в этом участке формулы. Из этой части формулы я не понимаю, что хотел автор получить в итоге. Если нужно видеть последние полгода от текущего месяца в текущем году, то можно так попробовать:Код