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
短い方法がありますか?複数の列をカウントするには?
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
短い方法がありますか?複数の列をカウントするには?
あなたがしなければならない場合、この
(エクセル2007以降)
=COUNTIFS(A:A,"aaa",B:B,"bbb")
(エクセル2003以前)
=SUMPRODUCT(--(A:A="aaa")*--(B:B="bbb"))
あるいは、同様に、式でこれを行うことができますVBAで行います。Evaluate
MsgBox Evaluate("=COUNTIFS(A:A,""aaa"",B:B,""bbb"")")
MsgBox Evaluate("=SUMPRODUCT(--(A:A=""aaa"")*--(B:B=""bbb""))")
rDat
とrSec
がRange
年代であり、ct
はct
がシートの場合、シートCodeName
この
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"")")
のようにそれを行う場合には、あなたのコメント
に基づくEDITName
、これを使用
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"")")
rDat
とrSec
が文字列である場合には、(rDat
ため、範囲などrSec
)別のオプション
ct.Range("C6").Value = Application.WorksheetFunction.CountIfs(rDat, "a", rSec, "1")
[複数のOR条件でCOUNTIF]の可能複製この
を使用(http://stackoverflow.com/questions/8726627/countif-with-multiple-or-criteria) – brettdj