• ベストアンサー

合計の計算

pkh4989の回答

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.4

こんにちは。 不具合が有るかも知れませんが、試してみてください。 Type wTBL   GOODS()   As String   KIN()    As Double   cnt     As Integer End Type Dim Sum(12)   As wTBL Sub 月別集計()   Dim wR     As Long   Dim wI     As Long   Dim wM     As Integer   Dim wS     As String   Dim fFlg    As Boolean   Dim eR     As Long   '   Erase Sum   SumCnt = 0   With ActiveSheet     '集計処理     For wI = 2 To .Range("K" & Rows.Count).End(xlUp).Row       fFlg = False       wM = .Cells(wI, "K")    '月       wS = .Cells(wI, "L")    '商品       For wY = 1 To Sum(wM).cnt         If Sum(wM).GOODS(wY) = wS Then           fFlg = True           Exit For         End If       Next       If fFlg Then         'ワークテーブルに商品が存在する時         Sum(wM).KIN(wY) = Sum(wM).KIN(wY) + .Cells(wI, "M")       Else         'ワークテーブルに商品が存在しない時         Sum(wM).cnt = Sum(wM).cnt + 1         ReDim Preserve Sum(wM).GOODS(Sum(wM).cnt)         ReDim Preserve Sum(wM).KIN(Sum(wM).cnt)         Sum(wM).GOODS(Sum(wM).cnt) = wS         Sum(wM).KIN(Sum(wM).cnt) = Sum(wM).KIN(Sum(wM).cnt) + .Cells(wI, "M")       End If     Next     '     '展開処理(A列に商品名を設定してもしなくても処理出来ます)     'A列に商品名が設定されていない時は商品名を設定しながら展開します     eR = 2     For wI = 4 To 11        '4月~11月       For wY = 1 To Sum(wI).cnt  '月別商品件数         wR = .Range("A" & Rows.Count).End(xlUp).Row         If wR < 3 Then           eR = eR + 1           .Cells(eR, 1) = Sum(wI).GOODS(wY)           .Cells(eR, wI - 2) = Sum(wI).KIN(wY)         Else           fFlg = False           For wZ = 3 To wR             If .Cells(wZ, 1) = Sum(wI).GOODS(wY) Then               fFlg = True               Exit For             End If           Next           If fFlg Then             .Cells(wZ, wI - 2) = Sum(wI).KIN(wY)           Else             eR = eR + 1             .Cells(eR, 1) = Sum(wI).GOODS(wY)             .Cells(eR, wI - 2) = Sum(wI).KIN(wY)           End If         End If       Next     Next   End With End Sub

