Funções MAP, REDUCE e SCAN no Excel: as Auxiliares da LAMBDA Explicadas com Exemplos

MAP, REDUCE e SCAN são funções do Excel 365 que aplicam uma LAMBDA a cada item de uma matriz: a MAP transforma cada item mantendo o formato original, a REDUCE acumula tudo em um único resultado final, e a SCAN mostra o acumulado passo a passo. As três mantêm o nome em inglês mesmo no Excel em português — não existe “MAPA”, “REDUZIR” ou “VARREDURA” como nome oficial dessas funções.

Este artigo é o complemento avançado do nosso guia da função LAMBDA. Lá mostramos como empacotar um cálculo em uma função personalizada com nome próprio; aqui, o foco é diferente: como usar essa LAMBDA junto com as três funções auxiliares específicas para ela, aplicando o cálculo a uma matriz inteira de uma vez, sem precisar nomear nada no Gerenciador de Nomes.

Você já criou uma LAMBDA simples e depois precisou aplicá-la a uma coluna inteira, célula por célula, copiando e colando a fórmula em cada linha — ou pior, foi atrás de uma função pronta do Excel para acumular um resultado passo a passo (tipo um saldo correndo) e não achou nada que servisse exatamente?

Sem essas três auxiliares, aplicar uma lógica personalizada a um intervalo inteiro de uma vez exige gambiarra — arrastar fórmula célula por célula, ou criar colunas auxiliares só para guardar um acumulado intermediário.

DOMINE EXCEL COMIGO

QUERO APRENDER EXCEL

Neste artigo iremos mostrar a sintaxe exata de MAP, REDUCE e SCAN, a diferença prática entre as três, e um exemplo completo de cada uma.

Visão geral: o que cada função faz

Função O que faz Retorna
MAP Aplica um cálculo a cada item de uma (ou mais) matriz Uma matriz do mesmo tamanho da original, com um resultado transformado por posição
REDUCE Aplica um cálculo acumulando um único resultado, item por item Um único valor final (o acumulado)
SCAN Igual ao REDUCE, mas mostra o acumulado em cada etapa Uma matriz do mesmo tamanho da original, com o acumulado até aquele ponto

A função MAP

A sintaxe da MAP é:

=MAP(matriz1; [matriz2; …]; LAMBDA(parâmetro1; [parâmetro2; …]; cálculo))

A MAP percorre a matriz (ou matrizes) informadas e aplica a LAMBDA a cada posição correspondente, devolvendo um resultado do mesmo tamanho e formato da matriz original. Considere a tabela de vendas mensais abaixo:

Mês Vendas
Janeiro 1.200
Fevereiro 1.500
Março 980
Abril 1.750

Para calcular o valor de cada mês já com 8% de imposto aplicado, sem criar uma coluna auxiliar de cálculo intermediário, a fórmula fica:

=MAP(B2:B5; LAMBDA(venda; venda*1,08))

O resultado derrama uma nova coluna, do mesmo tamanho da original, já com o imposto aplicado em cada linha:

Mês Vendas Vendas com imposto (MAP)
Janeiro 1.200 1.296
Fevereiro 1.500 1.620
Março 980 1.058,40
Abril 1.750 1.890

A MAP também aceita mais de uma matriz de entrada — nesse caso, a LAMBDA precisa ter um parâmetro para cada matriz. Por exemplo, =MAP(B2:B5; C2:C5; LAMBDA(venda; meta; venda-meta)) calcularia, linha a linha, a diferença entre venda realizada e meta, sem nenhuma coluna auxiliar.

A função REDUCE

A sintaxe da REDUCE é:

=REDUCE([valor_inicial]; matriz; LAMBDA(acumulador; valor; cálculo))

  • valor_inicial (opcional): o ponto de partida do acumulador — por exemplo, 0 para uma soma
  • matriz: os dados a percorrer
  • LAMBDA: recebe dois parâmetros fixos — o acumulador (o resultado até aquele ponto) e o valor (o item atual da matriz) — e devolve o novo acumulador

Um exemplo prático: somar as vendas, mas dobrando o valor de cada mês antes de acumular (por exemplo, para simular um cenário de crescimento hipotético):

=REDUCE(0; B2:B5; LAMBDA(acumulador; valor; acumulador+valor*2))

O resultado é um único número: 0 (valor inicial) mais o dobro de cada venda somado sequencialmente — nesse exemplo, 10.860 (a soma de 2.400, 3.000, 1.960 e 3.500, o dobro de 1.200, 1.500, 980 e 1.750). Diferente da MAP, a REDUCE sempre devolve um valor só, não uma matriz.

A função SCAN

A sintaxe da SCAN é idêntica à da REDUCE — a diferença está só no resultado:

