EDIT:
@Jeeped и @trincot предложил варианты лучше не массив. Я изменил их немного здесь:
@ формула Jeeped в:
=IF(OR(B1={"2B","4A"}), COUNTIF(INDEX(B:B,AGGREGATE(14, 6, ROW(B$1:B1)/(B$1:B1="2B"), 1)):B1, "4A"),"")
После модификации он использует LARGE
функцию в совокупности, а не SMALL
и ""
вместо TEXT(,)
.
@ формула trincot в:
=IF(OR(B2={"2B","4A"}),(B2="4A")*(1+IFERROR(INDEX(G:G,MATCH(MAX(G$1:OFFSET(G2,-1,0))+1,G$1:OFFSET(G2,-1,0))),0)),"")
По сравнению с оригиналом, это было слегка отредактированный «IF-накрест», я также заменил магии 9999
с MAX([...]) + 1
и сделал это так, что вы можете просто вставить его в 1-я ячейка и перетащить, а не иметь две отдельные формулы для первой ячейки и последовательных.
Моя оригинальная версия:
Я думаю, что это имеет преимущество, возможно, является самым простым для понимания (- я явно предвзятым здесь, так что я мог бы быть неправильно?), И это физически самый короткий из всех.
У этого есть очевидный недостаток быть матричной формулой.
В ячейке "A1" вы можете написать:
=IF(OR(B1="2B",B1="4A"),SUM((B$1:B1="4A")*(ROW(B$1:B1)>MAX(ROW(B$1:B1)*(B$1:B1="2B")))),"")
Это формула массива, так что вы должны подтвердить его с помощью Ctrl + Shift + Enter.
Затем вы можете перетащить его.
В основном, он подсчитывает количество вхождений «4A» в диапазоне, простирающемся от текущей строки до первой, при условии, что строки счетчика «4A» больше, чем эта последняя строка «2B».
Нужно ли скрывать повторяющиеся значения, как вы это делали в листе образца? – trincot
Минус 1 для размещения изображения образцов данных. – Jeeped
Добавлена текстовая версия для тех, кто считает ее отсутствие проблематичным. – trincot