|
みぃこ さん、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式 程度なら、配列数式でも十分だと思いますし、
それぞれの月のシートの変更も集計シートに反映されますよ!!
確認してみて下さい。
|
|