1

Ниже приведен снимок экрана, на котором я работал.Таблица Индивидуальный FIlter

enter image description here

Мне нужна небольшая помощь/советы/рекомендации в отношении одного Customized фильтра.

Небольшая деталь на оси X и Y графика. Ось X содержит различные коды DRG, в то время как ось Y содержит соответствующую среднюю стоимость. Цвет указывает 4 уровня серьезности (1,2,3,4). 0 - null.

Мне нужно отфильтровать и сохранить только те данные, которые находятся выше этой средней метки в сером цвете. Мне нужен фильтр для работы по всем серьезностям одновременно, как и оператор И. Вы можете увидеть такой пример для 1,2,3,4,5 кодов DRG. Там все тяжести выше средней отметки. Я написал что-то вроде -

IF [APR Severity Of Illness Code]==1 AND [MeanCost.mean]>29863 THEN [MeanCost.mean] END + IF [APR Severity Of Illness Code]==2 AND [MeanCost.mean]>29863 THEN [MeanCost.mean] END + IF [APR Severity Of Illness Code]==3 AND [MeanCost.mean]>29863 THEN [MeanCost.mean] END + IF [APR Severity Of Illness Code]==4 AND [MeanCost.mean]>29863 THEN [MeanCost.mean] END

который, очевидно, не работало из. Это работает, когда только одно условие дается, что-то вроде -

IF [APR Severity Of Illness Code]==1 AND [MeanCost.mean]>29863 THEN [MeanCost.mean] 
END 

но фильтр возвращает нулевые значения, когда более чем одно условие дано. Пожалуйста помоги.

+0

Значит, вы просто потянете это прямо в фильтр? Его не будет выбранным пользователем фильтром? Зачем вам нужен оператор IF, если уровень MeanCost.mean (29863) одинаковый для всей серьезности? Если бы это было так, я бы подумал, что вам нужно использовать инструкцию IFELSE, а затем закрывать каждый раз, когда вы («END») и начинаете другое. – lampbob

+0

Я использовал то, что Бернардо предложил в ответе ниже. Не мог заставить его работать. Я не использовал IFELSE, потому что мне нужно, чтобы он работал одновременно.Я имею в виду, что это не то или это. Это должно быть И во всех случаях. Мне нужно отобразить все DRGCodes, у которых все значения выше средней средней. –

ответ

0

Возможно, вам понадобится только один оператор IF.

If [MeanCost.mean] > {fixed : avg([MeanCost.mean]) } then 'show' else 'hide' END 

Создать новый расчет, а для новой опорной линии, это calculation2 в образце книги.

{fixed : avg([MeanCost.mean]) } 

Это происходит потому, что если вы отфильтровать значения «скрыть», текущая контрольная линия будет двигаться, чтобы показать среднее значение всех значений «шоу».

Теперь разместите свой фильтр и выберите «показать».

Образец прилагается. https://dl.dropboxusercontent.com/u/60455118/POC%20Req%203%20-%2023%20Sept.twbx

+0

Вот что я сделал - 1. Сделал расчетное поле. 2. Вставьте то, что вы сказали, включая «show» и отсутствие синтаксической ошибки. 3. Добавлено на полку фильтра. Вот что произошло. Выбрать из списка. Отобразить значение Null. Если я нажму Ok, фильтрация не будет выполнена, и все значения останутся неизменными. Ваш код имеет смысл, но почему-то я не могу заставить его работать. –

+0

Вы можете поделиться образцовой книгой? – Bernardo

+0

Вот ссылка на привод для этого же - https://drive.google.com/open?id=0B2zFuMt6Wn9lZVh1VGlPcjRudDQ Пожалуйста, проверьте Calculation1 in Measures. –

0

pragyanbezbo, если у вас есть Tableau v9 или v10, вы можете использовать уровень детализации (LOD) выражения введены в версии 9 в прошлом году:

{ FIXED [APR DRG Code], [APR Severity Of Illness Code] : AVG([MeanCost.mean]) } > 29863 

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

Вот ссылка на LOD Overview. И некоторые Jedi LODexamples. Надеюсь это поможет.