COUNTIF işlevindeki iki farklı sütuna nasıl başvurabilirim?


11

Açıklamak için elimden geleni yapacağım. Diyelim ki böyle bir sayfa var (bu tartışmalı örnekte, çeşitli kişilere pazarlama e-postaları gönderiyorum, yaşlarını ve posta kodlarını biliyorum ve bu e-postalardaki tıklama oranlarını izlemek istiyorum):

        A   |    B        |    C  
  1     Age |    zip code |  click?  
  2     26  |    11111    |  true  
  3     27  |    11112    |  true  
  4     28  |    11111    |  false  
  5     27  |    22222    |  false  
  6     28  |    11112    |  false  
  7     26  |    22222    |  true  

Şimdi çeşitli istatistikleri takip etmek istiyorum. Bu durumda, tıklama oranını yaşa ve posta koduna göre izlemek istiyorum. Yani şöyle bir masam var:

      E         F          G 
 1   Age  |  # sent  | # clicked
 2   26   |
 3   26   |
 4   27   |
 5   28   |

Temelde "# gönderilen" sütununda, koyabilirsiniz (örneğin F2'de):

=COUNTIF(A:A, E2)

Ve bu, F2 hücresinde 2 ile sonuçlanacaktır, çünkü A sütununda iki "26" oluşumu vardır.

Ama şimdi kaç tane tıkladığını bilmek istersem? Gibi bir şey söylemek istiyorum:

=COUNTIF(A:A == E2  AND  C:C == True, for the same row where A:A matched E2)

Başka bir formül D ekleyebileceğimi biliyorum.

=IF(C2, A2, "")

C sütunu doğruysa yalnızca D sütunundaki yaş olacaktır. Ancak potansiyel olarak birçok ölçüt alabilirim ve sahip olduğum her ölçüt sütunu için başka bir "sahte" sütun eklemem gerektiği anlaşılıyor.

Bunu yapmanın bir yolu var mı? Google Dokümanlar'da değilse, Excel'de?


Not: için cevap yeni Google E olduğunu oraya .

Yanıtlar:


11

ARRAYFORMULA, SUM ve aritmetik işlemlerin bir kombinasyonunu kullanın

İşte 26 yaşındaki bir kullanıcının tüm tıklamalarını sayma işlevi:

=ARRAYFORMULA(sum((A:A=26) * (C:C="true")))

Bu operasyonun 3 kısmı vardır.

  • ARRAYFORMULA Belirtilen aralıkta döngü ilgilenir
  • SUM gerçek tüm sonuçları sayım yönetir

Esasen, true 1'e, false 0'a dönüştürülür. Boolean mantığı aritmetik işlemler kullanılarak yapılır.

Bir VE operasyon çarpma kullanır:

  • (1 * 1) = 1 - (Doğru ve Doğru) = Doğru
  • (1 * 0) = 0 - (Doğru ve Yanlış) = Yanlış
  • (0 * 0) = 0 - (Yanlış & Yanlış) = Yanlış

Bir VEYA işlemi, * İŞARET işlevinin ve ekin bir kombinasyonunu kullanır :

  • işareti (1 + 1) = 1 - (Doğru || Doğru) = Doğru
  • işareti (1 + 0) = 1 - (Doğru || Yanlış) = Doğru
  • işareti (0 + 0) = 0 - (False || False) = False

Not: boolean toplama işleminin aritmetik toplama işleminden farklı çalıştığı için işaret fonksiyonu gereklidir. Temel olarak boolean toplamada 1 + 1 = 1, aritmetik toplamada 1 + 1 = 2. Açıkçası, aritmetik toplama sayımı bozar, böylece toplama işlemlerinin sonuçlarını bir işaret fonksiyonu ile çalıştırmanız gerekir. İşaret işlevi, değer pozitifse 1, değer 0 ise 0, değer negatifse -1 döndürür.

20-25 yaş arasındaki tüm kullanıcılar için tıklamaları saymak istediğinizi varsayalım:

=ARRAYFORMULA(sum(sign((A:A=20) + (A:A=21) + (A:A=22) + (A:A=23) + (A:A=24) + (A:A=25)) * (C:C="true")))

SIGN burada gerekli değil mi? bothörneğin tek bir hücre 20 ve 23 olamaz , bu nedenle ekleme asla bu durumda> 1 değerini vermez. SIGN sadece koşullar birbirini dışlamıyorsa gereklidir. Ayrıca bu sürümle 20 ile 25 arasında daha kolay yapılmaz mı? =arrayformula(sum((A:A>=20)*(A:A<=25)*(C:C=TRUE)))
barry houdini

OR mantığının genel kullanımını açıklamaya çalışıyordum. Testler münhasır değilse (aynı sütunda bulunursa), İŞARET işlevi gerekli olacaktır. Bu durumda değil. Ve evet, örneğiniz daha iyi bir yaklaşım olacaktır, ancak OR kullanımını göstermez. OP'nin sorusuna uyan OR kullanımını göstermek için basit bir yaklaşım düşünmeye çalışıyordum, ancak manşetten örnekler bulmak konusunda çok iyi değilim. Daha iyi örnekleriniz varsa, cevabı düzenlemenizi / geliştirmenizi öneririm.
Evan Plaice

Özür dilerim, Evan, yanlış anladım - bu mükemmel bir örnek.
barry houdini

kaçınabilirsiniz = true, yani: = ARRAYFORMULA (toplam ((A: A = 26) * C: C))
tic

1
@tic Boolean true'yu (Google E-Tablolar'da TRUE olan) kullanmıyordum. Deneyin: C: C için değerleri test ederseniz, her zaman boş olmayan bir dizede TRUE değerini döndüreceğinden eminim. Elektronik tablo hücrelerinde Google, JavaScript üzerinden Excel kurallarına bağlıdır. Sızdıran soyutlamaların eğlenceli dünyasına hoş geldiniz.
Evan Plaice

