|
▼aaa さん:
>▼Jaka さん:
>
>>MsgBox Application.Evaluate("SUMPRODUCT((A1:A10=""巡回監査"")*(B1:B10=""金太郎"")*(C1:C10=""◎""))")
>
>わかりません。
>SUMPRODUCTについては使用したことがありますので、上記の様な使用方法(文字列に合うものをカウントする方法)はわかるのですが、日付を指定する場合に引数に普通に値を入れただけならば完全一致する日付は取れますが、(例えば文字列としてその指定日付を認識させ、一致するものを取るという形)以上未満などの複雑な条件を設定することができませんでした。
>型が一致しないのは、引数の値の型が一致しないのだろうということはわかるのですがそれ以上のことがわかりません。
>完全に勉強不足です。
>やっぱり他の方法を考えた方が早いでしょうか?
いや、書いたコードを解析するのでなく、SUMPRODUCTをVBA上で使う方法を書いたつもりだったんですけど....。
MsgBox Application.Evaluate("セルに書くのと同じ文字列を組合わせて書く")
>行数が1000行になったりする場合もあるので、やはりこうすると処理は遅くなる気はしますが、フリーズはしないかなと言う感じですかね。。。
シートに書いた関数と違って、1個1個のセルを再計算していくわけでないので大丈夫だとおもいます。
Countif関数も重い関数の部類に入りますから、数が多いとやたらと重くはなります。
|
|