Excel formülü: Tarihleri ​​haftanın gününe göre sayma -

Genel formül

=SUMPRODUCT(--(WEEKDAY(dates)=day_num))

Özet

Tarihleri ​​hafta içi günlere göre saymak için (yani Pazartesi, Salı, Çarşamba vb. Saymak), SUMPRODUCT işlevini WEEKDAY işleviyle birlikte kullanabilirsiniz. Gösterilen örnekte, F4'teki formül şöyledir:

=SUMPRODUCT(--(WEEKDAY(dates,2)=E4))

Not: "tarihler", B4: B15 olarak adlandırılan aralıktır.

Açıklama

Neden COUNTIF veya COUNTIF kullanmadığımızı merak ediyor olabilirsiniz. Bu işlevler bariz bir çözüm gibi görünüyor. Bununla birlikte, hafta içi değeri içeren bir yardımcı sütun eklemeden, EĞERSAY'ın bir tarih aralığında hafta günlerini sayması için bir ölçüt oluşturmanın bir yolu yoktur.

Bunun yerine, dizileri Control + Shift + Enter kullanmaya gerek kalmadan zarif bir şekilde işleyen çok yönlü SUMPRODUCT işlevini kullanıyoruz.

SUMPRODUCT'ü şu ifadeden oluşan tek bir argümanla kullanıyoruz:

--(WEEKDAY(dates,2)=E4)

Baştan sona çalışarak, WEEKDAY işlevi isteğe bağlı bağımsız değişken 2 ile yapılandırılır ve bu, onun Pazartesi-Pazar günleri için sırasıyla 1-7 sayılarını döndürmesine neden olur. Bu, günlerin sırayla E sütunundaki sayılarla sıralanmasını kolaylaştırır.

WEEKDAY, "tarihler" adlı aralıktaki her tarihi değerlendirir ve bir sayı döndürür. Sonuç şuna benzer bir dizidir:

(1;3;7;1;5;2;7;1;7;5;4;7)

WEEKDAY tarafından döndürülen sayılar daha sonra E4'teki 1 olan değerle karşılaştırılır:

(1;3;7;1;5;2;7;1;7;5;4;7)=1

Sonuç, DOĞRU / YANLIŞ değerler dizisidir.

(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE)

SUMPRODUCT yalnızca sayılarla çalışır (metin veya boolelerle değil), bu nedenle DOĞRU / YANLIŞ değerlerini bir ve sıfırlara zorlamak için çift negatif kullanırız:

(1;0;0;1;0;0;0;1;0;0;0;0)

SUMPRODUCT, işlenecek tek bir dizi ile öğeleri toplar ve sonucu döndürür, 3.

Boş tarihlerle uğraşmak

Tarihler listesinde boş hücreler varsa, yanlış sonuçlar alırsınız çünkü WEEKDAY işlevi tarih olmadığında bile bir sonuç döndürecektir. Boş hücreleri işlemek için formülü aşağıdaki gibi ayarlayabilirsiniz:

=SUMPRODUCT((WEEKDAY(dates,2)=E4)*(dates""))

İfadeyle çarpmak (tarihler ""), boş hücreleri iptal etmenin bir yoludur.

Ilginç makaleler...