Çözüldü TOPLAÇARPIM Formülü Formül İçeren Hücreler

KarincaZZ

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba

Sayın Ömer BARAN ile çözüme ulaştırmıştık ancak aynı formül , Başvuruda Formül içeren tarihler olunca çalışmadı.
=TOPLA.ÇARPIM((ESAYIYSA(KAÇINCI($A$2:$A$32;Sayfa1!$A$2:$A$16;0)*KAÇINCI($A$2:$A$32;Sayfa2!$A$2:$A$16;0)))*($B$2:$B$32))

Formülünü ekli dosyaya aynen uyguladım

=TOPLA.ÇARPIM((ESAYIYSA(KAÇINCI($B$3:$B$33;Tatiller!$A$2:$A$18;0)*1)*($E$3:$E$33)))

$B$3:$B$33 hücrelerindeki tarihler formülle belirlenmiş. Mantık olarak çalışması lazım ama hesaplama yapmadı.

Amacım ekli dosyada, Hafta içi, Cumartesi, Pazar Resmi tatil günlerindeki toplam çalışmaları bulabilmek. Personel sayfası asıl dosyada çok daha fazla olacak. Dosyanın hızlı açılması için çözümü DİZİ Formüleriyle bulmak isterim. Toplam almak için koşul olarak ta birden çok DİZİ yi DİZİ ile karşılaştırarak sonuca göre işlem almak dosyanın geleceğindeki uygulamalar için önemlidir. Çünkü Dosyada kişinin çalışma toplamlarını alırken Resmi Tatil günleri, Yıllık izin günleri, Ücretsiz izin günleri Ayın çalışma günleri ve eklenecek diğer günlere göre kesişenler, kesişenlerden hariç olanlar gibi farklı koşullara göre toplamlar alınacaktır.

NOT: Hafta içi, Cumartesi, Pazar ve Resmi Tatil çalışmaları farklı formüller ile hesaplana bilmektedir. Amacım yukarıda belirtiğim gibi DİZİ formülleriyle çözüme ulaşabilmek. Çünkü karşılaştıracak birçok tarih listesi yer alacak.

Teşekkürler.
Esenlikler dilerim. İyi çalışmalar.
 

Ekli dosyalar