関連するQ&A

  • excel2016の計算方法を教えてください。

    L列に”内”や”無”と入力したらM列にK列の数学が入力され、 L列に10%と入力すると110に計算される・ L列8%と入力したらM列(支出合計)に108と計算される方法を教えてください。 よろしくお願いいたします。   I    J     K   L M    N   O 支出金額 支出個数 支出小計 税 支出合計 差引残高 備考  100     1     100  内  100  100     1 100 無  100 100     1     100  10%  110 100 1 100 8%  108

  • Excelの合計計算について

    条件式付で縦計を計算したいのですが、その方法を教えてください。 A列の値が"売上" とある時 B列 の値を合計する。 ' EX(例)---------------------------- A列    B列 "売上"   1000 "入金"   2000 "売上"   3000 . . 売上合計  4000(売上)のみの合計 以上の計算式を作りあいのですがごぞんじの方どなたか教えてください。 お願いします。  

  • 【マクロ】数の合計の表を作成【Ecexl】

    D、I列に文字と数字が入ったエクセルシートがあります。 下記のように、L、Mに合計の表を完成させたいです。 今後も同じ作業をしますので、 マクロで一気に表を作成できたらと思います。 分かる方おりましたら、 ご教授いただきたいです。 ↓↓↓ D     I  L  M ------------------------------------- #1aaa  23 合計 #2   12 #1 77 #1bbb  54 #2 14 #3   33 #3 33 #2ccc  2 #4 1 #4   1 ※「#1」という文字が入っていれば、 そのあとにどんな文章が続いていようと合計する (例:#1と#1aaaは合計する)

  • 基準列ごとの合計

    添付ファイルにある様なA列のIDを基準としてQ列(数量)の合計値をW列(数量合計)に計算したいのですが、ワークシート関数を使って集計範囲をドラックすれば簡単に合計出来ますが、週計範囲が実データでは多行にわたる為、手動での計算は非常に手間が掛ります。 出来ればVBAを使って、一気に計算する方法をお分かりの方いましたらご教示願います。 ※A列のIDは、IDごとに最上段行のみの入力(表示)となります。(同じIDの場合は、入力がありません。) ※実際の表には、この計算には関係のない項目の列があります。(A,B,Q,W列以外)

  • EXCEL VBAのFor...Nextについて

    VBA初心者です。よく理解していませんので、質問も的を得ていないかもしれませんが、ご指導宜しくお願いいたします。  現在、For...Nextを使った表計算をしています。 A列に「す」という文字が含まれていたら、B列の「す」の行に「あ」と「い」と「え」「か」のセルの合計をだす。C列、D列・・・最終列まで計算する。 上記VBAを作成する方法を教えて下さい。 A  B  C  D  E   F  G  H  I  J  K  L 1 2    3    4   5    6    7    8    9    10    11 12 あ  1 2 3 4   5 6 7 8 9 10 11 い 10 20 30 40  50 60 70 80 90 100 110 う 20 30 40 50   60 70 80 90 100 110 120 え 40 50   60  70 80 90  10 20 120 130 30 お 50 60   70  80 90 10  20 30 130 140 40 か 60 70   80  90 10 20  30 40 140 150 50 す 私は表に1~12まで数字をインプットし下記のようなコードを考えました。 Sub 列合計() Dim i, k, l, m, n As Long j = 2 For i = 6 To 120 For k = 6 To 120 For l = 6 To 120 For m = 6 To 120 For n = 6 To 120 If Cells(i, 1) = "す" And Cells(k, 1) = "あ" And Cells(l, 1) = "い" And Cells(m, 1) = "え" And Cells(n, 1) = "か" Then Do While j <= Range("A2").End(xlToRight) Cells(i, j) = Cells(k, j) + Cells(l, j) + Cells(m, j) + Cells(n, j) j = j + 1 Loop Else: End If Next n Next m Next l Next k Next i End Sub この内容だとエラーが出てしまいます。 補足ですが、あいうえおかの順番はかわったり、間に他の行が入ったりします。 また今回はL列の間としましたが、もっと列が増え、最終列まで計算する方法を知りたいのですが、どうぞ宜しくお願い致します。 ※ofice2013です。

  • 範囲指定合計の計算方法

    A列でD1セルの日付(21/2/10)から4日前(21/2/4)までの担当Aの売上の合計を計算する方法をご教示願います。添付画像の場合だと「1600」になります。 ※1 A列の日付はユニークです。 ※2 D1に入る日付は変わります。

  • 計算式で出た値の合計額を計算する 他

    振り込み額が3万円以上ならいくら、未満ならいくら、と 銀行振込の手数料を計算するために =IF(K74>=30000,"315",IF(K74>=10000,"105","0")) =IF(K79>=30000,"630",IF(K79>=1,"420","0")) M列にこんな関数を入れました。(行5から209まで。K列が振込額です) これら、手数料を合計しようと オートザム(=SUM(M5:M209))を使ったら、値がまったく出ず0になってしまいます。 どうすれば合計額を出せるのでしょうか。 そもそも、Kに数値が入っていない状態で(数式は入っていますが) 3万以上のときに表示される条件になっている数値が出てきてしまっています。式がおかしいのでしょうか。 ちなみに、上記K列には =IF(J5-N5>=100000,"",IF(J5-N5=0,"",J5-N5)) という関数を入れて10万以上と0なら表示しない、10万未満なら表示というようにしているのですが、(J列が買掛金、N列が相殺額です) こちらが影響しているのでしょうか? 助けてください。宜しくお願いいたします。

  • 合計計算

    エクセル2000です。A列に数値が入っています。B列に 合計を出したいんですけど、B1に50がいった時B1のところで +マークにして オートフィルで合計していくにはどうしたらよいですか。 A列に100個ぐらいの数値があり途中の合計を見たいのです。   A   B  1  50  50 2 100  150  3 100  250 4  50  300  

  • Σで合計が出ない!

    よくわかりませんですみませんが、office softは2000前後のバージョンだと思います。 Excelで簡単な表を作ったら、ある数字のみの列の下に合計を入れるため、いつものようにΣを入れたら、合計が「0」になってしまうか、「=SUM(I2:I30)」計算式のままの表示になってしまう。 原因はいくら探しても全然わかりません、考えられる原因と解決法を教えてください。 よろしくお願い致します。

  • 年毎の合計式

    A列のA15以下(A15:Axx)に年/月が入力されています。対応したB列、C列、‥‥列に数値が入っています。 指定年に対応したB列の合計を、c列の合計を、‥‥列の合計を、それぞれの指定年行に設定したいのですが、計算式が分かりません。 どなたかご指導願えませんでしょうか。 以下は例題です(数値は適当、正式な表は添付キャプチャ画です)。 考え方としてはB 列合計2020セルに=SUMIF($A15:$A$260,YEAR(A15:A260)=2020,$B$15:$B$260)と入力すると2020年の合計になる様にしたいのです。ほかの合計セルにも同様式(参照箇所変更し)設定する。※年月列から指定年を検索し、その合計を求める。 A列       B列           C列        ‥‥列 合計2020   2020年の合計   2020年の合計 合計2019   2019年の合計   2019年の合計 合計2018   2018年の合計   2018年の合計 ・ ・ ・ 14行目 2020/05   500   400 2020/04   150000   800000 2020/01   60000   7000 2019/12   500   400 2019/08   150000   80000 2019/06   60000   7000 2019/04   8000   500 ・ ・ ・