Как вернуть максимальное количество последовательных положительных ячеек в столбце?

#excel #if-statement #google-sheets #google-sheets-formula #nested-if

Вопрос:

Хотите подсчитать максимальное/максимальное/наибольшее количество последовательных ячеек с положительными или отрицательными числами в диапазоне / столбце.

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

Для Отрицательных:

=arrayformula(MAX(FREQUENCY(IF(Daily!P5:P<0,ROW(Daily!P5:P),""),IF(Daily!P5:P>=0,ROW(Daily!P5:P),""))))

Для Положительного:

=arrayformula(MAX(FREQUENCY(IF(Daily!P5:P>0,ROW(Daily!P5:P),""),IF(Daily!P5:P<=0,ROW(Daily!P5:P),""))))

Вот копия электронной таблицы. Лист 1 содержит формулы различными способами. Первые две версии показывают, как формулы работают с тестовым диапазоном. Во вторых двух версиях показана формула, используемая для фактических данных. Вот тут-то и возникает проблема. Для отрицательных чисел это работает. Но для положительных чисел он показывает 68 последовательных чисел, а в диапазоне даже нет 68 последовательных чисел.

Мне интересно, является ли эта проблема результатом какой-то идиосинкразии с Google Таблицами и как используются эти функции.

Ответ №1:

это вызвано вашей формулой в столбце B. менять:

 =IF(ISBLANK($A5), "", IF(NetGross="Gross", 
 SUMIF(Date, $A5, GrossReturnDollar), SUMIF(Date, $A5, NetReturnDollar)))
 

к этому:

 =IF(ISBLANK($A5),, IF(NetGross="Gross", 
 SUMIF(Date, $A5, GrossReturnDollar), SUMIF(Date, $A5, NetReturnDollar)))
 

или:

 =IF(ISBLANK($A5), IF(,,), IF(NetGross="Gross", 
 SUMIF(Date, $A5, GrossReturnDollar), SUMIF(Date, $A5, NetReturnDollar)))
 

Комментарии:

1. Спасибо! Знаете ли вы, почему «» считается положительным?

2. @willbeing, хотя кажется, что "" это приводит к пустой ячейке — это неправда. вы вставляете «ничего» в ячейку, поэтому ячейка действительно не пуста. там просто полно «никаких персонажей». его распространенная ошибка — использовать "" в качестве пустого держателя. вместо этого либо пропустите "" и продолжите с запятой, либо используйте пустой, если хотите IF(,,)