Açıklayıcı Formüller

Anonim

Gereksinimler:

- Temel vba bilgisi
- Tabloların/adlandırılmış aralıkların kullanımı

Çalışma kitapları açık ve kapalı olarak çalışırken, bazen çalışma kitabına tekrar ziyaretler arasında aylarca veri yapısını ve formül kurulumunu hatırlamak zor olabilir.
Bu sorunu bu şekilde çözüyorum ve birkaç dakika içinde yapılan hesaplamalara ilişkin bir genel bakışa sahip olacağımdan emin oluyorum.
Bu örnekte, ikramiye hesaplama formülünün nasıl basitleştirilebileceğini göstereceğim.

Tablo veya UDF olmadan formül görünümü

formül:

=EĞER(TOPLA(C2/D2)=3;TOPLA((C2-D2)*0,03);EĞER(VE(TOPLA(C2/D2)>1;TOPLA(C2/D2)<3)=DOĞRU; TOPLA((C2-D2)*0,02);1)))

Bu formüldeki mantığı ilk bakışta çıkarmak zor olabilir.

Tablolu ve UDF'siz formül görünümü

formül:

=IF(TOPLA([@[Yıllık satışlar]]/[@Maaş])=3;TOPLA(([@[Yıllık satışlar]]-[@Maaş])*0,03);EĞER(VE(TOPLA)([ @[Yıllık satışlar]]/[@Maaş])>1;TOPLA([@[Yıllık satışlar]]/[@Maaş])<3)=TRUE;SUM(([@[Yıllık satışlar]]-[@Maaş ])*0,02);1)))

Hesaplamada kullanılan hücreler hakkında bilgi sahibi olduğunuz için tablolarla okumanız biraz daha kolaylaştı.

Tablo ve UDF ile formül görünümü

Bir modüle eklenen kullanıcı tanımlı işlev:

' Kısa ve açıklayıcı olmayan başlıklar yerine uzun ve açıklayıcı işlev başlıklarına sahip olmayı tercih edeceğim.
İşlev hesapla_salary_to_sale_ratio_and_return_bonus(yıllıkSatışlar Çift Olarak, Maaş Çift Olarak)

Dim maaş_to_sale_ratio Çift Olarak
Dim bonus_factor Çift Olarak
Dim return_bonus Çift Olarak

maaş_to_sale_ratio = yıllıkSatışlar / maaş

Vaka seçin maaş_to_sale_ratio
Durum 1'den 3'e
bonus_factor = 0.02
Vaka > 3
bonus_factor = 0.03
Durum Başka
bonus_factor = 0#
Seçimi Bitir

return_bonus = (yıllıkSales - maaş) * bonus_factor

hesapla_salary_to_sale_ratio_and_return_bonus = return_bonus

Bitiş İşlevi

fonksiyonun kullanımı

formül:=hesapla_salary_to_sale_ratio_and_return_bonus([@[Yıllık satışlar]];[@Maaş])Bu size ilk bakışta tam olarak ne olduğunu söyler ve ayrıntıları okumak için her zaman kodun daha derinlerine inebilirsiniz. Ekte, üç senaryoyu da gösteren bir dosya bulunmaktadır.