- LET atribui nomes aos resultados intermediários e melhora a clareza e o desempenho.
- O LAMBDA cria funções personalizadas e valida com uma chamada na célula.
- BYROW, BYCOL, MAP, SCAN, REDUCE e MAKEARRAY aplicam LAMBDA a matrizes.
- Exemplos prontos: subtotais, mapeamentos, geração cumulativa e matricial.
Ao trabalhar com dados no Excel, chega um ponto em que fórmulas repetidas e intervalos infinitos se tornam incontroláveis; é aí que entram em cena as funções LET e LAMBDA , duas ferramentas essenciais para criar cálculos limpos, reutilizáveis e de manutenção mais rápida.
Com essas funções, e com diversas funções matriciais modernas que dependem delas, você pode definir nomes intermediários, encapsular cálculos e aplicar transformações a matrizes como se estivesse percorrendo um loop; BYROW, BYCOL, MAP, SCAN, REDUCE e MAKEARRAY são a cereja do bolo, permitindo que você aplique uma função LAMBDA a linhas, colunas ou elementos de uma matriz de forma elegante e eficiente.
O que são LET e LAMBDA no Excel?
A função LAMBDA permite criar funções personalizadas usando a linguagem de fórmulas nativa do Excel , sem macros ou VBA: você define os parâmetros, escreve o cálculo e, se desejar, o chama com argumentos para obter um resultado instantâneo.
A função LET, por outro lado, é usada para atribuir nomes a resultados intermediários dentro da mesma fórmula , permitindo reutilizá-los várias vezes sem recalculá-los, o que aumenta a legibilidade e a eficiência em planilhas complexas.
Em torno da LAMBDA, surgiram funções que tratam matrizes como se fossem coleções a serem percorridas: BYROW (por linhas), BYCOL (por colunas), MAP (mapeia elementos), SCAN (acumula e retorna estados intermediários), REDUCE (retorna apenas o valor acumulado final) e MAKEARRAY (gera matrizes sob demanda).
Considere este conjunto como ferramentas que simulam loops e percursos em matrizes : você passa uma função LAMBDA com a transformação desejada e o Excel faz o resto, retornando vetores ou matrizes com os resultados.
O resultado é que você pode criar cálculos sofisticados sem recorrer a colunas auxiliares ou código externo; tudo está encapsulado em fórmulas puras , com menor risco de erros e melhor manutenção.
Como testar e definir um LAMBDA sem erros
Uma boa prática é construir e validar a função LAMBDA diretamente em uma célula antes de defini-la como uma função reutilizável: defina os parâmetros, escreva o cálculo e adicione a chamada de teste com os argumentos desejados no final.
Se você não fizer essa chamada de teste, é relativamente fácil encontrar o erro #CALC! em fórmulas incompletas; a chamada final força a avaliação do cálculo e confirma que a estrutura está correta.
A maneira mais clara de trabalhar é: LAMBDA(parâmetro1; parâmetro2; …; cálculo)(argumento1; argumento2; …) ; assim, em uma única célula você escreve a definição e sua execução para validar o resultado.
Por exemplo, para adicionar 1 a um número, você pode tentar: =LAMBDA(number; number + 1)(1). Esta expressão retorna o valor 2, o que confirma que a LAMBDA e seu chamado são bem planejados.
Após a verificação, você pode registrar essa função LAMBDA como uma função personalizada (com um nome) ou inseri-la em outras fórmulas e funções matriciais para resolver problemas mais complexos.
LET: sintaxe, argumentos e considerações

