|
▼猛虎襲来 さん:
こんばんは。
>エクセル97です。
Excel2000で確認しましたが・・・・。
>こういう場合に、「てんびん座かつA型」の数を、別のシート”人数”のセルB2に表示させようとしたいのです。
>それで、ワークシート関数のsumproduct関数を使って、以下のように作ったのですが、「型が一致しません」というメッセージがでます。
>どうしたらよいでしょう?
> nm = Application.WorksheetFunction.SumProduct((seiza= "てんびん") * (ti = "A"))
↑のコードでは、
seiza="てんびん"
が評価されませんね、つまり、配列が生成されません。
それで、
nm=WorksheetFunction.SumProduct(([b2:b102 = "てんびん"]), [a2:a102 = "A"])
としたら、配列として評価はされますが、配列の中身がTrueとFalseのためか
0しか返りません。
Helpに、「数値以外の配列要素は、0 であると見なされます。」とありました。
で、以下のコードだと答えを出してくれました。
'==================================================================
Sub 人数表示()
Dim seiza As String
Dim ti As String
Dim nm As Integer
seiza = Range("b2:b102").Address
ti = Range("A2:A102").Address
nm = Application.Evaluate("=SUMPRODUCT((" & seiza & "=""てんびん"")*(" & ti & "=""A""))")
MsgBox nm
End Sub
「てんびん座かつA型」のichinoseでした。
|
|