Excel formülü: Benzersiz tarihleri ​​sayma -

İçindekiler

Genel formül

=COUNT(UNIQUE(date))

Özet

Benzersiz tarihleri ​​(örnekte "ticaret günleri") saymak için, EĞERSAY işlevini COUNT işleviyle veya EĞERSAY işlevine dayalı bir formülle kullanabilirsiniz. Gösterilen örnekte, G8 hücresindeki formül şudur:

=COUNT(UNIQUE(date))

nerede tarih adlı aralık B5 geçerli: B16.

Açıklama

Geleneksel olarak, benzersiz öğeleri bir Excel formülüyle saymak zor bir sorundu çünkü özel bir benzersiz işlev mevcut değildi. Ancak, dinamik diziler Excel 365'e UNIQUE dahil birkaç yeni işlevle birlikte eklendiğinde bu durum değişti.

Not: Excel'in eski sürümlerinde, benzersiz öğeleri aşağıda açıklandığı gibi EĞERSAY işlevi veya SIKLIK işlevi ile sayabilirsiniz.

Gösterilen örnekte, tablodaki her satır bir hisse senedi alım satımını temsil etmektedir. Bir tarih, birden fazla ticaret yapılır. Hedef, ticaret günlerini saymaktır - bir tür ticaretin gerçekleştiği benzersiz tarihlerin sayısı. G8 hücresindeki formül:

=COUNT(UNIQUE(date))

Baştan sona çalışarak, UNIQUE işlevi, "tarih" adlı aralıktan benzersiz tarihlerin bir listesini çıkarmak için kullanılır:

UNIQUE(date) // extract unique values

Sonuç şuna benzer 5 sayı içeren bir dizidir:

(44105;44109;44111;44113;44116)

Her sayı, tarih biçimlendirmesi olmayan bir Excel tarihini temsil eder. 5 tarih 1-Ekim-20, 5-Ekim-20, 7-Ekim-20, 9-Ekim-20 ve 12-Ekim-20'dir.

Bu dizi doğrudan COUNT işlevine gönderilir:

=COUNT((44105;44109;44111;44113;44116)) // returns 5

Bu, nihai sonuç olarak bir sayısal değer sayısı olan 5'i döndürür.

Not: COUNT işlevi sayısal değerleri sayarken COUNTA işlevi hem sayısal hem de metin değerlerini sayar. Duruma bağlı olarak, birini veya diğerini kullanmak mantıklı olabilir. Bu durumda, tarihler sayısal olduğundan, COUNT kullanırız.

COUNTIF ile

Excel'in eski bir sürümünde, aşağıdaki gibi bir formülle benzersiz tarihleri ​​saymak için COUNTIF işlevini kullanabilirsiniz:

=SUMPRODUCT(1/COUNTIF(date,date))

Baştan sona çalışarak, EĞERSAY, listedeki her tarih için bir sayı içeren bir dizi döndürür:

COUNTIF(date,date) // returns (2;2;3;3;3;2;2;2;2;3;3;3)

Bu noktada elimizde:

=SUMPRODUCT(1/(2;2;3;3;3;2;2;2;2;3;3;3))

1 bu diziye bölündükten sonra, bir kesirli değerler dizisi elde ederiz:

(0.5;0.5;0.333333333333333;0.333333333333333;0.333333333333333;0.5;0.5;0.5;0.5;0.333333333333333;0.333333333333333;0.333333333333333)

Bu dizi doğrudan SUMPRODUCT işlevi ile sağlanır. SUMPRODUCT daha sonra dizideki öğeleri toplar ve toplam 5'i döndürür.

FREQUENCY ile

Büyük bir veri kümesiyle çalışıyorsanız, yukarıdaki EĞERSAY formülüyle performans sorunları yaşayabilirsiniz. Bu durumda, FREQUENCY işlevine göre bir dizi formülüne geçebilirsiniz:

(=SUM(--(FREQUENCY(date,date)>0)))

Not: Bu bir dizi formülüdür ve Excel 365 dışında control + shift + enter ile girilmelidir.

Bu formül, yukarıdaki EĞERSAY sürümünden daha hızlı hesaplar, ancak yalnızca sayısal değerlerle çalışır. Daha fazla ayrıntı için bu makaleye bakın.

Ilginç makaleler...