10

Şu andan itibaren yeni Google E-Tablolar, gerekli işi doğrudan işleyebilen COUNTIFS ürününü desteklemektedir.

=COUNTIFS(A:A, E2, C:C, "true")

Virgüllerle ayrılmış tüm aralıkları ve karşılaştırmayı listeleyin.


4
Aşağı kaydırdığımı ödüllendirdiğiniz için teşekkürler. Bu, yeni google sayfalarıyla çalışırken verilen yanıttır.
Christiaan Westerbeek

3

Excel'de SUMPRODUCT'u Excel 2003 veya COUNTIFS ("S" ile) Excel 2007 veya sonraki sürümlerde kullanırım ... ancak Google Dokümanlar'da bunu deneyin

=arrayformula(sum((A:A=E2)*(C:C=TRUE)))


3
=COUNTA( IFERROR( FILTER('Guest List'!$G:$G ; 'Guest List'!$G:$G = "Yes" ; 'Guest List'!$L:$L = "USA" ) ) )

Bu iki sütun için-ben düğün konuk listesi için kullanıyorum- bu durumda, bir kaydetme tarihi gönderme "Evet" ve konum için "ABD" tablolama, böylece posta daha sonra hesaplayabilirsiniz. Daha kısa bir formül olabilir, ancak bu işe yarıyor gibi görünüyor, bu yüzden onunla uğraşmıyorum!

Mutlu sayma.


1

Excel'de formülleri unutur ve Pivot tablolarını kullanırım.

Sonuç almak için topladığınız değişken olarak tekrar tekrar kullanılabilecek bir "sayaç" sütunu eklemeniz gerekebilir.


0

Test etmek istediğiniz diziyi {} içine ekleyebilirsiniz.

Aşağıdaki örnekte:

=countif({F2,H2,J2,L2,N2,P2,R2,T2,V2,W2},"TRUE")
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.