Идея в том, чтобы сделать это, вам нужна еще одна таблица, полученная из существующей таблицы, в которой хранятся значения оси x, которые будут на графике.
Я начал стакие данные: -
Таблица 1
![Given Data](https://i.stack.imgur.com/zd48L.png)
Итак, давайте сгенерируем столбец оси (Вычисляемый столбец) в этой Таблице1: -
AxisCol =
Var MaxYear = MAX((Table1[Date].[Year]))
Var Required_Year = YEAR(Table1[Date])
Var YearDiff = MaxYear - Required_Year
Var output = IF(YearDiff = 0, FORMAT(FORMAT(Table1[Date], "MMM YY"),"string"), FORMAT(Required_Year, "@"))
Return (output)
Тип данных этого AxisCol - «Текст».
Создание столбца «Год» и «Год» (вычисляемый столбец) в таблице 1
Month Year = FORMAT(Table1[Date], "MMM YY")
Year = YEAR(Table1[Date])
Задайте также тип данных этих двух столбцов как «Текст».
Создайте новую таблицу: -
Axis_Table = DISTINCT(Table1[AxisCol])
Это теперь создало отключенную таблицу,
Теперь создайте Date_Col (вычисляемый столбец), чтобы найти порядок сортировки внутри Axis_Table.
Date_col =
Var RequiredVal = VALUE(Axis_Table[AxisCol])
Var Year_or_Month_year = IF(LEN(RequiredVal) = 4, "Year", "Month Year")
Var year_split = VALUE("20" & RIGHT(Axis_Table[AxisCol],2))
Var Month_split = (LEFT(Axis_Table[AxisCol],3))
Var month_num = SWITCH(Month_split, "Jan", 1, "Feb", 2, "Mar", 3, "Apr"
, 4, "May", 5, "Jun", 6, "Jul", 7, "Aug"
, 8, "Sep", 9, "Oct", 10, "Nov", 11, "Dec"
, 12)
Var myDate = if(Year_or_Month_year = "Year",DATE(RequiredVal,1,1),DATE(year_split, month_num,1))
Return myDate
Теперь вы можете создать порядок сортировки (вычисляемый столбец) в Axis_Table
Sort Order = DATEDIFF((Axis_Table[Date_col]),MAX(Axis_Table[Date_col]),MONTH)
Теперь конечный результат в виде Мера ,
ValueReq =
var required_axis_val = SELECTEDVALUE(Axis_Table[AxisCol])
Var requiredaxis = LEN(required_axis_val)
Var output1 = CALCULATE(AVERAGE(Table1[Value]), FILTER(Table1,Table1[Month Year] = required_axis_val))
Var output2 = CALCULATE(AVERAGE(Table1[Value]),FILTER(Table1, Table1[Year] = required_axis_val))
var out_req = IF(requiredaxis = 4, output2, output1)
return out_req
Эта мера может быть изменена в соответствии с выбранными вами фильтрами и другими условиями, которые могут у вас возникнуть.
Окончательный визуальный вид выглядит следующим образом:
![enter image description here](https://i.stack.imgur.com/00GaF.png)
Используйте порядок сортировки в подсказках, а затем сортируйте ось внутри визуального элемента по сортировкеЗаказ.
Затем вы можете создать связь между таблицами на axis_col для работы слайсеров.
![enter image description here](https://i.stack.imgur.com/ierU3.png)
![enter image description here](https://i.stack.imgur.com/StEDj.png)
Вы можете затем дифференцировать ось с условным форматированием, используя это -
conditional formatting = IF(LEN(SELECTEDVALUE(Axis_Table[AxisCol])) = 4,1,0)
![enter image description here](https://i.stack.imgur.com/9s1TL.png)
Позвольте мнезнать, если вы изо всех сил пытаетесь понять решение.
Примите ответ, если сможете заставить его работать на вас.