Заголовок таблицы Либо отображать отдельное государство, либо «Соединенные Штаты» на основе фильтра - PullRequest
1 голос
/ 04 апреля 2019

У меня есть график, который можно отфильтровать до уровня штата, нажав на отдельные состояния.

Текущий заголовок закодирован как

<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

Но у меня возникли трудности с выяснением, что делать. Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Вы можете заключить свой расчет ATTR([State]) в другой и использовать этот расчет в заголовке:

IF ATTR([State]) = '*' THEN 'United States' ELSE ATTR([State]) END
0 голосов
/ 04 апреля 2019

Тот факт, что ваше поле [State] указано как агрегация ATTR, вызывает поведение, которое вы видите. Агрегирование нескольких строк всегда превращается в *. В идеале вы можете просто изменить фильтр на рабочем листе на [State] без агрегации ATTR, а затем изменить свой заголовок на:

<Sheet Name> : <State> 

Поведение будет следовать за фильтром: когда выбрано «Все», в вашем заголовке будет отображаться «Все».

В качестве альтернативы, я считаю, что это вычисленное поле выполнит то, что пытался сделать ваш. Требуется вычисление таблицы, в которой подсчитываются состояния в представлении, и, если их 50, предполагается, что все состояния отображаются, и поэтому их следует называть «Соединенные Штаты», в противном случае отображается только одно состояние. (Предостережение: это не работает так же, как мое предложение выше, если выбрано несколько состояний.)

If WINDOW_COUNT(ATTR([State])) = 50 Then 'United States'
Else ATTR([State])
END

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

...