Formule esplicative

Anonim

Requisiti:

- Conoscenza di base di vba
- Utilizzo di tabelle/intervalli denominati

Quando si lavora con le cartelle di lavoro attivate e disattivate, a volte mesi tra le rivisitazioni della cartella di lavoro può essere difficile ricordare la struttura dei dati e l'impostazione della formula.
È così che risolvo questo problema e mi assicuro che entro pochi minuti avrò una panoramica dei calcoli eseguiti.
In questo esempio mostrerò come semplificare una formula per il calcolo dei bonus.

Aspetto della formula senza tabella o UDF

Formula:

=SE(SOMMA(C2/D2)=3;SOMMA((C2-D2)*0,03);SE(E(SOMMA(C2/D2)>1;SOMMA(C2/D2)<3)=VERO; SOMMA((C2-D2)*0,02);1)))

La logica in questa formula può essere difficile da estrarre a prima vista.

Aspetto della formula con tabella e senza UDF

Formula:

=SE(SOMMA([@[Vendite annuali]]/[@Salario])=3;SOMMA(([@[Vendite annuali]]-[@Salario])*0,03);SE(E(SOMMA([ @[Vendite annuali]]/[@Salary])>1;SUM([@[Salary]]/[@Salary])<3)=TRUE;SUM(([@[Salary]]-[@Salary ])*0,02);1)))

Con le tabelle è diventato un po' più facile da leggere poiché sei informato delle celle utilizzate nel calcolo

Aspetto della formula con tabella e UDF

Funzione definita dall'utente inserita in un modulo:

'Preferirò titoli di funzione lunghi e descrittivi piuttosto che titoli brevi e non descrittivi
Funzione calcola_salary_to_sale_ratio_and_return_bonus(yearlySales As Double, stipendio As Double) As Double

Dim salary_to_sale_ratio come doppio
Dim bonus_factor come doppio
Dim return_bonus come doppio

salary_to_sale_ratio = yearlySales/stipendio

Seleziona caso salary_to_sale_ratio
Caso da 1 a 3
fattore_bonus = 0,02
Il caso è > 3
fattore_bonus = 0,03
Caso Altro
fattore_bonus = 0#
Fine selezione

return_bonus = (annualiVendite - stipendio) * bonus_factor

calcola_salary_to_sale_ratio_and_return_bonus = return_bonus

Fine funzione

Uso della funzione

Formula:=calculate_salary_to_sale_ratio_and_return_bonus([@[vendite annuali]];[@salario])Questo ti dice esattamente cosa sta succedendo a prima vista e puoi sempre approfondire il codice per leggere le specifiche. In allegato è un file che dimostra tutti e tre gli scenari