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.