Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


36886 / 76732 ←次へ | 前へ→

【45021】Re:VBAでの配列数式でのカウントについて
発言  ichinose  - 06/12/10(日) 12:09 -

引用なし
パスワード
   ▼モンロー さん:
こんにちは。

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

1 hits

【45019】VBAでの配列数式でのカウントについて モンロー 06/12/10(日) 11:17 質問
【45021】Re:VBAでの配列数式でのカウントについて ichinose 06/12/10(日) 12:09 発言
【45066】Re:VBAでの配列数式でのカウントについて モンロー 06/12/11(月) 22:23 お礼

36886 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free