|
同じようなことで困っているのでこちらの続きで失礼いたします。
Excel2002使用です。
同じブック内の資料シート中C列に果物の名前の一覧があり、
DATAシート中A列には上記集計対象と同じ果物の名前があり、
H列にはA列の名前と対になるお店の名前が入っています。
資料シートの一覧で順番にDATAシート上から
「果物の名前 且 お店の名前のないもの」の件数
を集計したく、SUMPRODUCTを使って集計しようとしました。
ichinoseさんがご回答されていることを参考に作成してみたのですが、
「型が一致しません」となってしまいます。
Sub Test()
Dim WS_Data As Worksheet
Dim WS_In As Worksheet
Dim TRange As Range '集計対象範囲
Dim SfRange As String '集計範囲1
Dim By2Range As String '集計範囲2
Dim SFB As String '集計名
Dim Bcnt As Integer
Set WS_Data = ThisWorkbook.Worksheets("DATA")
Set WS_In = ThisWorkbook.Worksheets("資料")
Set TRange = WS_In.Range(.Cells(2, 3), .Cells(.Rows.Count, 3).End(xlUp)) '資料範囲
With WS_Data
'集計範囲1
SfRange = .Name & "!" & .Range(.Cells(3, 1), .Cells(.Rows.Count, 1).End(xlUp)).Address
'集計範囲2
By2Range = .Name & "!" & .Range(.Cells(3, 8), .Cells(.Rows.Count, 8).End(xlUp)).Address
'集計
For Each FERange In TRange
SFB = FERange.Value
Bcnt = Application.Evaluate( _
"=SUMPRODUCT((" & SfRange & "=" & SFB & ")*(" & By2Range & "<>""""))")
MsgBox Bcnt
Next
End With
End Sub
ウォッチ式で確認したところ、以下のようになっていました。
-----------------------------------
SfRange="DATA!$A$2:$A$105"
By2Range="DATA!$H$2:$H$105"
SFB="りんご"
-----------------------------------
ウォッチ式の内容を代入して試したところ、エラーは出ないのですが、
Bcntは0となってしまいました。
代入するSfRangeとBy2Rangeを以下のように""を外してみたところ、
正しい計算結果が得られました。
-----------------------------------
SfRange=DATA!$A$2:$A$105
By2Range=DATA!$H$2:$H$105
-----------------------------------
範囲については日々変わっていくので固定することが出来ません。
どうしたらいいかわかりますでしょうか。
よろしくお願いいたします。
|
|