Это формула, которую я сейчас использую:

=SUMPRODUCT((INDIRECT("A2"):INDIRECT("A"&(ROW()-1))=A359)*1)

Он отлично работает, но вместо этого я хотел бы использовать это:

=SUMPRODUCT((INDIRECT("A2"):INDIRECT("A"&(ROW()-1))=INDIRECT("A"&(ROW())))*1)

К сожалению, у меня есть #VALUE!. Что я делаю неправильно? И INDIRECT("A"&ROW(())), и A359 возвращают одно и то же значение, поэтому я не уверен, почему это не сработает.

Причина, по которой я не использую простую функцию COUNTIF, заключается в том, что я удалил из своей формулы все ненужные компоненты и оставил только ту часть, с которой у меня возникли проблемы (т.е. мне нужно использовать формулу SUMPRODUCT и Формула COUNTIF работать не будет)

Заранее спасибо!

0
Nate 30 Мар 2014 в 19:40

2 ответа

Лучший ответ

Я не уверен, зачем вам INDIRECT вместо обычных ссылок на ячейки, но конкретная проблема здесь в том, что функция ROW возвращает "массив", даже если она возвращает одно значение, например он возвращает {"x"}, а не просто "x" - и в некоторых случаях Excel не может это обработать.

Попробуйте заключить вторую функцию ROW в функцию SUM - значение не меняется, но оно избавляется от массива, т.е.

=SUMPRODUCT((INDIRECT("A2"):INDIRECT("A"&(ROW()-1))=INDIRECT("A"&SUM(ROW())))*1)

Это устранит # ЗНАЧЕНИЕ! ошибка, оставляя основную структуру вашей формулы неизменной

4
barry houdini 30 Мар 2014 в 16:01

Попробуй это:

=SUMPRODUCT((($A$2:INDEX($A:$A,ROW()-1))=INDEX($A:$A,ROW()))*1)

Это дает тот же результат.

Но приведенная выше формула непостоянна. Вместо этого я бы использовал следующий, скажем, в B3:

=SUMPRODUCT((($A$2:$A2)=$A3)*1)
1
Dmitry Pavliv 30 Мар 2014 в 15:56