|
▼モンロー さん:
こんにちは。
>シート上では
>{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で実現できるわけではないのですから、注意してください。
|
|