Bir COUNTIF işlevinde bir IF ifadesini parametre olarak kullanabilir miyim?


0

Birisi unvanı geliştirmeye yardımcı olabilir, elbette. Bir süredir onunla mücadele ediyorum ...

Potansiyel sorunlara ilişkin dosya adlarının bir listesini analiz etmek için Excel kullanıyorum ... özel karakterler, aşırı uzunluklar, vb. Bir komut dosyası çalıştırmadan önce. Şu anda, koşulu test etmek için bir sütunum ve test sonuçlarının oluşumunu saymak için bir COUNTIF kodum var.

Düşünmek:

COL A          COL B                                COL C
filename       =IF(LEN($A1)>200,"LONGNAME","")      =COUNTIF(B1:B10000,"LONGNAME")

Bir şeyin "uzun" olup olmadığını test etmek için ayrı bir sütun oluşturmak zorunda kalmadan, sadece COUNTIF (anythingInColumn, isLong) olan bir şeyle bunu basitleştirmek istiyorum.

Düşünmek:

COL A          COL B                               
filename       =COUNTIF($A,LEN($A>200))

Yukarıdaki sorun, durumum için açıkça satır satır sınama yapan hiçbir şey görmememdir, bunu denediğimde, tam bir satır satır sınaması görünmüyordu. ben

Böyle bir şey yapılabilir mi, yoksa bunu tek adımda yapmak için başka bir işlev var mı?

Yanıtlar:


3

Bir dizi formülü kullanabilmelisiniz: aşağıdakini C1'e yazıp Ctrl-Shift-Enter tuşlarına basın:

=SUM(IF(LEN(A1:A10000)>200,1,0))

İhtiyacınız IF(0,1) için Boole dönüştürmek ve SUMhepsini saymak. ( A:AAçık bir satır numarası yerine kullanabilirsiniz , ancak daha yavaş olabilir.)


Ben beğendim ... ama ben de bir değer elde ediyorum 1ya 0. =SUM(IF(LEN(A1:A10000)>200,1,0))sıfır sonucunu verir. Eğer ararsam >1a 1döner. Nokta o her şey bir döner gibi görünüyor diğer değerleri kontrol 0. Fikirler?
dwwilson66

Ctrl-Shift-Enter tuşlarına bastığınızı hatırladığınızdan emin misiniz? Bazı rastgele metinler için benim için çalışıyor.
benshepherd

Evet, yaptım ... ... ...
alay etmeye

2

Bir yolu kullanarak vardır SUMPRODUCTdeğerleri eklemek ve --dönüştürmek True/Falseiçine 1/0.

Davanızdaki denklem şöyle olurdu:

=SUMPRODUCT(--(LEN(A1:A10000)>200))

ve sumproduct bir dizi beklediği için gerekli hiçbir dizi formülü yoktur.

Excel LEN(A1:A10000)>200, bir 10.000 öğe listesi olarak değerlendirir True/False. Değişiklikler listesi bir liste The biz sadece 1 boyutlu bir diziyi temin konum olarak, tüm 1'in (hiçbir ürünü ekler.
--True/False0/1
SUMPRODUCT


Bu yöntemin birden fazla kriteri kontrol etmek için kullanılabileceğini ve yalnızca her ikisinin de doğru (AND) - örneğin sürücü harfine sahip olan ve 200'den fazla karakter içeren dosya adlarını içeren öğeleri sayabileceğini unutmayın.

=SUMPRODUCT(--(LEN(A1:A10000)>200),--(MID(A1:A10000,2,1)=":"))

Birden fazla kritere bakmanız gerekiyorsa, her iki kontrol de aynı boyutta olmalıdır:

=SUMPRODUCT(--(LEN(A1:A10000)>200),--(MID(A1:A7777,2,1)=":"))

hata verecek


Güzel! Sevdim --- bu benim için yeni. Cevabımdan daha iyi çünkü dizi formüllerine ihtiyaç duymuyor. Muhtemelen daha hızlı, özellikle de tüm sütunlar için.
benshepherd

1

=SUM(IF(LEN($A:$A)>200,1,0)) Ctrl + Shft + Enter gerektiğini hile yapmak.

Olmazsa, =SUMPRODUCT(--(LEN($A:$A)>200))aynı şekilde çalışacaktır.

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.