2012-10-12 11 views
8
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 

क्या कोई छोटा रास्ता है, कृपया?कई स्तंभों में कैसे गणना करें?

+0

[एकाधिक या मानदंड के साथ COUNTIF] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/8726627/countif-with-multiple-or-criteria) – brettdj

उत्तर

23

आप इस एक नियम के साथ

(Excel 2007 या बाद में) इस

=COUNTIFS(A:A,"aaa",B:B,"bbb") 

तरह

=SUMPRODUCT(--(A:A="aaa")*--(B:B="bbb")) 

आप करने के लिए है, तो कर सकते हैं, (Excel 2003 या उससे पहले) या, इसे वीबीए में करें, Evaluate

MsgBox Evaluate("=COUNTIFS(A:A,""aaa"",B:B,""bbb"")") 

MsgBox Evaluate("=SUMPRODUCT(--(A:A=""aaa"")*--(B:B=""bbb""))") 
का उपयोग करें

संपादित अपनी टिप्पणी के आधार पर

rDat हैं और rSec हैं Range की, और 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"")") 

है जैसे कि यह करते हैं ct चादर है Name, इस

का उपयोग करें
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 तार कर रहे हैं, इस

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"")") 

एक अन्य विकल्प (rDat के लिए, rSec सीमाओं के रूप में) का उपयोग

ct.Range("C6").Value = Application.WorksheetFunction.CountIfs(rDat, "a", rSec, "1") 
+0

क्रिस, मैंने कोशिश की 'ct.Range (" C6 ")। मान = मूल्यांकन करें (" = COUNTIFS (rDat, "" a "", rSec, "" 1 "") ")" #NAME त्रुटि मिली है। सीटी एक चादर है, आरडीएटी और आरएसईसी परिभाषित श्रेणियां हैं। एक्सेल 2010 – Alegro

+0

बहुत बहुत धन्यवाद। हल – Alegro

+2

बहुत बुरा है कि Google स्प्रेडशीट में SUMPRODUCT काम नहीं करता है। –

संबंधित मुद्दे