アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで重複している行(会社名)を統合して、
一つに集計したい。

各年度ごとの売り上げ数を集計したいのですが、
データ数が多く(全部で5000件ほど)手作業では困難なため
良い方法があれば教えてください。

「【エクセル】重複している行を統合し、値を」の質問画像

A 回答 (5件)

ピボットテーブルを使えばいいだけだと思います。

    • good
    • 1

こんばんは!



VBAでの一例です。
おそらくないとは思いますが・・・
A列重複会社に同じ商品が重複していても対応できるようにしてみました。

元データはSheet1にあり、Sheet2に表示するとします。
標準モジュールにしてください。

Sub Sample1()
Dim i As Long, lastRow As Long, lastCol As Long
Dim c As Range, myRng As Range, wS As Worksheet
Set wS = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS.Cells.Clear
With Worksheets("Sheet1")
If .Range("A1") = "" Then
.Range("A1") = "ダミー"
End If
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
lastCol = .Cells(2, Columns.Count).End(xlToLeft).Column
Range(.Cells(1, "B"), .Cells(2, lastCol)).Copy wS.Range("B1")
Set myRng = Range(wS.Cells(3, "B"), wS.Cells(lastRow, lastCol))
With myRng
.Formula = "=SUMIF(Sheet1!$A:$A,$A3,Sheet1!B:B)"
.Value = .Value
End With
For Each c In myRng
If c = 0 Then
c.ClearContents
End If
Next c
If .Range("A1") = "ダミー" Then
.Range("A1") = ""
wS.Range("A1") = .Range("A1")
End If
End With
Application.ScreenUpdating = True
MsgBox "完了"
End Sub

※ データ変更があるたびにマクロを実行する必要があります。m(_ _)m
    • good
    • 0

文字通り統合機能でもできそうですね。

    • good
    • 2

何のことはない、お茶の子です。


1.「0;;」に書式設定した Sheet2!B3 に次式を入力して、此れを右端まで
 ̄ ̄ズズーッとオートフィル
 ̄ ̄ =SUMPRODUCT((Sheet1!$A$3:$A$5000=$A3)*(Sheet1!B$3:B$5000))
2.範囲 B3:M3 のフィルハンドルを「エイヤッ!」とダブルクリック
    • good
    • 0

会社名をクリックして、データ 並べ替え (昇順でも降順でもよい)



データ - 小計
グループの基準 : 会社名
集計するフィールド 商品のすべて(会社名を除くすべて)
OK (小計機能を戻すときは[すべて削除])

画面左にできたグループナンバー[2]をクリック

場合により
A2セルクリック [Ctrl]+[Shift]+[*]
[Alt]+[;]
[Ctrl]+[C]

別のシートなどに貼り付け[Ctrl]+[V]
「【エクセル】重複している行を統合し、値を」の回答画像1
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!