A sintaxe geral de LET é: =LET(nombre1; nombre_valor1; cálculo_o_nombre2; ); seu objetivo é nomeando resultados intermediários e usar esses nomes em um cálculo final.
Argumentos principais de LET: name1 (obrigatório) é o primeiro identificador que você atribui; ele deve começar com uma letra, não pode ser o resultado de uma fórmula e não pode entrar em conflito com a sintaxe de intervalo do Excel .
O argumento name_value1 (obrigatório) é o valor ou expressão que será associado a name1 ; dessa forma, você evita repetir o mesmo cálculo e melhora o desempenho caso vá reutilizá-lo.
O terceiro argumento, calculation_or_name2 (obrigatório), pode ser uma de duas coisas: o cálculo final que usa todos os nomes declarados ou um segundo nome a ser definido; se você decidir declarar um nome, também precisará fornecer value_name2 e calculation_or_name3.
`name_value2` (opcional) atribui um valor ao nome declarado na etapa anterior; se você continuar encadeando nomes, repita o padrão nome/valor até que o último argumento seja um cálculo.
Por fim, `calculation_or_name3` (opcional) pode ser o cálculo final ou um terceiro nome; lembre-se de que o último argumento de `LET` deve sempre ser um cálculo que retorne o resultado esperado.
Esse padrão escalável permite encadear definições de forma clara e evita a duplicação de expressões na mesma fórmula; em resumo, o LET simplifica, esclarece e agiliza planilhas complexas.
Funções matriciais modernas alavancando LAMBDA
Essas funções percorrem matrizes aplicando uma transformação definida com LAMBDA, comportando-se como se fossem iteradores; elas facilitam subtotais por linhas ou colunas , mapeamentos, totais cumulativos e a construção de matrizes personalizadas.
BYROW: Aplique um LAMBDA em cada linha
A função BYROW avalia uma função LAMBDA para cada linha no intervalo de entrada e retorna um vetor coluna com os resultados; ela é ideal para criar subtotais ou indicadores linha por linha sem colunas auxiliares.
Sua sintaxe é: =BYROW(rango; LAMBDA(fila; cálculo_por_fila)), onde o parâmetro fila representa a linha atual que a função está processando; o LAMBDA retorna um único valor por linha.
Exemplo prático: se sua matriz estiver em B2:D7 e você quer somar cada linha, em E2 escrever =BYROW(B2:D7; LAMBDA(fila; SUMA(fila))); você vai conseguir um vetor com a soma de cada linha, pronto para uso em análises ou gráficos.
BYCOL: aplicar um LAMBDA a cada coluna
BYCOL funciona de forma semelhante a BYROW, mas itera pelas colunas; retorna um vetor coluna com um resultado para cada coluna no intervalo de origem.
A sintaxe é: =BYCOL(rango; LAMBDA(columna; cálculo_por_columna)); o parâmetro coluna expõe a coluna atual para LAMBDA, que produz um valor por coluna.
Exemplo prático: com dados em B2:D7, lugar em B8 Fórmula =BYCOL(B2:D7; LAMBDA(columna; PROMEDIO(columna))); você vai conseguir um vetor com a média de cada coluna, útil como um resumo ou controle de qualidade.
MAKEARRAY: Cria matrizes calculadas
MAKEARRAY gera uma matriz do tamanho que você especificar, calculando cada elemento com uma função LAMBDA que recebe o índice da linha e o índice da coluna; em alguns ambientes em espanhol, ela pode ser interpretada como ARCHIVOMAKEARRAY.
Sua forma geral é: =MAKEARRAY(n_filas; n_columnas; LAMBDA(fila; columna; cálculo_por_posición)). Cada intersecção de linha/coluna passa pelo LAMBDA e retorna o valor desejado para essa coordenada.
Exemplo de identificador de posição: em qualquer célula, use =ARCHIVOMAKEARRAY(3; 2; LAMBDA(fila; col; -(fila&col))) para criar uma matriz de 3 linhas por 2 colunas onde cada elemento concatena sua linha e coluna (e é forçado a numerar com o sinal de menos).
Outro exemplo combinando diversas funções: =LET(arrPos; ARCHIVOMAKEARRAY(3; 2; LAMBDA(fila; col; -(fila&col))); arrPosF; COINCIDIR(arrPos; K.ESIMO.MENOR(arrPos; SECUENCIA(6))); INDICE(G8:G13; arrPosF)). Com esta construção, você gera posições, você obtém os 6 menores e você os mapeia em um intervalo com INDEX.
MAP: transformar elemento em elemento
A função MAP recebe uma ou mais matrizes e retorna outra do mesmo tamanho aplicando uma função LAMBDA a cada elemento; ela é perfeita para limpeza, normalização ou rótulos condicionais sem colunas auxiliares.
A sintaxe básica é: =MAP(matriz; LAMBDA(valor; transformación)); se você passar vários arrays, o LAMBDA receberá vários parâmetros, um por array; o resultado preserva dimensões da matriz de entrada.
Exemplo clássico de marcação de números pares e ímpares em A21:A26: =MAP($A$21:$A$26; LAMBDA(param1; SI(ES.PAR(param1); param1; "-"))). Assim, cada elemento é substituído por si mesmo se for par, ou por um hífen se não for; todo processamento é vetorial.
SCAN: acumulado com estados intermediários
A função SCAN percorre um array com uma função LAMBDA acumulativa e retorna todos os estados intermediários, não apenas o final; ela é ideal para totais acumulados, porcentagens cumulativas e cálculos que dependem do resultado anterior.
A estrutura é: =SCAN(valor_inicial; matriz; LAMBDA(acumulador; valor; nuevo_acumulado))Onde valor_inicial o acumulador começa, matriz é o intervalo a ser processado e o LAMBDA define a transição entre estados.
Para um jackpot clássico A31:A36ele escreve: =SCAN(0; A31:A36; LAMBDA(acum; param1; acum + param1)); você vai conseguir a sequência de somas parciais em um passo.
E se você quiser a proporção cumulativa, você pode combinar LET e SCAN: =LET(total; SUMA(A31:A36); SCAN(0; A31:A36; LAMBDA(acum; param1; (acum + param1))) / total). Aqui você primeiro calcula o total com LET e então você divide cada estado intermediário por esse total.
REDUZIR: o acumulado final
REDUCE funciona como SCAN, mas retorna apenas o último estado do acumulador; ou seja, reduz toda a matriz a um único valor aplicando a transformação definida por LAMBDA.
Seu padrão é: =REDUCE(valor_inicial; matriz; LAMBDA(acumulador; valor; nuevo_acumulado)); o valor final geralmente é uma soma, um produto, uma interseção lógica ou o resultado do processo no qual você está interessado.
Exemplo de soma final em execução em A1:A6: =REDUCE(0; A1:A6; LAMBDA(acum; param1; acum + param1)); em uma única expressão, você obtém a soma total sem expor etapas intermediárias.
Escritor apaixonado pelo mundo dos bytes e da tecnologia em geral. Adoro compartilhar meu conhecimento por meio da escrita, e é isso que farei neste blog, mostrar a vocês tudo o que há de mais interessante sobre gadgets, software, hardware, tendências tecnológicas e muito mais. Meu objetivo é ajudá-lo a navegar no mundo digital de uma forma simples e divertida.