Digite
=6-MAX(IF(A1:F1>=0, COLUMN(A1:F1), 0))
em G1
e pressione Ctrl + Deslocar + Enter .
Dado o seu primeiro exemplo (A1 = 2, B1 = 6, C1 = −3, D1 = −5, E1 = −6, F1 = −9),
a subexpressão IF(X>=0, COLUMN(X), 0)
cria uma matriz virtual que se parece com (1, 2, 0, 0, 0, 0)
- substituindo números não negativos pelos números das colunas,
e substituindo números negativos por zero.
Tomando o MAX
do que nos dá a última coluna (mais à direita)
que contém um número não negativo -
então tudo além disso deve ser negativo.
Então, subtraindo isso de 6 nos diz
quantos números negativos (consecutivos) existem
na extremidade direita da série.
A tecla Ctrl + Deslocamento + Enter faz com que seja uma fórmula de matriz. Isso é necessário para criar um array virtual como esse.
Para a versão alternativa da pergunta, a solução é quase exatamente a mesma:
=6-MAX(IF(A1:F1<>"RED", COLUMN(A1:F1), 0))