2016-07-28 7 views
0

У меня есть данные, что выглядит следующим образом:Поиск минимума по группам в Tableau

User  PaymentType   Month 
----------------------------------- 
A  Early Payment   1 
A  Early Payment   2 
A  Early Payment   3 
A  Outstanding   4 
A  Outstanding   5 
A  Outstanding   6 
B  Early Payment   1 
B  Early Payment   2 
B  Early Payment   3 
B  Outstanding   4 
B  Outstanding   5 
B  Outstanding   6 

Как я могу создать вычисление, которое возвращает только минимальный месяц из «выдающихся» PaymentType для каждого пользователя, который может быть затем положить в качестве нового столбца в данных? Мне нужно отслеживать, когда был первый «выдающийся» PaymentType для каждого пользователя.

ответ

2
{ FIXED [User] : MIN(IIF([Payment Type] = 'Outstanding', [Month], NULL)) } = [Month] 

Это даст вам столбец, это правда, если это первый месяц пользователя с непогашенной оплатой, а false в противном случае. Данные будут выглядеть так:

+------+---------------+-------+---------------------------+ 
| User | PaymentType | Month | First Outstanding Payment | 
+------+---------------+-------+---------------------------+ 
| A | Early Payment | 1  | F       | 
| A | Early Payment | 2  | F       | 
| A | Early Payment | 3  | F       | 
| A | Outstanding | 4  | T       | 
| A | Outstanding | 5  | F       | 
| A | Outstanding | 6  | F       | 
| B | Early Payment | 1  | F       | 
| B | Early Payment | 2  | F       | 
| B | Early Payment | 3  | F       | 
| B | Outstanding | 4  | T       | 
| B | Outstanding | 5  | F       | 
| B | Outstanding | 6  | F       | 
+------+---------------+-------+---------------------------+ 

Обратите внимание, что это данные, которые вы нам дали. Если ваш месяц - это, например, поле даты (в отличие от простого числа), или если вы добавляете годы к своим данным или если у вас есть несколько платежей в месяц, эта формула должна быть скорректирована. Тем не менее, это дает вам основную идею о том, как идти о вычислении того, что вы ищете, и не должно быть сложно обновить расчет в соответствии с вашими потребностями.


Если BOOL не то, что вы ищете, вы можете просто вынуть условное, чтобы иметь поле провести месяц номер первого выдающегося платежа.

{ FIXED [User] : MIN(IIF([Payment Type] = 'Outstanding', [Month], NULL)) } 

В этом случае, ваши данные будут выглядеть следующим образом:

+------+---------------+-------+---------------------------+ 
| User | PaymentType | Month | First Outstanding Payment | 
+------+---------------+-------+---------------------------+ 
| A | Early Payment | 1  | 4       | 
| A | Early Payment | 2  | 4       | 
| A | Early Payment | 3  | 4       | 
| A | Outstanding | 4  | 4       | 
| A | Outstanding | 5  | 4       | 
| A | Outstanding | 6  | 4       | 
| B | Early Payment | 1  | 4       | 
| B | Early Payment | 2  | 4       | 
| B | Early Payment | 3  | 4       | 
| B | Outstanding | 4  | 4       | 
| B | Outstanding | 5  | 4       | 
| B | Outstanding | 6  | 4       | 
+------+---------------+-------+---------------------------+