0 | A | B | C | D | E | F | G | H | EU | J. | K | eu | M |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Produtos | Comprar | 2023-S | 2023-M | 2024-S | 2024-M | |||||||
2 | lookup_array | ||||||||||||
3 | Produto A | Loja3 | 80 | 2% | 120 | 22% | 2024-S | ||||||
4 | Produto B | Loja1 | 320 | 17% | 400 | 15% | matriz_retorno | ||||||
5 | Produto B | Loja3 | 90 | 30% | 750 | 8% | dados selecionados | 2024-M | |||||
6 | Produto B | Loja2 | 500 | 4% | 70 | 4% | 400 | 15% | |||||
7 | Produto C | Loja2 | 160 | 10% | 245 | 10% | 400 | 35% | |||||
8 | Produto D | Loja1 | 500 | 8% | 130 | 4% | 70 | 4% | |||||
9 | Produto D | Loja4 | 130 | 11% | 130 | 4% | 520 | 42% | |||||
10 | Produto E | Loja2 | 75 | 8% | 650 | 15% | 130 | 4% | |||||
11 | Produto E | Loja1 | 60 | 47% | 90 | 7% | 90 | 7% | |||||
12 | Produto E | Loja4 | 500 | 25% | 400 | 35% | 130 | 4% | |||||
13 | Produto E | Loja3 | 350 | 9% | 140 | 13% | 130 | 9% | |||||
14 | Produto F | Loja2 | 60 | 30% | 130 | 9% | 70 | 16% | |||||
15 | Produto G | Loja2 | 90 | 5% | 370 | 12% | |||||||
16 | Produto H | Loja1 | 390 | 27% | 70 | 16% | |||||||
17 | Produto H | Loja2 | 70 | 18% | 520 | 42% |
Quero Range M6:M14
obter os dados correspondentes com base nos valores em Range K6:14
.
No entanto, quero ter a flexibilidade que
- the
lookup_array
é usado com base na entradaCell M3
e - the
return_array
é usado com base na entrada emCell M5
. Por exemplo, se eu mudar de2024-M
paraProduct
, os produtos correspondentesColumn A
deverão ser listados.
Com referência à resposta nesta pergunta , estou procurando algo assim:
=LET(
_A, K6:K14,
_B, >> flexible based on input in Cell M3 <<,
_RollingA, MAP(_A,LAMBDA(α,COUNTIF(α:K6,α))),
_RollingB, MAP(_B,LAMBDA(α,COUNTIF(α:H3,α))),
XLOOKUP(_A&"|"&_RollingA,_B&"|"&_RollingB,XLOOKUP(M5,A1:I1,A3:I17)))
Nota:
Os valores em lookup_array
não são exclusivos. Neste exemplo 130
, 400
e 70
. Portanto, caso a frequência dos valores em Range K6:14
não corresponda à frequência dos valores em return_array
então, Range M6:M14
eles deverão ser comparados aos valores em Range K6:14
em ordem decrescente. (A fórmula de exemplo acima já trata dessa forma).
Qual fórmula eu preciso para obter o resultado no Range M6:M14
trabalho com base em um processo flexível lookup_array
e return_array
?
A solução já está na resposta postada por JvdV Sir,
• Fórmula usada na célulaM6
E isso usando a fórmula existente no contexto do OP, com uma ligeira modificação:
Ou, um pouco semelhante ao acima, mas mais curto e executando personalizado
LAMBDA()
Adotando da resposta anterior :