2017-02-13 12 views
0

Мне нужна помощь при создании формулы RankIf для следующей ситуации.Ранг Если формула массива

В моей таблице я следующее

|UniqueRank|LkUp| 
|12  |0 | 
|13  |1 | 
|5   |0 | 
|1   |2 | 

Я пытаюсь создать третий столбец, который будет ранжировать поле UniqueRank, если поле LkUp не = 0. Как видно из названия столбца, все значения в этом столбцы уникальны.

Я написал следующую формулу массива;

=IF(tblPriorityMatrix[LkUp]<>0,RANK.EQ(tblPriorityMatrix[Unique Rank],tblPriorityMatrix[@[Unique Rank]]),0) 

Это возвращает 0, где критерием является не встречались, но # N/A, где она встречает.

У кого-нибудь есть идеи по этому поводу?

Большого спасибо

ответ

1

Использование SUMPRODUCT:

=IF(tblPriorityMatrix[@LkUp]<>0,SUMPRODUCT((tblPriorityMatrix[UniqueRank]>tblPriorityMatrix[@UniqueRank])*(tblPriorityMatrix[LkUp]<>0))+1,0) 

Чтобы изменить его возрастающий порядок просто изменить > к <:

=IF(tblPriorityMatrix[@LkUp]<>0,SUMPRODUCT((tblPriorityMatrix[UniqueRank]<tblPriorityMatrix[@UniqueRank])*(tblPriorityMatrix[LkUp]<>0))+1,0) 

enter image description here

+0

Привет Скотт, спасибо за Ответить. Кажется, это работает, но в порядке убывания, как вы меняете это на восхождение? – PeteBradshaw

+0

@PeteBradshaw см. Редактировать –

+0

Привет, Скотт, это очевидно, когда вы указываете на это :) Многие, большое спасибо за помощь, это работает шарм! – PeteBradshaw