terça-feira, 18 de setembro de 2012

A Função Somase

Boa noite, leitor.

Hoje, vamos mostrar como usar uma das funções-padrão do Excel, que com certeza é muito útil.
Ao final, apresento uma função que criei a fim de tornar uma de suas aplicações mais práticas e eficientes.

1) A função Somase

Para aqueles que não conhecem, a função Somase permite ao usuário realizar a soma de um conjunto de valores tomando por base o uso de uma chave de referência. Numa tabela, podemos usar uma coluna com nomes para buscar valores e então realizar a soma dos valores que corresponderem positivamente à chave.

O formato da função é o que segue:

=Somase(Intervalo_de_Referência, Chave, Intervalo_de_Soma)

Onde:
Intervalo_de_Referência = Intervalo onde devem ser buscadas as chaves;
Chave = É a chave a ser comparada com os itens indicados na primeira área;
Intervalo_de_Soma = Intervalo contendo os valores a serem somados caso o item seja igual à chave.

Vamos à um exemplo. Segue abaixo uma tabela com valores e várias chaves de identificação para custos unitários:


Suponha que desejamos saber o total do custo unitário em cada mês. Podemos usar a função Somase(Intervalo_Mês, Mês_Desejado, Valores_Somados), da seguinte forma:


Perceba que o total está consistido, não houve perda de informação. Podemos fazer o mesmo para encontrar o total por Produto ou por Comprador, conforme imagens abaixo:



Mas e se quiséssemos encontrar uma combinação específica, como o total gasto pelo Marcelo na compra de Arroz, em todos os meses? Ou quanto o Luiz gastou em Feijão no período? Podemos fazer uma chave de busca para encontrar os valores desejados, conforme abaixo:


Usando a chave de busca, podemos encontrar o que desejamos, remontando a chave dentro da função Somase:



2) Casos específicos com o Somase

Em alguns casos, o uso de chaves de busca pode gerar alguns inconvenientes. Segue novo exemplo de tabela com dois códigos de referência genéricos:


Da mesma forma que no exemplo anterior, podemos calcular o total de um único código fazendo uso direto da função Somase:


Mas e no caso de montarmos chaves? Uma vez que estamos usando estes novos códigos, algo curioso pode acontecer:


Perceba que a combinação dos códigos gerou algumas chaves iguais mesmo com componentes diferentes. Isto irá afetar o resultado quando queremos a soma das combinações, retornando resultados iguais para as chaves que deveriam ser distintas:


Podemos resolver este problema utilizando um separador entre os códigos, por exemplo um "-". Assim, não teremos problemas com a ambiguidade das palavras (chaves) formadas:


Basta, agora, adicionar os separadores às chaves dentro da função Somase:



3) A função "Chave"


Muito embora seja razoável incluir um separador entre os itens de uma chave, o trabalho de adicionar manualmente um "-" entre as strings pode ser bastante maçante caso repetido várias vezes. Além disso, perde-se muito tempo. Criei então a função abaixo para ganhar eficiência e uniformizar o trabalho de criar chaves de busca:

Function Chave(ByVal Space As Range)


'
'
' Função para gerar uma chave com conteúdos das células separados por "-"
' Para seleções múltiplas (mais de uma área - segurando Ctrl durante a seleção),
' usar um parêntesis adicional, indicando que todas as áreas devem ser associadas
' à uma única varíavel range, acessada através de rng.Areas(n), onde n é o
' índice da área. Ex.:
' =Chave(Área) ou =Chave((Múltiplas_Áreas))
'
'
'

    Dim rng As Range, str As String
   
    str = ""
      
    For Each rng In Space.Areas
        For Each cell In rng
            str = str & cell.Value & "-"
        Next
    Next
   
    Chave = Left(str, Len(str) - 1)
   
End Function

O trabalho de criar as chaves com o separador incluído fica então muito mais rápido, fazendo:


Pode-se usá-la até mesmo dentro da função Somase, para gerar a chave de referência:


Esta função possui apenas uma particularidade: No caso de usarmos como parâmetro uma área com mais de uma área de seleção não contíguas (por exemplo, segurando Ctrl e clicando em várias células), deve-se usar um par de parênteses extra para indicar à função que todas as células selecionadas devem ser consideradas como um único intervalo, conforme abaixo:



Caso isto não seja feito, a célula apresentará um erro!

Bom, é isso. Espero que tenham gostado!

Para um próximo tópico, vou abordar como tornar esta e outras funções "parte" do Excel, inserindo-as num Suplemento. Desta forma, elas estarão associadas por padrão ao Excel instalado na máquina e poderão ser utilizadas sem a necessidade de trabalhar com o código em cada arquivo criado, ou ficarmos "Habilitando Macros" à cada novo uso do arquivo (supondo que as restrições de uso de macros estejam habilitadas na máquina).

Até a próxima!

Um comentário:

  1. Gostei muito desta postagem! Ficou bem claro e objetivo! Parabéns! TE AMO! beijo

    ResponderExcluir