プロが教える店舗&オフィスのセキュリティ対策術

エクセル初心者です。

エクセル365を使用しています。
下記のような一覧があり、日にちでフィルターをかけています。
フィルターでまとめた表の、28行目で1行空白の行を挿入してその空白行に合計金額を出したいです。

<元々の表>
A列  (B列~D列まで客先情報など) E列  D列  ・・・・J列
1/1                1/10 \10,000     1
1/10               1/15 \20,000     2
1/12               1/20 \111,000     3
1/22               1/25 \222,000     4
・(以下28行目まで続く)


1/25               1/31 \10,000     28
1/28               1/31 \20,000     29
1/29               1/31 \150,000     30


<変更後の表>
A列  (B列~D列まで客先情報など) E列  D列  ・・・・J列
1/1                1/10 \10,000     1
1/10               1/15 \20,000     2
1/12               1/20 \111,000     3
1/22               1/25 \222,000     4
・(以下28行目まで続く)


1/25               1/31 \10,000     28
(空白行)                 \1,000,000(上記の1~28行目までの合計)
1/28(29行目から更に続く)     1/31 \20,000     29
1/29               1/31 \150,000     30




E列でその月の1日~31日でフィルターをかけています。
J列はSUBTOTAL(3,A2,A2)の数式を入れて行数を出しています。
J列28行目に空白の行を挿入し、D列の28行目までの合計をその空白行に入れたいです。
29行目からは続きをさらに表示させたいです。

いくつか探して似たような過去質問から試しましたが中々うまくできず・・・
こういったことができる方法を教えてください。

よろしくお願いします。

A 回答 (2件)

こんばんは



>1行空白の行を挿入してその空白行に合計金額を出したいです。
実際にどうしたいのかよくわかりませんけれど、普通に行挿入してSUBTOTALの関数式を入力すれば算出可能なはずです。
当然ながら、異なるフィルターをかけたからといって、その小計行が移動してくれるようなことはありません。


もしも、『フィルターの内容にかかわらず常に29行目で必ず「小計」を算出したい』ということなら、別シート(別セル範囲でも可)に固定形式で抽出するようにしておけば可能でしょう。

>エクセル365を使用しています
とのことなので、FILTER関数が使えるはずと思いますので、どこかのセルにフィルター内容を入力するようにしておいて、1~28行目迄はFILTER関数でスピル、29行目に(固定で)小計の式を入力、30行目からFILTER関数で29行目以降をスピルするようにしておけば可能でしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
月ごとの集計表で、ページが4ページ前後あり、それぞれのページごとの合計を表示させたいのですが・・・。
1ページ目の合計を2ページ目の一番上の行に表示→この2ページ目の一番上の行が28行目になります。
毎月なので手間を省きたく、マクロでできれば・・・と思ったのですが・・・。

別シートのご提案ありがとうございます。
ただ、同じデータから似ているようで少し違う一覧が5つほどあり、それぞれに表示・印刷用と別シートがある・・・というのがなんとも・・・。

J列の28行目のところで1行挿入される、というだけのマクロだけでも教えてもらえると助かります。

よろしくお願いします。

お礼日時:2023/03/14 09:53

No1です。



>ページが4ページ前後あり、それぞれのページごとの合計を表示させたいのですが・・・。
固定形式の表にしたいのなら、固定形式(形式のみ)を先に作成しておいて、それを使い回せばよいというのがNo1の意味です。
(表示される内容は、可変です)

>毎月なので手間を省きたく~
回答の意味が通じていないのでしょうか?
事前に一度だけ作成しておけば、あとは、表示する月を指定するだけで自動で表示される仕組みですけれど・・?

>それぞれに表示・印刷用と別シートがある・・・というのがなんとも・・・。
シートを一つにしたければ、1シート内で処理すれば良いだけの話だと思います。
(No1の回答で「別シート」を例にしましたが、同一シートでも同じことは可能です)


>J列の28行目のところで1行挿入される、というだけのマクロだけでも教えてもらえると助かります。
「フィルター操作」や「マクロの実行」は手間とは感じていないようですね。
マクロで「行挿入」などを行うと、その後始末をどうするつもりなのかも不明ですけれど・・・
マクロがよくわからないのなら使用することはあまりお勧めはしませんけれど、どうやら拘っているようなので・・
以下、簡単な一例です。
Set c = Columns("J").Find(28, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then c.Offset(1).EntireRow.Insert
    • good
    • 0
この回答へのお礼

色々とありがとうございます。
参考にさせて頂きます。

ありがとうございました。

お礼日時:2023/03/15 09:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!