У меня есть список значений, и я хочу посчитать, сколько раз значения превышают 400, но если значения в следующей строке также соответствуют этому критерию, то это не должно учитываться. Я полагаю, что формула СЧЁТЕСЛИ в этом случае бесполезна. Пожалуйста, посмотрите прикрепленную картинку для лучшего понимания.
решение1
На этом изображении я поместил значение вашего критерия в ячейку A2.
В столбцах E–H формулы вводятся в первую строку данных (строка 3 в электронной таблице), а затем копируются в нижнюю часть диапазона.
В столбце E находится формула для получения значения из предыдущей строки:
=IF(ISTEXT(B2),0,B2)
В столбце F находится формула для вычисления того, больше ли значение в текущей строке (в столбце B) критерия в ячейке A2, а значение из предыдущей строки (теперь в столбце E) меньше или равно критерию в ячейке A2. Эта формула возвращает 1 в строке, где начинается группа строк, больших критерия:
=IF(AND(E3<=$A$2,B3>$A$2),1,0)
В столбце G находится текущая сумма значения в столбце F:
=SUM($F$3:F3)
Обратите внимание, что первая ссылка в диапазоне привязана к абсолютным ссылкам. По мере копирования этой формулы вниз диапазон, который она суммирует, будет расти, что приведет к значениям, показанным в столбце G.
Наконец, в столбце H мы показываем значение из столбца G, если значение в столбце B больше критерия в ячейке A2:
=IF(B3>$A$2,G3,"")
Если у вас установлена последняя версия Office 365, вы можете объединить все шаги в одну формулу, которая вводится только в ячейку I2 на изображении выше:
=LET(
base,$A$2,
data,$B$3:$B$12,
prev,OFFSET(data,-1,0),
numprev,IF(ISTEXT(prev),0,prev),
grpchg,BYROW(CHOOSE({1,2},data,numprev),LAMBDA(r,IF(AND(INDEX(r,,1)>base,INDEX(r,,2)<=base),1,0))),
runsum,SCAN(0,grpchg,LAMBDA(a,b,a+b)),
output,IF(data>base,runsum,""),
output)