• ベストアンサー

A列の同文字終了で1行挿入後同文字行の合計値入力

Excel2013ですが表-1のA列同文字が終了したら同シートの表ー2のように1行挿入しD列に"合計"という文字、E,F列にA列の同文字に対しそれぞれに合計値を入れたいのですがVBAコードが解る方よろしくお願いします。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1620/2460)
回答No.1

> D列に"合計"という文字、E,F列にA列の同文字に対しそれぞれに合計値 説明と画像で列が違いますけど、コードは画像の方の列に合わせています。 なんか汚いコードですけど・・・一応動きます。 Sub Example() Dim MyDSum As Long, MyESum As Long, i As Long Sheets("Sheet1").Activate Application.ScreenUpdating = False i = 2 MyDSum = Cells(i, "D").Value MyESum = Cells(i, "E").Value Do If Cells(i, "A").Value = Cells(i + 1, "A").Value Then MyDSum = MyDSum + Cells(i + 1, "D") MyESum = MyESum + Cells(i + 1, "E") Else Cells(i + 1, "A").EntireRow.Insert Cells(i + 1, "C").Value = "合計" Cells(i + 1, "D").Value = MyDSum Cells(i + 1, "E").Value = MyESum MyDSum = Cells(i + 2, "D").Value MyESum = Cells(i + 2, "E").Value i = i + 1 End If i = i + 1 Loop Until Cells(i, "A") = "" Application.ScreenUpdating = True End Sub

kuma0220
質問者

お礼

難なくちょっとした応用でクリアでき非常に助かりましたありがとう御座います。

