Таблицы ссылочных переменных с использованием динамических имен таблиц — Power BI, DAX

#powerbi #dax #powerbi-desktop

Вопрос:

У меня есть мера, с помощью которой я вычисляю некоторые данные на основе значения среза. Срез определяет, из какой таблицы я получаю свои данные, например SUM(TableA[sales]) , или SUM(TableB[sales]) . (Каждая из моих таблиц имеет одинаковую структуру).

Я хотел бы иметь возможность настроить переменную для динамического изменения (с помощью моего слайсера), на какую таблицу я ссылаюсь.

Прямо сейчас у меня есть:

 // Set __table to a stored string representation of the name of the database
// This seems to work
VAR __table = SELECTEDVALUE( AllTables[TableNames] )

// Evaluate the sales column of my variable table
// This doesn't work due to 'Cannot find name sales'
CALCULATE(SUM(__table[sales]))     
 

Я предполагаю, что мне нужен способ, чтобы срез изменил таблицу, на которую ссылаются в моих показателях (при этом все столбцы одинаковы для каждой таблицы).

Я новичок в Power BI и уже несколько дней борюсь с этим. Я был бы очень признателен за любую помощь либо с методом, который я пытаюсь, либо с любыми альтернативами.

Комментарии:

1. Я не думаю, что есть способ сделать именно то, что вам нужно, но обычно вам не нужно делать это с хорошей моделью. Зачем вам нужно переключаться между таблицами и примерно со сколькими таблицами вы пытаетесь переключаться?

2. @AlexisOlson Привет, может быть до 20 столов. Он предназначен для сбора данных с устройств в разных местах офиса, где каждое устройство импортируется в виде отдельной таблицы. Затем пользователь может переключаться между просмотром данных из разных таблиц данных в своих представлениях с помощью среза.

Ответ №1:

Если у вас небольшой объем данных в каждой таблице, вы можете объединить их все вместе, поскольку они находятся в одной структуре. Просто добавьте дополнительный столбец со ссылкой на имя таблицы. Теперь вы можете создать свой слайсер, используя новый столбец, и в нем будут содержаться все имена таблиц в списке. Теперь, если вы измените имя таблицы в срезе, ваши визуальные эффекты будут отображать результаты, основанные на данных из этой уважаемой таблицы.

Комментарии:

1. В случае, если исходные таблицы будут работать как сейчас, то представление с дополнительным столбцом исходной таблицы с объединением ВСЕХ между всеми таблицами добавляет более динамичный слой.

2. Эй, спасибо за совет. Будет ли это работать для больших таблиц (20000 записей, добавляемых в день) или у меня возникнут проблемы?

3. если у вас нет миллионов записей вместе, проблем нет. В вашем случае вы также можете подумать о периоде, например, о данных за последние 12 или 36 месяцев, которые будут добавлены в новую таблицу. Это зависит от ваших требований. Но вы можете удалить старые данные, которые никогда не отображались в визуальном представлении.

4. Я попытаюсь сделать это таким образом. Спасибо вам за вашу помощь.