Excel - Расширение формулы массива - PullRequest
0 голосов
/ 25 мая 2019

Я использую эту формулу массива, которая прекрасно работает

=IF(ROWS(K$62:K62)>COUNTIF(accounts_table[§],"<>J"),"",INDEX(accounts_table[Account Name],SMALL(IF(accounts_table[§]<>"J",ROW(accounts_table[§])-ROW(Ledger!$H$17)+1),ROWS($K$62:K62))))

Однако мне нужно расширить ее для нескольких критериев COUNTIF:

accounts_table[§],"<>J"
accounts_table[§],"<>T"
accounts_table[§],"<>P"

Я не смог сделать это успешноэтот.Я пробовал это, но не работает:

=IF(OR(ROWS(K$62:K62)>COUNTIF(accounts_table[§],"<>J"),ROWS(K$62:K62)>COUNTIF(accounts_table[§],"<>T")),"",INDEX(accounts_table[Account Name],SMALL(IF(OR(accounts_table[§]<>"J",accounts_table[§]<>"T"),ROW(accounts_table[§])-ROW(Ledger!$H$17)+1),ROWS($K$62:K62))))

1 Ответ

0 голосов
/ 26 мая 2019

Вы должны внести две корректировки в формулу:

(1) Я говорил об общем мусоре ранее, правильно, что самое простое, что можно сделать, это использовать Countifs.Вы можете вычесть два отдельных числа J и T из общего числа, но оно длиннее.

(2) Вы не можете использовать AND или OR в формулах массива - они дают вам только один результат для всего массивавместо того, чтобы перебирать ячейки, как вы хотите.Вместо этого вы должны использовать умножение (*) или добавить (+).Здесь вы пытаетесь включить ячейки, которые не равны J и не равны T, поэтому вам снова нужна логика AND, поэтому вы хотите умножить.

=IF(ROWS(K$62:K62)>COUNTIFS(accounts_table[§],"<>J",accounts_table[§],"<>T"),"",INDEX(accounts_table[Account Name],SMALL(IF((accounts_table[§]<>"J")*(accounts_table[§]<>"T"),ROW(accounts_table[§])-ROW(Ledger!$H$2)+1),ROWS(K$62:$K62))))

enter image description here

Расширение его до нескольких переменных оставлено читателю в качестве упражнения ... если только у вас нет большого количества значений, которые нужно исключить, в этом случае может потребоваться другой подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...