2014-12-06 6 views
2

У меня есть простая проблема с таблицей, которую я не могу решить.Таблица: фильтрация на основе значений других переменных параметра

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

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

Возможно ли это? если да, пожалуйста, дайте мне знать, как!

Большое спасибо за вашу помощь!

ответ

1

Я понятия не имею, что означает «вертикаль» в этом контексте, но решение для первой части довольно прямолинейно.

Создайте расчетное поле под названием [Selected Client]. Если предположить, что имя клиента хранится в [Client Name], и ​​вы создали параметр, который называется [Клиент], это вычисляемое поле будет:

[Client Name] = [Client] 

Затем использовать его в качестве измерения (например, перетащить его на строки).

Вы также можете сделать

IF [Client Name] = [Client] 
THEN [Client Name] 
ELSE 'Others' 
END 

Таким образом, легче понять, кто является выбранный клиентом.

Теперь вторая часть более сложная. Предположим, вы хотите отфильтровать только те клиенты, которые используют атрибут с выбранным клиентом (ваша «вертикальная» вещь). Я не уверен, что это лучшее решение, но это тот, который я придумал.

Сначала давайте изменим [Selected Client] полю немного:

IF [Client Name] = [Client] 
THEN '1- ' + [Client Name] 
ELSE '2- Others' 
END 

Это поможет нам разобраться на следующем шаге. Теперь создайте вычисленное поле под названием [Фильтр по вертикали]:

LOOKUP(ATTR([Vertical]),FIRST()) = ATTR([Vertical]) 

Теперь это важно. Перетащите вертикально в строки (до [Выбранный клиент]. Теперь перетащите [Фильтр по вертикали] в Фильтры. Затем выберите «Редактировать таблицу», «Вычислить с помощью« Дополнительно ». Поместите все вправо (« Адресация »),« Сортировка поля »,« Выбранный клиент »,« Максимум »,« По возрастанию ».

Теперь с нашим небольшим завихрением выбранный клиент всегда будет первым в списке. И наш фильтр будет содержать только те клиенты, которые имеют тот же Вертикаль, что и первый из списка (который является нашим клиентом).

Важно иметь [Вертикаль] на листе, потому что таблица вычисляет раздел и адресует только то, что находится на листе. Если его нет, оно не будет рассматриваться.

Смежные вопросы