| 
    
     |  | みぃこ さん、IROC さん こんばんは。
 >セル内容をORで調べる指定の仕方があれば、ご教授お願いします。内容は下記の通りです。
 >事務用品類の購入記録の集計をしています。
 >A列:発行No.、B列:費目コード、C列:メーカー、D列:品名、E列:品番、
 >F列:数量、G列:単位、H列:金額、I列:発注日、J列:納入日
 >という項目を持つ、45行(タイトル行は別)の表を各月ごとにシート分けして
 >作っています。ご参考までに、そのままコピーできなくて分かりにくいですが、
 >6月分はこんな感じです。
 >
 >No.  費目コード  メーカー   品     名       型  番      数量   単位      金額    発注日  納品日
 >-    5202    コクヨ     KB用紙(A4)      KB−S39N     5    箱     6,750     6/1    6/2
 >-    5201    キング     カラーインデックス     No.907       1    箱     4,060     6/1    6/3
 >-    5201    コクヨ     フラットファイル      フ−V10(B)    20    冊      840     6/1    6/3
 >119   5202    コクヨ     KB用紙(レター)     KB−L31TN    1    箱     4,712     6/2    6/4
 >     5201    コクヨ     チューブファイル      フ−E633(B)   5    冊     5,200     6/2    6/4
 >-    5201    コクヨ     フラットファイル      フ−V10(P)   20    冊      840     6/3    6/4
 >-    5201    キング     テプラテープ        SS12K       1    個      560     6/3    6/4
 >-    5207    川崎E     社名入り封筒        角2サイズ      100    枚     1,060     6/3    6/10
 >-    5202    コクヨ     KB用紙(A4)      KB−S39N     5    箱     6,750     6/7    6/9
 >
 >
 >このうち、B列の費目コードが「5201」のものについての内訳を「集計」シートの
 >別表に集計するようにしたいのですが、指定の仕方がよく分かりません。
 >
 >D列の品名に「ファイル」という文字を含めば、「ファイル類」、「インデックス」または「仕切」という文字を含めば「インデックス類」、「ペン」または「マーカー」という文字を含めば筆記具…という風に 品目のカテゴリーごとに月別の金額をまとめたいと思っています。
 見せていただいたコードを修正しました。
 
 
 '===============================================================
 Sub test()
 tuki = Month(Now)
 Worksheets(MonthName(tuki)).Activate
 For i = 0 To 45
 If Cells(2 + i, 2) = "5201" Then
 With Cells(2 + i, 4)
 If .Value Like "*ファイル*" Then
 ファイル類 = ファイル類 + Cells(2 + i, 8).Value
 ElseIf .Value Like "*インデックス*" Or .Value Like "*仕切*" Then
 インデックス類 = インデックス類 + Cells(2 + i, 8)
 ElseIf .Value Like "*ペン*" Or .Value Like "*マーカー*" Then
 筆記具 = 筆記具 + Cells(2 + i, 8)
 ElseIf .Value Like "*消*" Or .Value Like "*修正*" Then
 修正具 = 修正具 + Cells(2 + i, 8)
 ElseIf .Value Like "*メモ*" Or .Value Like "*ノート*" Then
 紙製品 = 紙製品 + Cells(2 + i, 8)
 ElseIf .Value Like "*のり*" Or .Value Like "*メンディング*" Then
 接着用品 = 接着用品 + Cells(2 + i, 8)
 ElseIf .Value Like "*クリップ*" Or .Value Like "*マグネットボックス*" Then
 クリップ類 = クリップ類 + Cells(2 + i, 8)
 ElseIf .Value Like "*テプラ*" Or .Value Like "*ネームランド*" Then
 ラベルテープ = ラベルテープ + Cells(2 + i, 8)
 Else
 その他 = その他 + Cells(2 + i, 8)
 End If
 End With
 End If
 Next i
 
 Worksheets("集計").Activate
 If tuki >= 4 Then
 j = tuki - 1
 Else
 j = tuki + 11
 End If
 Cells(34, j).Value = ファイル類
 Cells(35, j).Value = インデックス類
 Cells(36, j).Value = 筆記具
 Cells(37, j).Value = 修正具
 Cells(38, j).Value = 紙製品
 Cells(39, j).Value = 接着用品
 Cells(40, j).Value = クリップ類
 Cells(41, j).Value = ラベルテープ
 Cells(42, j).Value = その他
 End Sub
 ですが・・・・。
 
 集計と言うシートに予め数式を入力しておく方法もありますよ。
 例題として
 6月の「ファイル類」なら、セルE34に
 
 =SUM(IF('6月'!$B2:$B47=5201,IF(('6月'!$D$2:$D$47<>SUBSTITUTE('6月'!$D$2:$D$47,"ファイル","")),'6月'!$H$2:$H$47)))
 
 数式は、配列数式ですから、数式入力後、セルから抜けるときはEnterキーではなく、
 Ctrl+Shift+Enterキーです。
 
 もうひとつ「インデックス類」なら、セルE35に
 
 =SUM(IF('6月'!$B2:$B47=5201,IF(('6月'!$D$2:$D$47<>SUBSTITUTE('6月'!$D$2:$D$47,"インデックス",""))+('6月'!$D$2:$D$47<>SUBSTITUTE('6月'!$D$2:$D$47,"仕切",""))>0,'6月'!$H$2:$H$47)))
 
 これも配列数式ですから、Ctrl+Shift+Enterキーでセルを確定します。
 
 9*12=108式 程度なら、配列数式でも十分だと思いますし、
 
 それぞれの月のシートの変更も集計シートに反映されますよ!!
 
 確認してみて下さい。
 
 
 |  |