• 締切済み

エクセルのデータ抽出lで困っています

集計方法で悩んでいます。 日にち毎に売れた項目だけを抜き出して表にまとめたいのですがうまく行きません。 集計ではその日に売れなかった品目は除きたい。 売れた品目と個数をそれぞれ書きたい。 の2点をどうしたらできるのか押していただけると助かります。 尚エクセルのバージョンは2003です。 元データ   A    B   C   D 1 品目  1日 2日 3日 ・・・ 2 りんご 10     5 3 みかん 20 10   4 バナナ     5  8 5 キウイ 15     集計結果 1日        2日       3日 りんご 10    みかん 10   りんご 5 みかん 20    バナナ  5   バナナ 8 キウイ 15 その日に売れなかった品目は除きたい。 売れた品目と個数をそれぞれ書きたい。

みんなの回答

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

EXCEL関数でもできるかもしれませんが、面倒なのでマクロを組んでみました。 Sub 集計() Dim i As Integer Dim j As Integer Dim k As Integer Dim Sheet1 As Worksheet Dim Sheet2 As Worksheet Set Sheet1 = Sheets("Sheet1") Set Sheet2 = Sheets("Sheet2") Sheet2.Cells.ClearContents For j = 2 To 4 ' 日付の繰り返し  Sheet2.Cells(1, j * 2 - 3).Value = Sheet1.Cells(1, j).Value  For i = 2 To 5 ' 品目の繰り返し   If Sheet1.Cells(i, j).Value > 0 Then    k = 2    Do While Sheet2.Cells(k, j * 2 - 3).Value <> "" And Sheet2.Cells(k, j * 2 - 3).Value <> Sheet1.Cells(i, 1).Value     k = k + 1    Loop    Sheet2.Cells(k, j * 2 - 3).Value = Sheet1.Cells(i, 1).Value    Sheet2.Cells(k, j * 2 - 2).Value = Sheet1.Cells(i, j).Value   End If  Next i Next j End Sub シート名やFor文の最終値は適切な値に変えてください。

masa298
質問者

お礼

nag0720様 お礼が遅くなってすみません。 マクロは使ってみたことが無かったので敷居が高かったのですが、頑張って試して見ます。 有難うございました。