関連するQ&A

  • 列の同文字を続けて下行へ移動

    表-1A列に同文字"あ"があれば続けてその行を下行へ移動したいのですが表-2のようにA列に"あ"でまとめた行、次に"い"でまとめた行に入れ替えたいのですがVBAコードをお教え願います。

  • 項目別に合計数入力

    シート1の表-1にA~C列に文字とD,E列に数値が入力されておりシート2の表-2にA,B,C列の文字が同一行であれば1行とし違えば行を追加し同一行はD,E列の数値を加算していきたいのですがどなたかVBAコードか関数の解る方宜しくお願いします。

  • Excel VBA同一文字列のポイントを合計

    ExcelのVBAのコードを教えてください。 (自分で範囲(Rangeや Cells)のValueの合計などはできるのですが、グダグダ書くとわかりにくくなるので、やりたいこと=実現したいことのみ書きます) 画像の上図(青い線より上の図)は、現状もっているExcelのファイルです。緑のタイトルがついているE列までが実データです。 似たようなデータ(表)を含むワークシートがこのファイル(Book内)に複数あるのですが、とりあえず処理対象はアクティブな(選択して見ている)ワークシートを対象とします。 作業としては、上図のように6行目にタイトルが並んでおり、そのうちのC列「予約識別子」とD列「ポイント」を集計しています(処理対象はC, D列です)。予約を入れる「クリック」という「行為」に対して予約識別子が立って、それに対してポイントが溜まる、みたいなシステムです。最終行は毎月異なるので、n行としています。n行というのは、月によって100行のときもあれば、10000行を超えることもあります。 処理行為としては、黄色い2列を新たに加えて作業に使っています。 G列に計算式でC列(予約識別子)に重複がある行に1というフラグを建て、次にフィルターでC列の同じ文字列(例えば「CD08」)をフィルターして、Subtotalでそれぞれの文字列(例えば「CD08」)のポイントの合計を算出しています(F列の最初の識別子の行に、合計ポイントを入れている[F7の1000、F9の2500、F12の16000など])。 最終的に、図の青い線より下のような別シート(新シート)をつくっています。これが成果物です。(シート名はSheet1、Sheet(1)のような、単純につくった順番がわかれば良いです。) 現在計算式とフィルターでやっている処理は、100行程度であれば人の手でもすぐに終わるのですが、10000行を越えていると、時間がかかったり、操作する人によってはヒューマンエラーで計算ミスが起こります。 これをVBAでやりたいのです。 C列(文字列String)の重複をみつけ、D列のポイント数値(これは数字Longです)を合計して、別の新しいシートに左上(A1からで良い)並べたい。 これを実現するコードを教えてください。 なお (ここから下はマストではないのですが) 集計後の識別子の並びは、重複したものがみつかっても最初に出現した行の文字列を一覧の最初に残したいと思っています。 例えば7行目にある「CD08」(青いセル)は上図の表では1行目、10行目に出現しているのですが、下図のシートでも最初に出現した行(新シートでも最初の行)に入れたい。 上図の12行目にある「E3EA」(ピンク)は、15,19,20行にもありますが、12行目を最初の出現とし、「BF0D」の次に置いています。 これはクリックをされた方が、複数の商品に対して予約行為(クリック)を行えますが、予約時刻を記録している列がすでに削除されてしまっているため、予約順(最初の一手の早押し順)を見える化しておきたいのです。

  • 同列に文字入力があるまで隣列の個数を合計

    excelシートに以下のような表があり別表に下記項目に基づき合計値を入力したい。 1. I3セルにD列項目「あ」のうちB列記号「A+B+C」のF列個数合計を入力 2. J3セルにはD列項目「あ」のうちB列記号「D」のF列個数合計を入力 3. I4セルにD列項目「い」のうちB列記号「A+B+C」のF列個数合計を入力 4. J4セルにはD列項目「い」のうちB列記号「D+E」のF列個数合計を入力 以下続くのですが関数もしくはVBAコードが解る方宜しくお願いします。

  • Excelの行挿入で

    Excelのシートにデータがつまっているのですが(これから新しく表を作るということではないということです。)、行の挿入をしたいのです。 このとき、行を選択して、右クリックで「挿入」を選べば挿入自体はできます。 しかし、 既にある表は、行が、A列とB列が結合されているのですが、 単に上記のように挿入すると、 A列B列が分かれている行が挿入されてしまいます。 新しく挿入された行のA列とB列を選択して、「セルの書式設定」の「配置」でセルを結合させてもいいのですが、 いちいちそうしなくても 挿入時点ですでに結合されているようにするにはどうすればよいですか。 (Excel2000)

  • 列に指定文字が合えば合計値を入力

    Excel2013使用で簡略に作成したのですが集計表の文字Aの1、セルC15にリスト表Aの○合計個数2を入力したい、集計表文字A、B、Cそれぞれの行にリスト表○文字合計数を入力したいのですがセルに入れる関数をお解りの方宜しくお願いします。

  • (VBA)対応する番号の下に行挿入して文字列を追加

    以下を行うVBAのコードを知りたい シート名「Extra」のA列に文字列が複数行に渡って記入されています 必ずA1は1で数行後に2と以後連番が続く形式です。 Sheets名「Time」は、 A列に1から始まる連番 B列にA列に対応する文字列が対であります。 やりたいことは、 「Time」のA列の連番と「Extra」にある同じ連番行の一つ下に行を挿入して 「Time」のA列と同じ行のB列の文字列を書き込みです。 例えば、「Extra」が 435 ABC で 「Time」 435 123456 ならば 「Extra」を以下のように書き換える 435 123456 ABC 判りにくい内容でしょうがよろしくお願いします。 ’-----------------------------------------

  • Excel2016で文字列の一括置換を行うVBA

    Excel中級者です。Windows10, Excel2016で、別の「マスタ」シートにある表に従い、「Data」シートにある文字列を一括置換するVBAを教えていただけますと幸いです。マスタ表は2列 100行で1列目に置換前の語、2列目に置換後の語があります。dataシートは1顧客1行で、20列に商品名が入っており、同シートで一括置換を実行したく存じます。どうぞよろしくお願い申し上げます。

  • 列にある指定文字のその行の指定文字の合計数

    ExcelでセルH1文字"う"がA列の文字とマッチした文字"う"の行B3:F3の文字"A"のみを合計しセルI1に数値3をつづいてH2文字に対してI2にA列文字"こ"の行"A"の合計数を入力したくI列に入れる関数をどなたか解る方宜しくお願いします。

  • excelで行挿入について

    excel97を使っているのですが、まず下の表を見てください。 行/列   A  B  C   1  メーカ      2  あ           3  い             4  合計           5  う         6  え           7  お              8  か                このような表があるのですが、行1~4で一つのグループなんです。 同じように  行4と行5の間に「メーカ」  行6と行7の間に「合計」 というふうに「メーカ」挿入、2行空けて「合計」挿入、「メーカ」挿入・・・を約千行分繰り返して 行/列  A  B  C  1  メーカ      2  あ      3  い      4  合計      5  メーカ      6  う      7  え      8  合計      9  メーカ     10  お     11  か     12  合計     このようにしたいのですが、簡単な方法は無いでしょうか?