Можно ли использовать INDEX и MATCH с несколькими критериями с оператором OR? - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь использовать несколько критериев диапазона с опцией OR () для второго критерия в функции match (). Если бы я использовал третий критерий, он включал бы и пропускал значения, которые я пытаюсь найти.

Имеете это в настоящее время:

=CELL("row",INDEX($D$69:$I$215,MATCH(1,(E30=E69:E215)*("Buy"=G69:G215),0),2))

** Есть ли способ заставить это работать? **

=MATCH(1,(E30=INDIRECT("E"  & C30 & ":E" & C27)* **OR( ("Buy"=INDIRECT("G"&C30&":G"&C27)),("Reinvestment"=INDIRECT("G"&C30&":G"&C27))**)),0)

1 Ответ

0 голосов
/ 23 марта 2020

один, избегайте использования CELL, так как он нестабилен. Вы можете просто сделать:

=MATCH(1,(E30=E69:E215)*("Buy"=G69:G215),0)+MIN(ROW(E69:E215))-1

Два, чтобы сделать OR в формуле массива, можно использовать + и заменить INDIRECT, который также является энергозависимым с INDEX

=MATCH(1,(E30=INDEX(E:E,C30):INDEX(E:E,C27))*(("Buy"=INDEX(G:G,C30):INDEX(G:G,C27))+("Reinvestment"=INDEX(G:G,C30):INDEX(G:G,C27))),0)+C30-1

В зависимости от версии, это может потребоваться подтвердить с помощью Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.

Можно также использовать AGGREGATE:

=AGGREGATE(15,7,ROW(INDEX(E:E,C30):INDEX(E:E,C27))/((E30=INDEX(E:E,C30):INDEX(E:E,C27))*(("Buy"=INDEX(G:G,C30):INDEX(G:G,C27))+("Reinvestment"=INDEX(G:G,C30):INDEX(G:G,C27)))),1)

Что не нужно запись CSE.

...