Selamlar,
Formülünüzde
=TOPLA.ÇARPIM((ESAYIYSA(KAÇINCI($B$3:$B$33;Tatiller!$A$2:$A$18;0)*1)*($E$3:$E$33)))
Tarihler ile ilgili problem YOK.
Yani,
(ESAYIYSA(KAÇINCI($B$3:$B$33;Tatiller!$A$2:$A$18;0)*1) kısmında problem YOK (*1 olmasa da olur)... Çalışacaktır...

Problem ise ($E$3:$E$33) kısmında.... Çünkü, bu aralıktaki değerler formülle gelmekte ve Hata durumunda ise ""(BOŞ) yazdırılmakta.. Bu durumda da çarpımlar hatalı olup, toplamları da hata verecektir.
O nedenle,
formülü

ya
=TOPLA.ÇARPIM(ESAYIYSA(KAÇINCI($B$3:$B$33;Tatiller!$A$2:$A$18;0))*EĞER($E$3:$E$33<>"";$E$3:$E$33;0))
şeklinde
Alternatif : =TOPLA.ÇARPIM((EĞERSAY(Tatiller!$A$2:$A$18;$B$3:$B$33)>0)*EĞER($E$3:$E$33<>"";$E$3:$E$33;0))

ya da
=TOPLA.ÇARPIM(ESAYIYSA(KAÇINCI($B$3:$B$33;Tatiller!$A$2:$A$18;0))*($E$3:$E$33<>"");$E$3:$E$33)
şeklinde yazıp deneyiniz...
Alternatif : =TOPLA.ÇARPIM((EĞERSAY(Tatiller!$A$2:$A$18;$B$3:$B$33)>0)*($E$3:$E$33<>"");$E$3:$E$33)

Ekleme : 19.11.2021 23:10
Mesajınıza tekrar baktım. İkilemde kaldım.
Belki de cevabı @Ömer BARAN dan talep ettiniz, ama, ben cevap yazmış oldum... Eğer böyleyse kusuruma bakmayın....
 
Moderatörün son düzenlenenleri:
Merhaba Sayın 52779

İlginiz için çok teşekkürler.

Cevabı Ömer BARAN dan beklediğim için değil, Sadece Ömer BARAN dan aldığım formül olduğunu belirtmek için yazdım.

Bu dizi formüllerini tam öğrendim diyorum, farklı durumlar ortaya çıkıyor, tekrar başa dönüyorum. Sıkışınca da sizlere danışıyorum.

Ben formüllerde "" yazsın deyince hücrede hiçbir şey olmuyor. Yani tamamen boş hücre gibi oluyor diye düşünüyordum hep. Boş ise hiç dikkate almaz, arada boşluk olsa dahi toplama gerçekleşir diye düşünüyordum. Cevabınızla bazı durumlarda öyle olmadığını da öğrenmiş oldum.

Tekrar teşekkür ederim.
Esenlikler dilerim. İyi çalışmalar.
 
Merhaba.

Dosyada
=TOPLA.ÇARPIM((HAFTANINGÜNÜ(KAYDIR($B$2;1;;GÜN(SERİAY($B$3;0)););2)<6)*DEĞİL(ESAYIYSA(KAÇINCI($B$3:$B$33;RTTL;0)))*($E$3:$E$33<>"")*($B$3:$B$33<>"");($E$3:$E$33))

Formülü 31 gün olan aylarda düzgün çalışıyor, Diğer aylarda hata #YOK hatası alıyorum. Hafta içi günlerdeki çalışmaları toplamak için kullandığım formül. Ayın tarihlerinin yazıldığı sütunda formülle belirleniyor. Ay 28 günse son üç satır, ay 30 günse son satır "" olarak belirleniyor. Gerçi bu durum içinde koşul olarak ($B$3:$B$33<>"") yazdım ancak hatadan kurtulamadım.

NOT: Her yönüyle DİZİ formülleri yada DİZİ kullanılan formüller şeklinde bir makalenizi bekliyorum.

Esenlikler dilerim. İyi çalışmalar.
 
@KarıncaZ

Örneğin Nisan ayı için, HAFTANINGÜNÜ kontrolü bölümünde kontrol edilen alandaki hücre sayısı 30,
formülün geri kalanında ise kontrol alanı 31 satır olunca HATA kaçınılmaz.
Birbiriyle çarparak toplamlarını alacağınız alanların aynı boyutta olması gerekir.

Bu nedenle; son cevaptaki formülde, hem KAÇINCI parantezi içinde tarihler için RTTL kontrolü,
hem B sütunu hem de E sütunu için yapılan dolu/boş kontrolünü de,
formülün baş tarafındaki KAYDIR($B$2;1;;GÜN(SERİAY($B$3;0)) ; ) gibi bir yapıyla kontrol ettirmeyi denediniz mi?
Böylece formülün tümünde, birbiriyle karşılaştırılan alanlar eşit boyutta olmuş olur.

Örneğin formülün son kısmındaki $E$3:$E$33 yerine KAYDIR($E$2;1;;GÜN(SERİAY($B$3;0)) ; ) kullanmak gibi.

.
 
Merhaba
Formülü şu şekilde değiştirdim ancak yine olmadı yazacaktım ancak size yazarken fark ettim, toplam alanını da KAYDIR ile değişken yapınca olay çözüldü.

=TOPLA.ÇARPIM(
(HAFTANINGÜNÜ(KAYDIR($B$2;1;;GÜN(SERİAY($B$3;0)));2)<6)*
(DEĞİL(ESAYIYSA(KAÇINCI(KAYDIR($B$2;1;;GÜN(SERİAY($B$3;0)));RTTL;0))))*
(KAYDIR($B$2;1;;GÜN(SERİAY($B$3;0)))<>"")*
(KAYDIR($E$2;1;;GÜN(SERİAY($B$3;0)))<>"");
(KAYDIR($E$2;1;;GÜN(SERİAY($B$3;0)))))

Yardımlarınız için çok teşekkürler Ömer BARAN ve 52779

Esenlikler dilerim. İyi çalışmalar.
 
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Formül Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
5
Üst