В настоящее время у меня есть столбец букв в B2:B11 рядом с числами, которые увеличиваются на 1, когда буквы появляются последовательно (C2:C11). Когда появляется новая буква, последовательность сбрасывается и начинается снова с 1.
Это формула, которую я использую:
=SCAN(0,B2:B11,
LAMBDA(a,b,
IF(OFFSET(b,-1,0)=b,
a+1,1)
)
)
Он отлично работает, когда буквы объединены в блоки, но когда они разделены, все предыдущие экземпляры буквы забываются.
Я хочу найти решение, использующее единую формулу. Я считаю, что я на правильном пути, используя новую функцию SCAN(). Пожалуйста, не предлагайте методы с использованием классических формул или таблиц (я уже видел такие).
Возвращаемые значения должны соответствовать значениям в D2:D11.


Это сработало для меня:
=COUNTIF(B$2:B2," = "&B2)
Вот версия массива в E2:
=COUNTIF(OFFSET(A2,0,0,SEQUENCE(ROWS(A2:A11)),1),A2:A11)
или используя LET для упрощения обслуживания:
=LET(start, A2, range, A2:A11,
COUNTIF(OFFSET(start,0,0,SEQUENCE(ROWS(range)),1),range))
Это результат:
Идея взята отсюда: Формула массива бегущего счётчика в Excel 365
Примечание. Третий аргумент OFFSET является необязательным, по умолчанию используется 1, поэтому его можно опустить.
привет, может быть интересно stackoverflow.com/questions/71806040/…