x = 0
For Each cell in Sheets("01").Range("A:A").Cells
If cell.Value = "aaa" And cell.Offset(0, 1).Value = "bbb" Then
x = x+1
End If
Next cell
MsgBox x
Czy istnieje krótsza droga, pls?Jak CountIf w wielu kolumnach?
x = 0
For Each cell in Sheets("01").Range("A:A").Cells
If cell.Value = "aaa" And cell.Offset(0, 1).Value = "bbb" Then
x = x+1
End If
Next cell
MsgBox x
Czy istnieje krótsza droga, pls?Jak CountIf w wielu kolumnach?
Można to zrobić za pomocą formuły, jak to
(Excel 2007 lub nowszy)
=COUNTIFS(A:A,"aaa",B:B,"bbb")
(Excel 2003 lub wcześniej)
=SUMPRODUCT(--(A:A="aaa")*--(B:B="bbb"))
Lub, jeśli trzeba zrób to w VBA, użyj Evaluate
MsgBox Evaluate("=COUNTIFS(A:A,""aaa"",B:B,""bbb"")")
MsgBox Evaluate("=SUMPRODUCT(--(A:A=""aaa"")*--(B:B=""bbb""))")
EDIT na podstawie Twojego komentarza
Jeśli rDat
i rSec
są Range
„s, a ct
jest arkusz CodeName
zrobić jak ten
Dim rDat As Range
Dim rSec As Range
Set rDat = ct.[A:A]
Set rSec = ct.[B:B]
ct.Range("C6").Value = Evaluate("=COUNTIFS(" & rDat.Address(, , , True) & " ,""a""," & rSec.Address(, , , True) & ",""1"")")
Jeśli ct
jest arkusz Name
, użyj tego
Dim ws As Worksheet
Dim rDat As Range
Dim rSec As Range
Set ws = ActiveWorkbook.Worksheets("ct")
Set rDat = ws.[A:A]
Set rSec = ws.[B:B]
ws.Range("C6").Value = Evaluate("=COUNTIFS(" & rDat.Address(, , , True) & " ,""a""," & rSec.Address(, , , True) & ",""1"")")
Jeśli rDat
i rSec
są łańcuchami, ten
Dim ws As Worksheet
Dim rDat As String
Dim rSec As String
Set ws = ActiveWorkbook.Worksheets("ct")
rDat = "ct!A:A"
rSec = "ct!B:B"
ws.Range("C6").Value = Evaluate("=COUNTIFS(" & rDat & " ,""a""," & rSec & ",""1"")")
Inną opcję (na rDat
, rSec
jako zakresy)
ct.Range("C6").Value = Application.WorksheetFunction.CountIfs(rDat, "a", rSec, "1")
Chris, próbowałem 'ct.Range (" C6 "). Wartość = Ocena (" = COUNTIFS (rDat, "" a "", rSec, "" 1 "") ")' dostał błąd #NAME. ct to arkusz, rDat i rSec to zdefiniowane zakresy. Excel 2010 – Alegro
Wielkie dzięki. Rozwiązany – Alegro
Szkoda, że SUMPRODUCT nie działa w Arkuszach kalkulacyjnych Google. –
możliwe duplikat [COUNTIF ze szpiczakiem lub kryteriów] (http://stackoverflow.com/questions/8726627/countif-with-multiple-or-criteria) – brettdj