=SCAN([valor_inicial]; matriz; LAMBDA(acumulador; valor; cálculo))

Enquanto a REDUCE devolve só o total final, a SCAN devolve o acumulado em cada etapa, como um saldo corrente. Para ver o total acumulado de vendas mês a mês (útil para um gráfico de evolução acumulada):

=SCAN(0; B2:B5; LAMBDA(acumulador; valor; acumulador+valor))

O resultado derrama uma coluna do mesmo tamanho da original, mostrando o total acumulado até cada mês:

Mês Vendas Acumulado (SCAN)
Janeiro 1.200 1.200
Fevereiro 1.500 2.700
Março 980 3.680
Abril 1.750 5.430

Repare que o último valor da coluna acumulada da SCAN (5.430) é exatamente o que a REDUCE devolveria sozinha, se você só precisasse do total final sem ver o passo a passo.

Quando usar cada uma

Use a MAP quando o resultado que você precisa é do mesmo formato da entrada — uma transformação linha a linha, mantendo uma tabela com o mesmo número de linhas. Use a REDUCE quando só interessa o resultado final consolidado, sem precisar ver os passos intermediários. Use a SCAN quando o histórico do acumulado importa tanto quanto o total — por exemplo, para alimentar um gráfico de linha mostrando a evolução, e não só o número final.

Combinando as três com LAMBDA nomeada

Assim como qualquer LAMBDA, a fórmula usada dentro de MAP, REDUCE ou SCAN não precisa ser nomeada no Gerenciador de Nomes — ela pode existir só “descartável”, dentro daquela fórmula específica, como nos exemplos acima. Mas se a mesma lógica de cálculo for reaproveitada em várias fórmulas diferentes da planilha, vale a pena nomear a LAMBDA primeiro (como mostramos no artigo sobre a função LAMBDA) e só então passar o nome dela como argumento de MAP, REDUCE ou SCAN.

Disponibilidade

MAP, REDUCE e SCAN estão disponíveis no Microsoft 365 (Windows e Mac) e no Excel para a Web, com assinatura ativa. Não estão disponíveis em versões compradas avulsas como Excel 2021, 2019 ou anteriores. No Google Sheets, existe a função MAP com comportamento parecido, mas REDUCE e SCAN não têm equivalente direto até o momento.

Erros comuns ao usar MAP, REDUCE e SCAN

Um erro frequente é esquecer que a LAMBDA dentro de REDUCE e SCAN precisa ter exatamente dois parâmetros, na ordem acumulador e depois valor — invertendo a ordem, o cálculo sai errado silenciosamente, sem erro visível do Excel. Outro erro comum é tentar usar essas funções dentro de uma Tabela formatada (Ctrl+T): fórmulas de matriz dinâmica que derramam, como MAP e SCAN, geram erro #DERRAMAR! dentro de Tabelas, porque Tabelas não suportam resultado derramado — a solução é colocar a fórmula fora da Tabela, na grade comum da planilha.

Perguntas frequentes

MAP, REDUCE e SCAN são funções nomeadas em português no Excel, tipo AGRUPARPOR e CLASSIFICAR?

Não. Ao contrário de várias outras funções de matriz dinâmica que foram traduzidas (FILTRO, CLASSIFICAR, SEQUÊNCIA, ÚNICO), as funções auxiliares da LAMBDA — MAP, REDUCE e SCAN — mantêm o nome original em inglês mesmo no Excel configurado em português. Você digita exatamente =MAP(…), =REDUCE(…) e =SCAN(…).

Preciso saber usar a função LAMBDA antes de usar MAP, REDUCE ou SCAN?

Sim, pelo menos o básico. As três funções recebem uma LAMBDA como último argumento — é essa LAMBDA que define o cálculo aplicado a cada item da matriz. Se você nunca usou LAMBDA, vale conferir primeiro nosso guia da função LAMBDA no Excel antes de avançar para as auxiliares.

Qual a diferença prática entre usar REDUCE e simplesmente somar com SOMA?

Para uma soma simples, SOMA continua sendo mais direto. O REDUCE vale a pena quando o cálculo acumulado é mais complexo que uma soma — por exemplo, aplicar uma fórmula diferente a cada item antes de acumular, ou construir um texto concatenado condicionalmente — situações em que uma função pronta do Excel não dá conta sozinha.

Compartilhe ou Comente

Se você curtiu esse artigo aonde mostramos como usar MAP, REDUCE e SCAN como auxiliares da função LAMBDA no Excel, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.

Você já tinha ouvido falar dessas três funções antes? Qual delas parece mais útil pra sua planilha agora — transformar uma coluna inteira com MAP, ou acompanhar um acumulado com SCAN? Conta para nós nos comentários!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *