0 | A | B | C | D | E | F | G | H | EU | J. | K | eu |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | produtos | 2023-Saels | 2023-Margem | 2024-Saels | 2024-Margem | 2025-Vendas | 2025-Margem | Resultado | ||||
2 | Produto A | 500 | 30% | 150 | 40% | 160 | 5% | 30% | ||||
3 | Produto B | 200 | 10% | 900 | 60% | 750 | 8% | 10% | ||||
4 | Produto C | 300 | 19% | 400 | 10% | 400 | 60% | 19% | ||||
5 | Produto D | 700 | 50% | 930 | 25% | 50% | ||||||
6 | Produto E | 800 | 15% | 15% | ||||||||
7 | Produto F | 430 | 32% | 32% | ||||||||
8 | Produto G | 360 | 45% | 45% |
Quero Column L
exibir para cada produto a primeira margem por produto, que é a segunda célula não vazia em cada linha.
Até agora consegui desenvolver esta fórmula:
=XLOOKUP(TRUE,ISNUMBER(C2:J2),C2:J2)
Isso me dá corretamente as primeiras vendas, que são a primeira célula não vazia em cada linha.
Como preciso modificá-lo para exibir a segunda célula não vazia em cada linha?
Provavelmente múltiplas opções. Aqui está um usando
BYROW
,FILTER
eINDEX
:Aqui está um método alternativo usando
BYROW()
+CHOOSECOLS()
+TOCOL()
:Com funções antigas. Na célula F1 e arraste para baixo. Se não existir nenhum segundo valor, um erro #REF será retornado.
=INDEX(A1:D1,SMALL(IF(ISNUMBER(A1:D1),COLUMN(A1:D1)-COLUMN(A1)+1,1E+200),2))