#dynamic #tableau-api
#динамический #таблица-api
Вопрос:
У меня есть график, который можно отфильтровать до уровня штата, нажав на отдельные штаты.
Текущий заголовок кодируется как
<Sheet Name> : <ATTR(State)>
Который отображается, Profit Over Time: New York
когда находится в Нью-Йорке, но Profit Over Time: *
когда штат не выбран. Я подумал, что создание вычисляемого поля и вставка его в заголовок могут быть решением.
<Sheet Name> : <US or State>
Затем вычисляемое поле будет устанавливать поле равным первому состоянию в списке, если список содержит только 1 состояние и «Соединенные Штаты» в противном случае.
IF COUNTD([State]) = 1 THEN [State][1]
ELSE "United States"
END
Но у меня возникли некоторые трудности с выяснением, что делать. Спасибо.
Ответ №1:
Вы можете обернуть свой ATTR([State])
расчет в другой и использовать этот расчет в своем заголовке:
IF ATTR([State]) = '*' THEN 'United States' ELSE ATTR([State]) END
Ответ №2:
Тот факт, что ваше поле [State] указано как агрегированное значение ATTR, вызывает поведение, которое вы видите. Объединение нескольких строк всегда превращается в *. В идеале вы можете просто изменить фильтр на своем листе на [Состояние] без агрегирования ATTR, а затем изменить свой заголовок на:
<Sheet Name> : <State>
Поведение будет соответствовать фильтру: когда выбрано «Все», «Все» будет отображаться в вашем заголовке.
В качестве альтернативы, я считаю, что это вычисляемое поле выполнит то, что вы пытались сделать. Требуется вычисление таблицы, в которой подсчитываются состояния в представлении, и если их 50, предполагается, что отображаются все состояния, и поэтому их следует называть «Соединенные Штаты», в противном случае отображается только одно состояние. (Предостережение: это работает не так хорошо, как мое предложение выше, если выбрано несколько состояний.)
If WINDOW_COUNT(ATTR([State])) = 50 Then 'United States'
Else ATTR([State])
END
Я уверен, что существует сравнительный расчет LOD, который соответствовал бы описанному выше поведению, однако LOD работают по-разному в отношении порядка операций при фильтрации. (LOD выполняются до фильтрации, вычисления таблицы выполняются после.) Такой порядок операций в LOD может немного усложнить задачу и будет сильно зависеть от структуры ваших данных. Хотя это возможно — и, вероятно, более эффективно, если все сделано правильно.
Комментарии:
1. Помогло ли это / сработало для вас? Если это так, пожалуйста, установите зеленую галочку, чтобы другие могли ссылаться, если столкнулись с такой же проблемой. Если бы вы могли решить самостоятельно, не могли бы вы поместить ответ здесь? Мне любопытно.