24.08.2020 Views

Programando o Excel ® Vba Para Leigos - 2ª Ed 2013 NoDRM (1)

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 20: Como Criar Funções de Planilha — e Viver para Contar 339

Select Case Sales

Case 0 to 9999.99: Commission2=Sales*Tier1

Case 10000 To 19999.99: Commission2=Sales*Tier2

Case 20000 to 39999.99: Commission2=Sales*Tier3

Case Is>=40000: Commission2=Sales*Tier4

End Select

Commission2=Commission2+(Commission2*Years/100)

Commission2=Round(Commission2, 2)

End Function

Eu apenas adicionei o segundo argumento (Years) à declaração Function

(Função) e incluí um cálculo adicional, que ajusta a comissão antes de

encerrar a função. Esse cálculo multiplica a comissão original pelo

número de anos de serviços, divide por 100 e, depois, acrescenta o

resultado ao cálculo original.

Eis um exemplo de como você pode escrever uma fórmula usando esta

função (ela supõe que a quantia de vendas está na célula A1; a célula B1

especifica o número de anos que o vendedor trabalhou).

=Commission2(A1;B1)

Uma função com um argumento faixa

Usar uma faixa de planilha como um argumento não é tão complicado; o

Excel cuida dos detalhes por trás.

Suponha que você queira calcular a média dos cinco maiores valores

em uma faixa chamada Data (Dados). O Excel não tem uma função que

possa fazer isso, assim, provavelmente você escreveria uma fórmula:

=(MÁXIMO(Data;1)+MÁXIMO(Data;2)+MÁXIMO(Data;3)+

MÁXIMO(Data;4)+MÁXIMO(Data;5))/5

Esta fórmula usa a função Máximo do Excel, a qual retorna o valor mais

alto em uma faixa. A fórmula adiciona os cinco maiores valores na faixa

chamada Data e, depois, divide o resultado por 5. A fórmula funciona

bem, mas é bem pesada. E se você decidir que precisa computar a

média dos seis maiores valores? Precisaria reescrever a fórmula — e

garantir que atualizaria todas as cópias da fórmula.

Não seria mais fácil se o Excel tivesse uma função chamada TopAvg

(média mais alta)? Assim, você computaria a média usando a seguinte

(inexistente) função:

=TopAvg(Data;5)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!