![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
質問番号:4708445で回答頂きありがとうございます。引き続き申し訳ありません。
質問内容が文字数制限を意識する余り、舌足らずとなっておりました。
表構成(行見出し)は以下の通りです。
年度・お名前・ランク1・ランク2・金額 (ランクは1~4) このような複数の表をランク1、ランク2でフィルタ抽出(ランク1=1、ランク2=1等)し、抽出結果を集計シートに転機します。転記する際にラスト行を取得して合計を求めるのですが、抽出ランクにより、表毎に抽出先の数は変化(よって抽出行は可変する)します。抽出条件を変えるため、結果、集計シートは、上記行見出しは同じですが、行数は異なる表が複数貼付られます。貼付時、第1の表から3行下空白で第2の表以下を貼付します。その後、表毎の最終行に合計(SUM)したいのですが、表現が稚拙で申し訳ありませんでした。
SUBTOTAL関数ですと、第1の表の合計セルの式をコピペで行うようになると思いますが、ここ作業をVBAではできないのでしょうか?
No.3ベストアンサー
- 回答日時:
#2です。
貼付けた表がいくつもあり、表と表の間に空白行(2行以上とか)があって、
そのうちの上の空白行に合計を入れるとします。
例えばA列に数値が入力されてますが、ちらほら空白セルがあったとします。
その空白セルに上のセルの合計を代入するとしたら、
Sub try()
Dim r As Range
For Each r In Range("A1", Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlTextValues).Areas
r.Offset(r.Rows.Count).Resize(1).Value = WorksheetFunction.Sum(r)
Next
End Sub
>表毎の最終行に合計(SUM)したいのですが
こんな感じのものかな。
n-junさん、早速の回答、本当にありがとうございました。
ご教示頂いたコードにより、表毎に合計を求めることができました。
web2525さんも、SUBTOTAL関数の存在を教えて頂き、ありがとうございました。
No.2
- 回答日時:
>質問番号:4708445
は終りであれば閉じて下さい。
貼付けた後の事であれば、例えばA列の合計なら
Sub try()
With Range("A1", Cells(Rows.Count, 1).End(xlUp))
.Offset(.Rows.Count).Resize(1).Value = WorksheetFunction.Sum(Range(.Address))
End With
End Sub
でA列の最終行の1つ下に合計を表示できます。
それ以外については表構成が不明なのでわかりません。
⇒表構成はシート上にどのように表が作られているか?
A列が年度とか。2行目に項目行があり3行目以下にデータを貼付けるとか。
この回答への補足
>質問番号:4708445
は締切ました。
それと誠に申し訳ありません。表構成(行見出し)でなく、列見出しです。すみませんでした。
貼付後の表構成は、以下の通りです。
年度 お名前 ランク1 ランク2 金額
1 18 あああ 1 2 10
2 18 いいい 1 2 20
3 18 おおお 1 2 15
4
5
6
7 年度 お名前 ランク1 ランク2 金額
8 18 えええ 2 1 10
9 18 かかか 2 1 15
10
11
12
13 年度 お名前 ランク1 ランク2 金額
14 18 ききき 2 1 10
15 18 さささ 2 1 5
16 18 せせせ 2 1 20
17 18 けけけ 2 1 5
18 18 こここ 2 1 15
19
この表の最終行の下(4行目)に金額合計を表示、次の表の最終行(10行目)に金額合計を表示・・・としたいのです。表ごとに行数が変わるので合計行の取得に悩んでいます。
n-junさんのSub try()を上の表で、
With Range("E1", Cells(Rows.Count, 5).End(xlUp))
.Offset(.Rows.Count).Resize(1).Value = WorksheetFunction.Sum(Range(.Address))
として、実行したのですが、4行目に合計が表示されず、19行目に累計で表示されます。もともと、当方の質問が拙いためご迷惑をおかけしておりますが、引き続き、ご教示願います。
No.1
- 回答日時:
フィルターでの抽出は表示上の変更だけ
(条件に合わない行は表示していないだけ)
SUM関数だと表示されていないセルまで合計されます。
そのための関数としてSUBTOTAL関数が存在します。
マクロで最終行を求めた場合のセル行はフィルターに掛ける前の行番号と同じ行番号を示します。
フィルターを掛けた場合の合計値を求めるのであれば、データの最終行の下にSUBTOTALで合計を求める式を入れ、マクロ上でそのセル値を参照すれば良いだけです。
フィルターで表示行が変化しても集計セルの位置は変化しません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) 【詳しい方教えて下さい】EXCEL条件に一致する値の複数抽出 9 2022/04/29 10:56
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Excel(エクセル) エクセルのVBAで上の表の最下行を求める 4 2022/09/14 15:22
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) エクセルで得点に対応する文字を求める 3 2023/05/31 09:18
- Excel(エクセル) エクセルのマクロで複数条件に当てはまるものを全て抽出したいです 7 2022/05/21 08:51
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
エクセルでCSVを編集するとき、...
-
数式による空白を無視して最終...
-
エクセル 連番が途切れていると...
-
「データ要素を線で結ぶ」がチ...
-
excel2010 空白セルにのみ貼り...
-
【Excel】 csvの作成時、空白セ...
-
ピボットテーブルで空白セルの...
-
関数TRANSPOSEで空白セルを0に...
-
Excel > ピボットテーブル「(空...
-
空白セル内の数式を残したまま...
-
エクセルで上の行の値を自動的...
-
Excelで、入力文字の後に自動で...
-
vlookup にて、返す値が、空白...
-
色つき行の一括削除は?
-
形式貼り付けの「空白を無視す...
-
空白行がある場合削除 マクロ
-
【Excel】 Ctrl+方向キー で空...
-
SUMIFS関数で「計算式による空...
-
Excel:関数が入っているセルに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
数式による空白を無視して最終...
-
エクセルでCSVを編集するとき、...
-
Excel > ピボットテーブル「(空...
-
「データ要素を線で結ぶ」がチ...
-
ピボットテーブルで空白セルの...
-
関数TRANSPOSEで空白セルを0に...
-
空白セル内の数式を残したまま...
-
excel2010 空白セルにのみ貼り...
-
エクセル 連番が途切れていると...
-
Excel:関数が入っているセルに...
-
Excelで、入力文字の後に自動で...
-
《Excel2000》SUMPRODUCT関数で...
-
SUMIFS関数で「計算式による空...
-
形式貼り付けの「空白を無視す...
-
エクセルで数式の入ったセルの...
-
【Excel】 csvの作成時、空白セ...
-
エクセルで、「複数のセルの中...
-
エクセルで上の行の値を自動的...
-
空白を0とみなす関数
おすすめ情報