Динамическая легенда Power BI
Я работаю с географической иерархии. Я хотел бы, чтобы Легенда на моей линейной или ленточной диаграмме показывала следующий самый низкий соответствующий уровень детализации на основе выбора среза.
цель: Выбор слайсера не дает региональной диаграммы (линии для Юго-Востока, северо-востока и т. д.). Выберите" северо-восточный " регион из слайсера дает диаграмму состояния (линии для Мэна, Нью-Гэмпшира и т. д.) Выберите "штат Мэн" из слайсера дает диаграмму округа и так далее.
I можно сделать это в карточке, используя комбинацию HASONEVALUE и значений для получения динамического значения. Однако поле условных обозначений ленточных или линейных диаграмм не будет принимать такую меру.
есть ли способ создать линейную или ленточную диаграмму Power BI с динамической легендой на основе выбора среза?
Я бы предпочел не создавать отдельный мера для всех узлов иерархии, поскольку есть тысячи возможных листьев.
1 ответов
предположим, у меня есть некоторые данные о численности населения по крупнейшим 20 округам США следующим образом:
Data = DATATABLE(
"Rank", INTEGER, "Region", STRING, "County", STRING, "State", STRING,
"2010", INTEGER, "2012", INTEGER, "2014", INTEGER,
{{1,"West","Los Angeles","California",9818605,9826773,9826773},
{2,"Midwest","Cook","Illinois",5194675,5199971,5199971},
{3,"South","Harris","Texas",4092459,4109362,4109362},
{4,"South","Maricopa","Arizona",3817117,3824834,3824834},
{5,"West","San Diego","California",3095313,3105115,3105115},
{6,"West","Orange","California",3010232,3017598,3017598},
{7,"South","Miami-Dade","Florida",2496435,2503034,2503034},
{8,"Northeast","Kings","New York",2504700,2508515,2508515},
{9,"South","Dallas","Texas",2368139,2375207,2375207},
{10,"Northeast","Queens","New York",2230722,2233895,2233895},
{11,"West","Riverside","California",2189641,2202978,2202978},
{12,"West","San Bernardino","California",2035210,2042027,2042027},
{13,"West","King","Washington",1931249,1937157,1937157},
{14,"West","Clark","Nevada",1951269,1953927,1953927},
{15,"South","Tarrant","Texas",1809034,1816850,1816850},
{16,"West","Santa Clara","California",1781642,1786267,1786267},
{17,"South","Broward","Florida",1748066,1752122,1752122},
{18,"South","Bexar","Texas",1714773,1723561,1723561},
{19,"Midwest","Wayne","Michigan",1820584,1815246,1815246},
{20,"Northeast","New York","New York",1585873,1587481,1587481}
})
используя эти данные в качестве источника в Редакторе запросов, мы создадим две таблицы. Первый будет Fact
таблица, которая unpivots лет и выглядит так для трех лучших округов:
второй будет Bridge
таблица это просто список уникальных Region
, State
, County
комбинации:
мы создадим последнюю таблицу с помощью DAX. Это будет наш Legend
таблица.
Legend = UNION(SUMMARIZECOLUMNS(Fact[Region], Fact[Rank], "Level", 1),
SUMMARIZECOLUMNS(Fact[State], Fact[Rank], "Level", 2),
SUMMARIZECOLUMNS(Fact[County], Fact[Rank], "Level", 3)
)
убедитесь, что отношения находятся на Rank
столбцы, чтобы ваша диаграмма отношений выглядела так:
теперь мы напишем меру, которая использует преимущества этих уровней, которые мы только что создали в Legend
таблица.
Measure =
VAR StateCount = CALCULATE(DISTINCTCOUNT(Bridge[State]),
ALLSELECTED(Bridge), ALLSELECTED(Legend))
VAR RegionCount = CALCULATE(DISTINCTCOUNT(Bridge[Region]),
ALLSELECTED(Bridge), ALLSELECTED(Legend))
VAR LevelNumber = SWITCH(TRUE(), StateCount = 1, 3, RegionCount = 1, 2, 1)
RETURN CALCULATE(SUM(Fact[Population]), Legend[Level] = LevelNumber)
в основном, мы хотим показать только население для соответствующего уровня.
использование этой меры на линейном графике с Legend[Region]
в поле легенда и Fact[Year]
на оси, результат выглядит так, когда срезы оставлены пустыми:
когда мы выбираем регион, а затем государство, мы получаем следующий:
вот ссылка на файл PBIX, который я создал для этого:Переменной Легенда.pbix