こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelシリアル番号別に数の和を算出するマクロ

こんにちは。
Excel2007を使用しています。

D列にシリアル番号が昇順で入っています。
一つだけの場合も複数の場合もあります
(D5に一つだけシリアル番号0002、D20からD27まで同じシリアル番号0006のように)

AN列に数字が入っています。

D列の同じシリアル番号のAN列の数字の和を求めたいと思います

AN5だけ、(これは合計とは言えませんが)
あるいはAN20からAN27のセル内の数の和ように

合計をBJ列に出力したいです。
BJ5に6とか、BJ20に41とか。

約1万行に約1000のシリアル番号があるので手作業では
時間ばかり掛かってしまいます

うまいやり方をご存じの方お教えください。
よろしくお願いいたします。

投稿日時 - 2012-12-18 14:13:57

QNo.7850523

すぐに回答ほしいです

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

BJ1のセルに

=IF(D1<>D2,SUMIF(D:D,D1,AN:AN),"")

と入力して、下方向にコピー。

投稿日時 - 2012-12-18 15:22:04

補足

この方法が一番速いですね。

列に散らばって存在する合計を
別紙に転記するのが時間が掛かって
残念なのが・・・

投稿日時 - 2012-12-19 09:11:03

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

こんばんは!
横からお邪魔します。
VBAでの一例です。
シートモジュールにしていますので、
画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。

Sub Sample() 'この行から
Dim i As Long
Application.ScreenUpdating = False
For i = 2 To Cells(Rows.Count, "D").End(xlUp).Row '←2行目~D列最終行まで
If WorksheetFunction.CountIf(Range(Cells(2, "D"), Cells(i, "D")), Cells(i, "D")) = 1 Then
Cells(i, "BJ") = WorksheetFunction.SumIf(Range("D:D"), Cells(i, "D"), Range("AN:AN"))
End If
Next i
Application.ScreenUpdating = True
End Sub 'この行まで

※ データは2行目以降にあるとしています。

こんな感じではどうでしょうか?m(_ _)m

投稿日時 - 2012-12-18 19:13:42

お礼

ご回答ありがとうございます。

早速試してみます。

投稿日時 - 2012-12-19 09:08:04

ANo.3

ご要望のマクロの一例です。

Sub test01()
  Dim myV, myW, myX
  Dim myRng As Range
  Dim i As Long, j As Long, tmp As Long
  Set myRng = Range("D2", Cells(Rows.Count, "D").End(xlUp))
  myW = myRng.Offset(, 36).Value
  myV = myRng.Resize(myRng.Count + 1, 1).Value
  j = UBound(myW, 1)
  ReDim myX(1 To j, 1 To 1)
  For i = LBound(myV, 1) To j
    If myV(i, 1) <> myV(i + 1, 1) Then
      myX(i, 1) = tmp + myW(i, 1)
      tmp = 0
    Else
      tmp = tmp + myW(i, 1)
    End If
  Next
  Range("BJ2").Resize(j, 1).Value = myX
End Sub

投稿日時 - 2012-12-18 18:11:58

お礼

ご回答ありがとうございます。

早速試してみます。

投稿日時 - 2012-12-19 09:08:21

ANo.1

SUMIF関数一発の話のような気がしますけど。
http://kokoro.kir.jp/excel/sumif.html

参照するシリアル番号が多いなら、ピボットテーブルを使うと
これまた一発じゃないかと。
http://www.eurus.dti.ne.jp/yoneyama/Excel2007/excel2007-piv.html

投稿日時 - 2012-12-18 14:18:27

あなたにオススメの質問