A função SCAN no Excel tem por finalidade incrementar dados realizando o cálculo item a item de todos os registros na matriz.
Detalhes da função SCAN Excel
Digitalizar uma matriz aplicando um LAMBDA a cada valor e retorna uma matriz que tem cada valor intermediário.
Sintaxe: =SCAN ([valor_ inicial], matriz, lambda(acumulador, valor))
Parâmetros:
- [valor_inicial]: Definir o valor inicial para o acumulador.
- matriz: Uma matriz a ser escaneada.
- lambda: Uma LAMBDA que é chamada para digitalizar a matriz. A LAMBDA toma dois parâmetros:
- acumulador: O valor foi totalizado e devolvido como resultado final.
- valor: O cálculo aplicado a cada elemento da matriz.
Erro: Fornecer uma função LAMBDA inválida ou um número incorreto de parâmetros devolvendo um #VALUE! erro chamado “Parâmetros Incorretos”.
Exemplo da Função SCAN no Excel
Para entendermos melhor veja este exemplo simples da função.
Temos a lista abaixo com as letras e desejamos juntar incrementalmente elas linha a linha.
Para isso usamos a função: =SCAN(“”;C25:C29;LAMBDA(a;b;a&b))
Nela estamos passando que deve começar vazio e em seguida passamos a matriz com a lista de dados e no lambda fazemos a união dos dados passando a concatenação de a&b, ou seja o parâmetro vazio e o parâmetro que está sendo passado item a item.
Desta forma temos o resultado abaixo aonde estão unidos os itens da lista item a item.
Novo Exemplo SCAN Excel
No exemplo abaixo temos uma base de relatório aonde temos os aluguéis de equipamentos de uma empresa de aluguel.
Veja neste link um produto para aluguel de equipamentos em Excel:
Planilha de Venda de Aluguel de Equipamentos
O objetivo neste exemplo é realizarmos várias análises de dados como abaixo.
Na primeira coluna usamos a função:
=CLASSIFICAR(ÚNICO(FIMMÊS(ÚNICO(Base!F8:F148);-1))+1)
A função acima retorna a data inicial a partir de uma lista, sendo o dia 1 de cada mês.
Para a coluna Data final nós usamos a função MAP, nela temos a aplicação da função FIMMÊS para cada um dos itens da lista.
A função utilizada foi:
=MAP(B5#;LAMBDA(a;FIMMÊS(a;0)))
Com isso temos a data final de cada uma das datas da coluna inicial.
Em seguida temos a coluna Valor, aonde realizamos a soma condicional das datas entre a data inicial e final:
=SOMASES(Base!J8:J148;Base!F8:F148;”>=”&B5#;Base!F8:F148;”<=”&C5#)
Veja que foram passados como parâmetros os itens das duas listas passando # no final para entender que se trata de uma matriz dinâmica.
Na coluna seguinte temos o valor de soma acumulada, aonde será realizada uma soma acumulada item a item de cada um dos valores.
A função SCAN realiza a soma acumulada item a item como pode ver no exemplo.
=SCAN(0;D5#;LAMBDA(a;b;a+b))
Assim, temos a soma acumulada como vemos baixo.
Em seguida aplicamos novamente a função SCAN, mas agora para realizar uma média acumulada dos itens, para termos a média de faturamento mensal.
=SCAN(0;D5#;LAMBDA(a;b;a+b))/SCAN(0;D5#;LAMBDA(a;b;a+1))
Note que temos o cálculo acumulado para a soma e também para a contagem que usamos para a divisão.
Para realizar o cálculo do % Total Geral temos a soma acumulada dividida pelo total da coluna de valor.
=SCAN(0;D5#;LAMBDA(a;b;a+b))/SOMA(D5#)
Por fim temos uma coluna aonde iremos usar a diferença entre mês anterior e o mês atual.
Para isso usamos o cálculo sendo realizado usando DESLOC e fazendo esta diferença à partir da matriz dinâmica.
=SEERRO(D5#-DESLOC(D5#;-1;);0)
Por fim temos os cálculos prontos como vemos abaixo, lembrando que foram feitos de forma dinâmica e ao alterar qualquer informação na base, os dados serão também afetados no resumo acumulado.
Download Planilha Exemplo Função SCAN
Clique no botão abaixo para realizar o download do arquivo de exemplo: