Excel VBA 質問スレッド №1296 (解決済)

空白行で仕切られているグループ毎の集計を出すには

投稿者 : 初心者ですみません     投稿日時 : 2023/02/28(Tue) 13:37:45     OS : Windows 11     EXCEL : Excel 2021
エクセルのタイトルは地域グループ名、店舗コード、店舗名、数量・・・・となっており、数量の下が合計行、その下が空白行で区分され、次の地域グループ名になります。グループごとの店舗数は異なります。グループは約20ほどあります。これを次のように編集したいと思いますがうまくいきません。どなたか詳しい方ご教示頂けると助かります。

1)店舗名と数量の間に列を挿入し、グループごとの店舗の数量の合計を表示して店舗数の行数でセルの結合をする。数量の下の合計行は残したままです。

2)地域グループを区分している空白行はすべて削除する。

3)地域グループ名は合計行まで含めてセルの結合をしてあるので一旦解除し、1)と同じ店舗の行数でセルの結合を行う。

以上です。よろしくお願いします。

スポンサーリンク
[返信 1] Re : 空白行で仕切られているグループ毎の集計を出すには
投稿者 : さんこう     投稿日時 : 2023/02/28(Tue) 13:50:35
>これを次のように編集したいと思いますがうまくいきません。

どのように「うまくいかない」のですか?

[返信 2] Re : 空白行で仕切られているグループ毎の集計を出すには
投稿者 : 初心者ですみません     投稿日時 : 2023/02/28(Tue) 15:03:33
■[返信 1] さんこうさん(2023-02-28 13:50:35)の記事
> >これを次のように編集したいと思いますがうまくいきません。

> どのように「うまくいかない」のですか?

超初心者のため、一つの表であれば集計したり並べ替えたりすることはできるのですが、空白行で区分された行数の違うグループごとのまとまりに対し、合計したり1行減らしてセルの結合をするという方法がわかりません。

[返信 3] Re : 空白行で仕切られているグループ毎の集計を出すには
投稿者 : さんこう     投稿日時 : 2023/02/28(Tue) 16:35:24
>空白行で区分された行数の違うグループごとのまとまり

たとえば、D2セルからのまとまりを取得するなら、↓でまとまりの最後の行番号を得ることができます。

Range("D2").End(xlDown).Row


>合計したり

すでに、「数量」の一番下にかかれているのですよね?


>1行減らしてセルの結合をする

すでにある結合を解除しておいて、「店舗数の行数でセルの結合」と同じ行数で結合すればいいでしょう。

[返信 4] Re : 空白行で仕切られているグループ毎の集計を出すには
投稿者 : 初心者ですみません     投稿日時 : 2023/02/28(Tue) 16:44:04
■[返信 3] さんこうさん(2023-02-28 16:35:24)の記事
> >空白行で区分された行数の違うグループごとのまとまり

> たとえば、D2セルからのまとまりを取得するなら、↓でまとまりの最後の行番号を得ることができます。

> Range("D2").End(xlDown).Row


> >合計したり

> すでに、「数量」の一番下にかかれているのですよね?


> >1行減らしてセルの結合をする

> すでにある結合を解除しておいて、「店舗数の行数でセルの結合」と同じ行数で結合すればいいでしょう。



連続したひとつの表ならばそれでいいですが、一つのグループの処理が終わってから空白行を飛ばして次のグループを選択し同じように処理を連続して行う方法がわかりません。


[返信 5] Re : 空白行で仕切られているグループ毎の集計を出すには
投稿者 : 結合セル     投稿日時 : 2023/02/28(Tue) 16:48:05
結合セルについて少し

https://excel-design-dr.com/tips-why-cell-binding-prohibited/

[返信 6] Re : 空白行で仕切られているグループ毎の集計を出すには
投稿者 : さんこう     投稿日時 : 2023/02/28(Tue) 16:52:31
>一つのグループの処理が終わってから空白行を飛ばして次のグループを選択し

「一つのグループ」の最後の行の次が空白行で、その次が「次のグループ」の最初なのではないですか。

[返信 7] Re : 空白行で仕切られているグループ毎の集計を出すには
投稿者 : 初心者ですみません     投稿日時 : 2023/02/28(Tue) 17:12:28
■[返信 6] さんこうさん(2023-02-28 16:52:31)の記事
> >一つのグループの処理が終わってから空白行を飛ばして次のグループを選択し

> 「一つのグループ」の最後の行の次が空白行で、その次が「次のグループ」の最初なのではないですか。

そのとおりです。空白行があるとそこでマクロは止まりますが、空白行を飛ばして次のグループに連続して自動的に移動させる方法が分かりません。グループの店舗数が異なるので同じ行数でもありません。

[返信 8] Re : 空白行で仕切られているグループ毎の集計を出すには
投稿者 : さんこう     投稿日時 : 2023/02/28(Tue) 17:15:41
>空白行があるとそこでマクロは止まりますが

そのように書かれたコードがあるなら、提示してください。

シートのレイアウトが曖昧なままで回答すると、行き違いが生じて無駄になります。

[返信 9] Re : 空白行で仕切られているグループ毎の集計を出すには
投稿者 : 初心者ですみません     投稿日時 : 2023/02/28(Tue) 18:03:28
■[返信 8] さんこうさん(2023-02-28 17:15:41)の記事
> >空白行があるとそこでマクロは止まりますが

> そのように書かれたコードがあるなら、提示してください。

> シートのレイアウトが曖昧なままで回答すると、行き違いが生じて無駄になります。

一つの表であれば書くことはできますが、グループ全体が終了するまで空白行を飛び越しながら連続して各グループを自動選択していくコードが分かりません。
自分なりにもう一度考えて見ます。お時間をかけてしまいすみませんでした。

[返信 10] Re : 空白行で仕切られているグループ毎の集計を出すには
投稿者 : さんこう     投稿日時 : 2023/02/28(Tue) 19:10:15
もう見ていないと思いますが、

「グループ全体が終了するまで空白行を飛び越しながら連続して各グループを自動選択していく」

というより、

1つの表の処理が終わったら、空白行を無視(読み飛ばす)して、次の表の処理をする

といった感じにしましょう。

[返信 11] Re : 空白行で仕切られているグループ毎の集計を出すには
投稿者 : 初心者ですみません     投稿日時 : 2023/03/01(Wed) 05:29:46
■[返信 10] さんこうさん(2023-02-28 19:10:15)の記事
> もう見ていないと思いますが、

> 「グループ全体が終了するまで空白行を飛び越しながら連続して各グループを自動選択していく」

> というより、

> 1つの表の処理が終わったら、空白行を無視(読み飛ばす)して、次の表の処理をする

> といった感じにしましょう。


ご親切にして頂いたのに、これ以上初心者の私に付き合わせては申し訳ないと思い、こちらからやめてしまい大変失礼いたしました。ご意見を参考にもう一度勉強してみます。空白行を無視(読み飛ばす)方法を考えてみます。大変でも自分で考えるのが一番力がつくはずですから。本当にご親切に有り難うございました。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-10-29 05:53:17 )
タイトルとURLをコピーしました