|
素人じゅうすけ さん こんばんわ
1項目はこういう事ですか?
Sheet1に
A列 B列 C列
日付 重量 金額 8/31 と9/30 を指定して
8月28日 20 100
8月29日 30 200
8月29日 15 300
8月31日 100 400 →
9月2日 100 500
9月10日 25 600
9月30日 1000 700
10月1日 300 800
10月30日 200 100
Sheet2に
A列 B列 C列 D列
日付 重量 金額
9/1〜9/30 1125 1800 と表示
Sub Test1()
Dim R As Long
Dim m As Integer 'データ範囲の行数と月名
R = UsedRange.Rows.Count
md1 = InputBox("前月末日")
md2 = InputBox("今月末日")
'前の日付までの合計とあとの日付までの合計を出す
With Application.WorksheetFunction
For Each Rng In Range(Range("A2"), Cells(R, 1))
Select Case Rng.Value
Case DateValue(md1)
重量sum1 = .Sum(Range("B2", Cells(Rng.Row, 2)))
金額sum1 = .Sum(Range("C2", Cells(Rng.Row, 3)))
翌月の最初の日 = Rng.Offset(1, 0)
Case DateValue(md2)
重量sum2 = .Sum(Range("B2", Cells(Rng.Row, 2)))
金額sum2 = .Sum(Range("C2", Cells(Rng.Row, 3)))
End Select
Next
End With
'引き算をして別シートへ表示
With Sheets("Sheet2")
.Range("A2") = Format(翌月の最初の日, "m/d") & "〜" & m2
.Range("C2") = 重量sum2 - 重量sum1
.Range("D2") = 金額sum2 - 金額sum1
End With
End Sub
私は在庫管理で使っているのは月末日が休みや入出庫データが無い場合があるので「月」名で
しています。その場合はFind関数で前月の最終行と当月の最終行を取得しています。
2項目もちょっと意味が分からないのですが、全ての人名について合計を出してからそれを並び替えるのですか?
|
|