| A |B |C| D |E| F | G | H | I |J| K | L | M |
------|-------|--|-|------|-|--------|------|------|------|-|---------|----------|----------|--
1 | | | |ratio | | tested | 2023 | 2024 | 2025 | | RowCrit | ColCrit1 | ColCrit2 |
2 |Brand A|P1| | 7% | | yes | 500 | 70 | 60 | | 2024 | Brand A | P1 |
3 |Brand A|P2| | 8% | | yes | 100 | 47 | 300 | | | Brand D | P4 |
4 |Brand A|P2| | 10% | | yes | 800 | 21 | 200 | | | | |
5 |Brand B|P1| | 5% | | yes | 90 | 56 | 150 | | | | |
6 |Brand C|P4| | 3% | | no | 45 | 700 | 790 | | | | |
7 |Brand C|P2| | 8% | | no | 600 | 150 | 40 | | Result | 191.5 | |
8 |Brand D|P1| | 12% | | yes | 900 | 90 | 980 | | | | |
9 |Brand D|P1| | 20% | | yes | 125 | 854 | 726 | | | | |
10|Brand D|P3| | 19% | | yes | 70 | 860 | 614 | | | | |
11|Brand D|P4| | 2% | | yes | 842 | 250 | 85 | | | | |
12|Brand E|P4| | 6% | | no | 300 | 324 | 450 | | | | |
Quero calcular SUMPRODUCT
multiplicando os valores de Column D
pelos valores correspondentes em Column G:I
.
A SUMPRODUCT
fórmula também deve considerar os filtros para Row
in Cell K2
e Column
in Range L2:L4
e Range M2:M4
.
No exemplo acima o resultado é:
L7 = 7%x70 + 12%x90 + 20%x854 + 2%x250 = 191.5
Com referência à resposta nesta pergunta , tentei aplicar esta solução:
=LET(
a, IF(
COUNTA($L$2:$L$3) = 0,
N(ISNUMBER(ROW($A$2:$A$12))),
COUNTIF($L$2:$L$3, $A$2:$A$12)
),
b, IF(
COUNTA($M$2:$M$3) = 0,
N(ISNUMBER(ROW($B$2:$B$12))),
COUNTIF($M$2:$M$3, $B$2:$B$12)
),
c, CHOOSECOLS($A$2:$I$12, 3, XMATCH($K$2, $A$1:$I$1)),
SUM(a * b * CHOOSECOLS(c, 1) * CHOOSECOLS(c, 2))
)
No entanto, ele retorna 0
como resultado. Pelo que posso dizer, isso é causado pelo vazio Column C
.
Presumo que de alguma forma nesta fórmula ela Column D
deve ser declarada como coluna fixa a ser usada para o arquivo SUMPRODUCT
.
Você tem alguma ideia de como alterar a fórmula para que funcione?
Mudar:
Para:
Ou:
Isso funciona do meu lado, em vez de codificar a posição da coluna
XMATCH()
para torná-la dinâmica:• Usando
BYROW()
:• Ou sem usar
LAMBDA()
ajudante:Aliás, você
LAMBDA()
também pode usar esta fórmula personalizada:No entanto, você pode remover o
XMATCH()
for daratio
coluna e torná-lo codificadocolumn_index
4
se a coluna for sempre fixa.De acordo com os comentários do OP:
Fórmulas finais atualizadas:
Ou,