Estou tentando pular uma linha específica em uma matriz, não o valor.
Por exemplo, suponha que estamos na coluna A:
0
3
0 <--- Row 3
0
como posso pular a terceira linha em A1:A4, então small(A1:A4, 2) pode ser igual a 0, e small(A1:A4, 3) seria igual a 3.
Gostaria de pular uma linha específica, não o valor. Não consigo trocar as linhas, preciso de uma fórmula que ignore uma linha específica em uma matriz
Obrigado pela ajuda!
Responder1
Outra abordagem é a INDEX
função criar um array das linhas que você deseja reter (e há muitas maneiras de criar esse array). No seu exemplo específico, usando AGGREGATE
em vez de SMALL
:
=AGGREGATE(15,4,INDEX($A$1:$A$4,IF(1,N({1,2,4}))),2)
Se você tiver apenas quatro linhas e quiser ignorar apenas uma, a abordagem realmente não importa. Se seus intervalos forem maiores e sua seleção de linhas a serem ignoradas for mais complexa (e mais do que apenas uma), criar uma matriz de números de linhas a serem retidas poderá ser mais simples.
Responder2
Se você for somar os números, use SUMPRODUCT:
=SUMPRODUCT((ROW(A1:A4)<>3)*(A1:A4))
Se você for fazer qualquer outra coisa, provavelmente precisará de uma fórmula inserida em array com e IF dentro:
IF(ROW(A1:A4)<>3,A1:A4)
Isso tornará a fórmula uma fórmula de matriz que precisa ser confirmada com Ctrl-Shift-enter em vez de Enter ao sair do modo de edição.
Então, por exemplo, se quiséssemos o MAX:
=MAX(IF(ROW(A1:A4)<>3,A1:A4))
Inserido com Ctrl-Shift-Enter.
Para os pequenos:
=SMALL(IF(ROW(A1:A4)<>3,A1:A4),3)
Inserido com Ctrl-Shift-Enter retornaria 3
não0
Outra forma de AGGREGATE que é igual ao pequeno acima:
=AGGREGATE(15,7,A1:A4/(ROW(A1:A4)<>3),3)
Responder3
Para pular a 3ª linha especificada em A1:A4
Tente inserir esta fórmula normal:
=SMALL(IF({1;1;0;1},A1:A4),3)
retornará o resultado3
e,
=SMALL(IF({1;1;0;1},A1:A4),2)
retornará o resultado0