• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelシリアル番号別に数の和を算出するマクロ)

Excelシリアル番号別に数の和を算出する方法

このQ&Aのポイント
  • Excelを使用して、D列に昇順で並んだシリアル番号と、それに対応するAN列の数字の和を求める方法を教えてください。
  • AN5の数字の和を求める方法や、AN20からAN27までのセル内の数字の和を求める方法を教えてください。
  • Excelには約1万行に約1000のシリアル番号があり、手作業では時間がかかってしまいます。効率的な方法を教えてください。

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

  • ベストアンサー
回答No.2

BJ1のセルに =IF(D1<>D2,SUMIF(D:D,D1,AN:AN),"") と入力して、下方向にコピー。

sherman
質問者

補足

この方法が一番速いですね。 列に散らばって存在する合計を 別紙に転記するのが時間が掛かって 残念なのが・・・

その他の回答 (3)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.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

sherman
質問者

お礼

ご回答ありがとうございます。 早速試してみます。

  • emaxemax
  • ベストアンサー率35% (44/124)
回答No.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

sherman
質問者

お礼

ご回答ありがとうございます。 早速試してみます。

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

SUMIF関数一発の話のような気がしますけど。 http://kokoro.kir.jp/excel/sumif.html 参照するシリアル番号が多いなら、ピボットテーブルを使うと これまた一発じゃないかと。 http://www.eurus.dti.ne.jp/yoneyama/Excel2007/excel2007-piv.html

関連するQ&A