プロが教えるわが家の防犯対策術!

棚卸表を作成しました。
種類ごとにシートを作成して、シートごとに小計を記載しています。
最後のシートに総合計を出したいのですが、シートごとに小計のあるセルの位置が違います。総合計を出したい最後のセルをクリックして、
Σの合計をクリック→最初のシートの小計クリック→shiftを押しながら最後のシートの小計クリックしても正しい数になりません。
どなたか詳しく手順を教えて下さい。

エクセルは苦手で。

A 回答 (7件)

小計って各シートのどこかに小計と列見出しみたいなのが入っているのでしょうか?


レイアウトは同じ?
であれば、統合機能でできませんか?

もしくは、わざわざ各シートの合計表内から集計しようと思うからやりにくいのであって、表から横に外れた別セルに(たとえばX1セルとか)に小計のセルを参照したり、そのセルでシートの集計を別途したりしておいて合計シートではそのセルを串刺しすればいいのでは?
    • good
    • 0
この回答へのお礼

お礼が遅くなりすみません。
お忙しい中ありがとうございました

お礼日時:2017/01/17 13:32

No.4です。

お役に立てなくてすいません。
では、こんなのはどうでしょう。

種類毎シートの小計を SUBTOTAL で求めます。
例)小計=SUBTOTAL(9,A1:A4)

総合計シートの総合計はこんな感じで…。
合計=SUBTOTAL(9,Sheet1!A:A,Sheet2!A:A,Sheet3!A:A)

種類毎シートが増減すると総合計の数式を訂正しなければなりません。よって、種類が頻繁に変動する場合は使いにくいです。
    • good
    • 0
この回答へのお礼

出来ました。
早速のご回答ありがとうございました。

お礼日時:2017/01/17 13:33

VLOOKUPとINDIRECTを使います。


とりあえずA列にシート名を羅列しているとしますね。
実際はどこでもいいです。
その隣のB列(これも実際はどこでもいいですが)にそのシートの小計を抽出する式を入れます
小計の値が入ってる列が分からないのでZとします。
COLUMN(Z1)というのはZの列番号を取得するので、列がCなら3を直接書いてもいいです。
B1=VLOOKUP("小計",INDIRECT(A1&"!A:Z"),COLUMN(Z1),FALSE)
これで、小計と入力されているセルをA1に書いてあるシート名のシートのA列から探し出し、その行の(A列〜Z列の中で)Z番目のセルに表示されているデータを取得します。
これを、シートの数だけ作り、SUMで合計すれば総合計となります。
    • good
    • 0
この回答へのお礼

分かりやすいご説明ありがとうございました。

お礼日時:2017/01/17 13:34

小計行を明細行の前(先頭)に持って行ければ簡単ですが、デザイン的に無理ですか?

    • good
    • 0
この回答へのお礼

先頭にもってくるのは難しいです。
ご回答ありがとうございました。

お礼日時:2017/01/15 20:20

1行目のどこかの列に小計を表示させるようにシートの作りを統一しよう。


1行目に小計があれば、どれだけ行が増えても位置がずれることは無い。
それにそのほうが表として見やすい。

そうしたうえで「串刺し計算」をしてみましょう。
    • good
    • 0
この回答へのお礼

シートによっては下ぎりぎりまで行がきてしまっていますが、
ちょっと考えてみます。
ご回答ありがとうございました。

お礼日時:2017/01/15 20:30

小計の位置は完全にバラバラなのでしょうか?


例えば、行の数はバラバラだが、Aに小計という文字があり、Cにその数字が計算されている。というのは共通しているといったことはないですか?
もしそうなら、シート名の一覧を作る事で、対応する名前のシートから小計の数字を取得することもできるので。
    • good
    • 0
この回答へのお礼

はい、言われている通りです。
どのようにすればいいのでしょうか?

お礼日時:2017/01/15 20:30

こんにちは!



「串刺し計算」をやりたい!というコトのようですが、
全てのSheetのレイアウトが同じ(全てのSheetの「小計」のセル番地が同じ)でないと
できないと思います。

そこでVBAになりますが一例です。
「総合計」を表示したいセルはシート見出しの一番最後にあり、
「種類ごと」の「小計」と入っているセルの右となりに求めたい数値(小計)が入力してある!とします。
総合計を表示したいセルは最後のSheetの B20セルと勝手に決めています。

まず、シート見出しにある最後のシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'この行から//
If Target.Address = "$B$20" Then '←総合計入力セルを指定 ★
Cancel = True
Call Sample1
End If
End Sub 'この行まで//

次に先ほどコードを入力した画面の
メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
「総合計」シートのB20セルをダブルクリックしてみてください。
(コード内にも記載していますが、B20セルは実際のセル番地に変更してください)

Sub Sample1() 'この行から//
Dim k As Long, c As Range, myVal As Variant
For k = 1 To Worksheets.Count - 1
Set c = Worksheets(k).Cells.Find(what:="小計", LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
myVal = myVal + c.Offset(, 1)
End If
Next k
Selection = myVal
End Sub 'この行まで//

これで「総合計」シートのB20セルをダブルクリックしてみてください。
おそらく各シートの「小計」セルの右側数値の合計が表示されるはずです。

※ 各シートの「小計」と入力されているセルは一つしか存在しない!
という前提です。m(_ _)m
    • good
    • 0
この回答へのお礼

早速ご回答頂きありがとうございます。
難しそうですが、挑戦してみますね。

お礼日時:2017/01/15 20:29

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