|
▼yata さん:
お返事ありがとうございます。
一項目につきましては、A列は「毎日の日付」が立てに順に記入されています。今回使う「重量」と「金額」は「毎日(其の他の列に毎日の重量・金額が記入された時点で)加算されています」。
例:
A列 B列 C列
日付 重量 金額
8月1日 300 450
8月2日 450 600
・
8月31日 990 1000
9月1日 1000 1200
9月2日 1150 1300
・
・
9月30日 2000 2200
10月1日 2100 2400
と、このような感じです。SHEET2に記入したいのは
例:
A列 B列 C列
日付 重量 金額
9月1日〜9月30日 1010 1200
です。(分かりますか?)また、A列に「項目」を入れて、
A列 B列 C列
日付 9月1日〜9月30日 10月1日〜10月31日
重量 1010 ・
金額 1200 ・
というふうにする方法もありましたら、教えてください。
2項目については、「指定した人物」の結果がSHEET2に記入され、その後また違う人を指定した場合、もしも後に指定した人の数量が多かった時に、SHEET2の中で自動的に「(後に選んだ)数量の多い人」が上に来て、少ない人が下に記入される様にしたいのです。つまり、別々に指定していきたいのです。「全ての人の合計と、その人が持ってきた日にちを出してから並び替える」方法もございましたら、是非教えてください。
我が儘三昧で大変恐縮ですが、何卒宜しくお願い致します。
>素人じゅうすけ さん こんばんわ
>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項目もちょっと意味が分からないのですが、全ての人名について合計を出してからそれを並び替えるのですか?
|
|