| 
    
     |  | ▼モンロー さん: こんにちは。
 
 >シート上では
 >{sum(if((A:A)=2)*(B:B)=5),1,0))}
 >というような配列数式を使うことにより、
 >A列が2で、B列が5の行をカウントできるのですが、
 ↑これは、セルに入れても正しい結果は、表示されませんけどね!!
 (列全体の指定は配列では、出来なかったと思います)。
 
 
 >VBAでは2列以上の条件がある場合はどのようにカウントすればよい
 >のでしょうか?
 >ちなみにだめだろうなと、思いつつ下記のコードを書いてみましたが、
 >案の定だめでした。
 >Application.WorksheetFunction.{sum(if((A1:A25)=2)*(B1:B25)=5),1,0))}
 
 上記の数式なら、Evaluateを使用すると可能です。
 Sub test()
 Dim func As String
 func = "=sum((A1:A25=2)*(B1:B25=5))"
 'If関数は要らないのでとりました
 MsgBox Application.Evaluate(func)
 End Sub
 
 確認してください。
 但し、セルで結果を出してくれる全ての配列数式が
 Evaluateで実現できるわけではないのですから、注意してください。
 
 
 |  |