Como usar a função MAP no Excel passo-a-passo, com artigo, download de exemplo e vídeo-aula.
Objetivo e Parâmetros da Função MAP Excel
A função MAP tem por objetivo realizar cálculos individuais para cada célula de uma matriz.
Veja detalhadamente as informações disponíveis sobre a função:
Versão: Excel 365 Windows, Mac e Web
Objetivo: Retorna uma matriz formada pelo mapeamento de cada valor na(s) matriz(es) para um novo valor aplicando uma Lambda para criar um novo valor.
Sintaxe: =MAP(array;lambda_or_array<#>)
- array: Uma matriz a ser mapeada
- lambda_or_array<#>: Uma LAMBDA que deve ser o último argumento e que deve ter um parâmetro para cada matriz passada, ou outra matriz a ser mapeada.
Erros: Fornecer uma LAMBDA inválida ou número incorreto de parâmetros devolvendo um #VALOR! Erro chamado “Parâmetros Incorretos”.
Exemplo Simples de Aplicação da Função
No exemplo abaixo temos uma lista com números pares e ímpares, desejamos verificar um a um se os itens da lista são ímpares e retornar verdadeiro se for, se não for, retornar falso.
Veja a imagem abaixo:
Como pode notar temos vários números inteiros aleatórios, pares e ímpares.
Desejamos verificar item a item se é par ou ímpar.
Para essas situações, podemos usar a função MAP para que um cálculo de uma função LAMBDA seja feito item a item.
Importante notar que necessariamente precisa ser uma função LAMBDA para o cálculo.
=MAP(C19:E28;LAMBDA(lista;MOD(lista;2)=0))
Na função passamos o primeiro campo que é a origem dos dados, e na segunda, no Lambda, o primeiro parâmetro será o que foi passado na função MAP e será utilizado então na função para o cálculo como a origem.
No final temos então a aplicação da função item a item e como resultado temos uma matriz criada com a mesma quantidade de células da original.
Segmentação de Dados com Matrizes Dinâmicas usando MAP Excel
A função MAP é muito poderosa.
Basicamente ela faz cálculos item a item de uma lista.
Isso permite que o resultado dela seja uma matriz transformada com a mesma quantidade de itens da original.
Neste exemplo usamos uma função auxiliar para identificar se uma célula está visível ou não.
Para isso criamos uma função SUBTOTAL para cada uma das linhas, contando se ela está visível.
Usamos =SUBTOTAL(3;[@Empresa]), sendo assim, ele retorna 1 se estiver visível e 0 se não estiver.
Acontece que para isso temos que criar uma coluna auxiliar na nossa origem de dados e isso nem sempre é desejável ou possível.
Para estas situações podemos usar a função MAP.
Veja um relatório usando a função FILTRO e uma coluna auxiliar virtual usando a função MAP.
Considerando a tabela tFaturamento e a coluna empresa, passamos ela para a função Lambda que a utiliza como o parâmetro dados na função subtotal, verificando se o retorno da contagem é 1.
Como resultado temos:
Ou seja, esta função está verificando se estas linhas da tabela estão visíveis ou não.
Isso abre várias possibilidades, por exemplo outros cálculos e também esse que mostramos no exemplo, aonde temos um relatório com a função FILTRO.
Para isso usamos a seguinte função:
Veja mais sobre a função FILTRO (Veja mais aqui):
A função que usamos é:
=FILTRO(tFaturamento[[Série NF]:[Empresa]];
(tFaturamento[Vencimento]>=C4)*
(tFaturamento[Vencimento]<=E4)*
((tFaturamento[Cliente]=C5)+(SE(C5=””;tFaturamento[Cliente]=tFaturamento[Cliente])))*
(MAP(tFaturamento[Empresa];
LAMBDA(dados;SUBTOTAL(3;dados)))=1))
Não entrarei em detalhes sobre a função Filtro aqui, mas pode clicar no vídeo ao topo que demonstro do zero como fazer e também tem vários conteúdos sobre o mesmo aqui no blog, inclusive este.
Adicionando uma segmentação de dados na tabela de origem e aplicando o filtro nestas segmentações, temos então os dados filtrados pela função FILTRO e usando a coluna virtual criada com a função MAP para retornar os dados abaixo.
Download Função MAP no Excel
Clique no botão abaixo para realizar o download do arquivo de exemplo: