Bir aralıktaki farklı değerlerin sayısı nasıl sayılır?


32

Filtreler vb. Kullanılarak organize edilmiş geniş bir tabloya sahibim. Belirli sütunların altına, bu sütundaki farklı değerlerin sayısını içeren bir özet eklemek istiyorum.

İşlev yok =COUNTDISTINCT(A2:A100) peki ne yapabilirim? (Excel 2003)

Cevaplarını tam olarak kullanamıyorum bu benzer soru çünkü tabloyu veya filtrelemeyi değiştirmek istemiyorum. İhtiyacım var ilave çalışma sayfasında değişiklik .

Yanıtlar:


31
=SUMPRODUCT((A2:A100 <> "")/COUNTIF(A2:A100,A2:A100 & ""))

Bir dizi formülü kullanmak zorunda kalmadan bunu yapacağız.


4
Bu nasıl / neden işe yarıyor ???
RBarryYoung

4
@RBarryYoung, SUMPRODUCT, bir olmadan bir Array işlevi gibi çalışır. Burada kullanılandan çok daha fazlasını yapabiliyor olsa da, burada sadece bir sütunun her bir örneğini kontrol ediyor ve sütunda kaç yineleme olduğuna bağlı olarak her bir farklı değer için ölçeklenmiş bir değer ortaya çıkıyor. Yani iki 'a' örneği olsaydı, 1 elde etmek için 1/2 ve 1/2 eklerdi. Böylece, her farklı değer için, toplamı bir tane ekleyeceksiniz.
Lance Roberts

1
Bu benim başımın derde girdiği kısım: " sütunda kaç yineleme olduğuna bağlı olarak her bir değer için ölçeklendirilmiş bir değer bulunur. "Bunu anlarsam, SUMPRODUCT etkin bir döngü uygular. for each [i] in A2:A100 DO:{ sum += (([i]<>"")/COUNTIF(A2:A100,[i])) }, sağ? Hem koşullu hem de 2. COUNTIF parametresini nasıl numaralandırdığını bildiğim için biraz sorun yaşıyorum, ancak değil 1. COUNTIF parametresi? Bu DWIM-magic, MS tarafından herhangi bir yerde belgeleniyor mu / açıklanıyor mu? Bunları kasıtlı olarak nasıl yazacağınızı bilmek güzel olurdu.
RBarryYoung

1
Evet, anladınız, normalde tek bir değerin ne olacağı için bir dizi yineliyor, tüm parametrelerini çarpıyor (bu durumda sadece 1 olan), sonra yinelemeleri ekliyor. Hepsini aç Hepsini kapa Özet Çok karmaşık hale gelebilir, ancak Excel'in en kullanışlı işlevlerinden biridir, değişmez mucizeler yapabilir.
Lance Roberts

4
Giriş boş girişler içeriyorsa bu başarısız olur. Gösterildiği gibi kolay düzeltme Youtube bu: =SUMPRODUCT((A2:A100<>"")/COUNTIF(A2:A100,A2:A100&"")). Bu sağlar COUNTIF boş satırlar için asla 0 döndürmez, DIV/0 hata.
cfi

7

Bir ... buldum burada çözüm Bunu çözmek için inanılmaz bir dolambaçlı yol gibi görünüyor. Ama hey, işe yarıyor ...

= SUM (IF (COUNTIF (A2: A100, A2: A100) = 0, "", 1 / COUNTIF (A2: A100, A2: A100)))

ve sonra Ctrl + vardiya + Girmek . Sadece basarak Girmek yanlış sonuç verecektir.


Diğer cevapları görmeyi çok isterim! Bunu çözmek için bundan daha iyi bir yolu var mı?
Torben Gundtofte-Bruun

1
Hayır, en iyi yol bu. Orada neden bir IF olduğundan emin değilim. Girilen = SUM (1 / COUNTIF (A2: A100, A2: A100)) dizisini kullanabilirsiniz.
dkusleika

2
@dkusleika IF, sıfır hatayla bölünmeyi önlemek için var gibi görünüyor. Yukarıya bağlı sayfada belirtildiği gibi, aralık boş hücreler içeriyorsa bu gereklidir, aksi takdirde IF'yi dışarıda bırakabilirsiniz.
Bavi_H


1

Bu makale bunu metin değerleri için gösterir:

=SUM(IF(FREQUENCY(IF(LEN(C3:C25)>0,MATCH(C3:C25,C3:C25,0),""), IF(LEN(C3:C25)>0,MATCH(C3:C25,C3:C25,0),""))>0,1))

ve bu sayısal değerler için:

=SUM(IF(FREQUENCY(C3:C25, C3:C25)>0,1))

Bu makale benzer formülleri gösterir, ancak filtreleri kullanan bir yöntemi de gösterir.

Bir filtre kullanarak benzersiz değerlerin sayısını sayın

Bir veri sütundan benzersiz değerleri ayıklamak ve yeni bir yere yapıştırmak için Gelişmiş Filtreyi kullanabilirsiniz. Ardından, yeni aralıktaki öğelerin sayısını saymak için ROWS işlevini kullanabilirsiniz.

  1. Sütundaki ilk satırın bir sütun başlığına sahip olduğundan emin olun.
  2. Veri menüsünde, Filtre'nin üzerine gelin ve sonra Gelişmiş Filtre'yi tıklatın.
  3. Gelişmiş Filtre iletişim kutusunda Başka bir konuma kopyala'yı tıklatın.
  4. Saymakta olduğunuz aralık önceden seçilmemişse, Liste aralığı kutusundaki tüm bilgileri silin ve ardından verilerinizi içeren sütunu (veya aralığı seçin) tıklatın.
  5. Kopyala kutusunda, kutudaki bilgileri silin veya kutuya tıklayın ve ardından benzersiz değerleri kopyalamak istediğiniz boş bir sütuna tıklayın.
  6. Yalnızca benzersiz kayıtlar onay kutusunu seçin ve Tamam'ı tıklatın.

    Seçilen aralıktaki benzersiz değerler yeni sütuna kopyalanır.

  7. Aralıktaki son hücrenin altındaki boş hücrede, ROWS işlevine girin. Bağımsız değişken olarak kopyaladığınız benzersiz değerler aralığını kullanın. Örneğin, benzersiz değerler aralığı B1: B45 ise, şunu girin:
    = Satır (B1: B45)


1

= TOPLAM (1 / EĞERSAY (A2: A100; A2: A100))

Ctrl + Shift + Enter tuşlarıyla onaylayın

Her hücre için, kaç kez oluştuğunu sayar ve tüm bu değerlerin tersini toplar. Bazı dize veya sayı 5 kez okusun. Tersi 0.2'dir ve 5 kez toplanır, bu yüzden 1 eklenir. Sonunda farklı değerlerin sayısını verir.

Not: Boşluklar oluştuğunda çalışmaz!


0

Bu linki dene. Bu boş hücreleri atlayan bir listede benzersiz değerlerin nasıl sayılacağını gösterir.

http://www.functioninexcel.com/lists-arrays/count-unique-values-in-a-list/

= toplam (eğer (frekans (maç (Liste, Liste, 0)), maç (Liste, Liste, 0)))

Örneğin, "Liste" hücre aralığınızdır:

Liste = $ A $ 2: $ A $ 12  VEYA- Liste = ofset ($ A $ 1 ,,, eşleşme (rept ("z", 255), $ A: $ A)) -VEYA- Liste = ofset ($ A $ 1 ,,, eşleşme (değer (rept ("9", 255)), $ A: $ A))


0

= TOPLAM (IF (frekans (IF (SUBTOTAL (3, OFFSET (A2: A100; SIRA (A2: A100) -ROW (A2), 0,1)), MATCH ( "~" & Sons, A2: A100, A2: A100 & Sons, "", 0)), SIRA (A2: A100) -ROW (A2) + 1), 1))

Bu formülü yapıştırdıktan sonra CONTROL + SHIFT + ENTER tuşlarına bastığınızdan emin olun. Bu, A2: A100 aralığı içindir, aralığı uygun şekilde ayarlayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.