Я провожу годовое сравнение показателей продаж двух разных продуктов. Данные извлекаются из одной таблицы SQL-сервера и разбиваются на текущий и предыдущий год путем фильтрации по следующему вычисляемому полю:
IF year([Friday of Week Sold]) = YEAR(TODAY())-1 THEN
IF [Product Type] = "A" THEN "PY Product A"
ELSEIF [Product Type] = "B" THEN "PY Product B"
END
ELSEIF year([Friday of Week Sold]) = YEAR(TODAY()) THEN
IF [Product Type] = "A" THEN "CY Product A"
ELSEIF [Product Type] = "B" THEN "CY Product B"
END
END
(вычисляемое поле, вдохновленное постом в блоге здесь)
Конечным результатом является диаграмма ниже:
я пытаюсь выяснить, есть ли способ изменить отображение оси x, чтобы в ней отображались даты окончания выходных текущего года, а не номер недели; например отображать «Неделя 1» как «1/4/19», «Неделя 2» как «11/19/19» и т. д. Изменение типа данных на неделю не работает, поскольку затем данные разбиваются на две части следующим образом:
и я стараюсь, чтобы строки накладывались друг на друга, чтобы пользователям было легко сравнивать.
Я согласен с незначительным отклонением дат от этого (неделя 1 в 2019 году заканчивается 04.01.19 по сравнению с неделей 1 2018 года, заканчивающейся 05.01.18). Цель состоит в том, чтобы дать конечным пользователям возможность быстро и приблизительно сравнить нашу производительность на этой неделе с прошлым годом.
Это не самое элегантное решение, но оно работает:
if DATEPART('week',[Order Date],'Friday') = 1 Then #1/4/2019#
ELSEIF DATEPART('week',[Order Date],'Friday') = 2 Then #1/11/2019#
ELSEIF DATEPART('week',[Order Date],'Friday') = 3 Then #1/18/2019#
ELSEIF DATEPART('week',[Order Date],'Friday') = 4 Then #1/25/2019#
ELSEIF DATEPART('week',[Order Date],'Friday') = 5 Then #2/1/2019#
ELSEIF DATEPART('week',[Order Date],'Friday') = 6 Then #2/8/2019#
ELSEIF DATEPART('week',[Order Date],'Friday') = 7 Then #2/15/2019#
ELSEIF DATEPART('week',[Order Date],'Friday') = 8 Then #2/22/2019#
[...52...]
END
Недостатком здесь является то, что для приведения дат к текущему году потребуется корректировка каждый календарный год.
Конечный продукт потребует, чтобы вы поместили YEAR() меры, которую вы хотели бы иметь, в качестве ваших линий на цвет (в вашем случае, вероятно, вложенный ЕСЛИ будет отдельным расчетом) (в приведенном ниже примере [Прибыль].) В результате номер каждой недели включается в приведенный выше расчет, который используется в качестве измерения. Вам нужно будет изменить тип диаграммы на «Линия», и вы, вероятно, также захотите right click the axis > rotate label
.