Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10736 / 13644 ツリー ←次へ | 前へ→

【20135】重複するデータを集計して削除 なんQ 04/11/29(月) 15:00 質問[未読]
【20141】Re:重複するデータを集計して削除 Kein 04/11/29(月) 16:27 回答[未読]
【20158】Re:重複するデータを集計して削除 なんQ 04/11/30(火) 2:30 お礼[未読]

【20135】重複するデータを集計して削除
質問  なんQ  - 04/11/29(月) 15:00 -

引用なし
パスワード
   はじめまして。質問させてください。

下記のようなテキストのデータを集計したいのですがうまくマクロが組めません。

  A    B   C   D   E・・・・・
1INDEX番号 金額  取引先 明細・・・・・・・・・
2DDS00123  30000  A社  2*2 
3DDS00123  1500  A社  2*2
4ERT00695  29800  B社  3*2
5ERT00690  31500  C社  5*3
6EXT32547  90000  D社  1*2
7EXT32547  4500  D社  1*2



重複するINDEX番号の行の金額を合算して一行にして表示させたいのです。
(二行目を削除したい)
消費税額分の行が重複するINDEX番号で現れる為なのですが金額以外の列
項目内容は全く同じです。
列項目はCI列まであり、行数は多くても5000行程度です。

過去ログも検索いたしましたが、今ひとつうまくヒットしません。
何卒お力をお貸しくださいますようお願いいたします。
よろしくお願いいたします。

【20141】Re:重複するデータを集計して削除
回答  Kein  - 04/11/29(月) 16:27 -

引用なし
パスワード
   別のシート(仮に Sheet2) に転記する、というのでよければ

Sub MyTotal()
  Application.ScreenUpdating = False
  With Sheets("Sheet2")
   .Cells.ClearContents
   Rows(1).Copy .Range("A1")
  End With
  Range("A1").Subtotal 1, xlSum, Array(2)
  With Range("C2", Range("D65536").End(xlUp).Offset(1))
   .SpecialCells(4).FormulaR1C1 = "=R[-1]C"
   .Copy
   .PasteSpecial xlPasteValues
  End With
  With Sheets("Sheet2")
   Range("B2", Range("B65536").End(xlUp).Offset(-1)) _
   .SpecialCells(3).EntireRow.Copy .Range("A2")
   .Cells.RemoveSubtotal
   With .Range("A:A")
     .Font.Bold = False
     .Replace "計", ""
   End With
  End With
  Cells.RemoveSubtotal
  With Application
   .CutCopyMode = False
   .ScreenUpdating = True
  End With
End Sub

>テキストのデータ
テキストファイルからなら、Application.ScreenUpdating = False の次に
OpenTextメソッドで開いておきます。CSVなら Openメソッドで充分です。
いずれにしても別ファイルを開くことになるので、Sheets("Sheet2")には
ThisWorkbook.Sheets("Sheet2") と、転記先ブックへの参照を追加しておいて
下さい。開いたファイルは ActiveWorkbook.Close False で閉じて終了するように
します。

【20158】Re:重複するデータを集計して削除
お礼  なんQ  - 04/11/30(火) 2:30 -

引用なし
パスワード
   ▼Kein さん:
>別のシート(仮に Sheet2) に転記する、というのでよければ

即答いただきましてありがとうございます。
作っていただいたコードでなんとかうまくいきそうです。

ただ一点だけ、空白セルの処理はどうしたらいいでしょうか。
説明が不足していて申し訳ありません。
データが連続していない列があるのです
列項目によって元データ上で空白セルがあるのですが、マクロで
SHEET2に転記される時に空白セル内に一行目の項目名がペースト
されてしまいます。
  A    B   C   D   E・・・・・
1INDEX番号 金額  取引先 明細  取引方法  ・・・・・・・・・
2DDS00123  31500  A社  2*2  取引方法 
3ERT00695  29800  B社  3*2   1
4ERT00690  31500  C社  5*3   2
5EXT32547  94500  D社  1*2  取引方法 




空白セルがあったら0値を入れてデータを連続させるように
してみたんですがぜんぜんスマートじゃないので・・・もっと
すっきりした解決法があったらご教示願います。
よろしくお願いいたします。

10736 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free