• ベストアンサー

エクセル 重複する行の削除に加算処理を追加したい

データの例と、現在使用しているマクロの内容は以下のようになっております。重複行を消すマクロです。EXCEL2003です。 ◇データ例◇ 名前 点数 田中 20 田中 10 鈴木 10 佐藤 10 佐藤 20 佐藤 20 ◇現在のマクロ◇ Sub sakujo() Dim i As long With Range("A2") For i = .CurrentRegion.Rows.Count To 1 Step -1 If .Offset(i,0) = .Offset(i - 1, 0) Then .Offset(i, 0).EntireRow.Delete Next i End With End Sub A2以下を一つ一つ見て行き、重複していれば削除します。 元データはソートされており、途中にスペースなどは存在しません。 これを、重複する行を消したときに、件数を加算する仕様にしたいです。 上記の例ですと、最終的に 田中 30 鈴木 10 佐藤 50 となるようにしたいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

消す前にB列のデータを合計していけばいいです。 Sub sakujo() Dim i As Long, D As Double For i = Range("A2").CurrentRegion.Rows.Count To 2 Step -1 If Range("A" & i) = Range("A" & i - 1) Then D = D + Range("B" & i).Value Range("A" & i).EntireRow.Delete Else D = D + Range("B" & i).Value Range("B" & i).Value = D D = 0 End If Next i End Sub

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

名前列でソートしてあると (1)同じデータ場所で削除する (2)別(シート)や別セルに氏名1つと合計金額を書き出す。 (2)の方が素直でしょう。 ーー (1)は次のようなロジックがよかろう。 最終行下から上へ処理をします。 直前行の名前と同じなら、溜め込むための変数に計数を足しこむ。1 行削除 直前行の名前違ったら、 溜め込みがあれば計数を書き換え そのまま上行の処理へ。 溜め込みが無ければそのまま上の行の処理へ。 (1)は 各行処理を上行から行い 名前が変わるまで計数を足しこむ 変わったら前の氏名と溜め込美香さんした計数合計で書きだし。 足しこみ合計数を0 今の行の分を足しこむ 繰り返し。

関連するQ&A

専門家に質問してみよう