| 
    
     |  | ▼猛虎襲来 さん: こんばんは。
 
 >エクセル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でした。
 
 
 |  |