• ベストアンサー

エクセル2003です。複数のBookの合計を出す方法を教えて下さい。

エクセル2003です。複数のBookの合計を出す方法を教えて下さい。 「25枚のBook」にある・「D30」の数字の合計を出す方法を教えて下さい。

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

  • ベストアンサー
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.4

複数のブックの対象とするシートを一つの Bookに参照コピーする。 そのうえで串刺し計算でOK。 なんなら、参照対象の Bookのセルを全て一つのブックに参照コピーしますか? これなら ふつーに SUM関数で合計を求められますよ。 参照対象の Bookと編集用の Bookを全て開いて、メニューのファイルから「作業状態の保存」を選べば、 開いている Bookの状態を保存してくれます。最小化しておけば邪魔になる事もないでしょう。 次に編集・参照したいときは、この「作業状態の保存」をしたデータファイルを開けば、 参照対象の Bookと編集用の Bookを同時に開いてくれます。 (ファイルの拡張子は通常保存と異なり xls から xlw になります。)

tositosi-1
質問者

補足

参照コピーの方法が判りませんでしたが・編集用のセルに「=各bookのD30をクリック」し =[Book1.xls]Sheet1!$D$30・=[Book2.xls]Sheet1!$D$30・としてみました。 これで・SUM関数で合計を求める事ができました。 ありがとうございました。 正しい・参照コピーの方法を教えて頂けますか(?) ネットで調べてみたのですが・難解でした。 「作業状態の保存」を始めて知りました。とても役立ちました。 ありがとうございます。 宜しくお願い致します。

その他の回答 (5)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

このまま終わったのでは、こちらが、ミスしただけで、何のためにレスを付けたか分からなくなりますので、一応、回答を付けておきます。マクロで処理するということが気に入らなければ、コメントは不要です。私なら、このようにして集計します。 例えば、ブック名 MyBook01 ~ MyBook25, シート名;Sheet1 '//標準モジュール Sub NoOpenGetData()  Dim mPath As String  Dim t As Variant, i As Long  Dim fn As String  Const PREFN As String = "MyBook" '主ファイル名  Const ZEROSPLY As String = "00" '例えば、MyBook01 と、ゼロが付く場合、  Const EXT As String = "xls" '拡張子  Const ShNAME = "Sheet1" 'シート名  Const ADR = "D30" 'アドレス(現在はひとつに過ぎる)  'パス名  mPath = "C:\Documents and Settings\[ID Name]\My Documents\Test1Fold\"  On Error Resume Next  For i = 0 To 8   If Dir(mPath & PREFN & Format$(i, ZEROSPLY) & "." & EXT) <> "" Then    t = t + LinkOutSide(ADR, ShNAME, PREFN & Format$(i, ZEROSPLY) & "." & EXT, mPath)   End If  Next  On Error GoTo 0  ActiveCell.Value = t End Sub Private Function LinkOutSide(Rng As String, ShNAME As String, sBkName As String, sPath As String)  'セルアドレス, シート名, ファイル名, パス名  Dim sRng As String  Dim i As Long  If Dir(sPath, vbDirectory) <> "" Then   If Right(sPath, 1) <> "\" Then    sPath = sPath & "\"   End If  Else   Exit Function  End If  If ShNAME = "" Then Exit Function  If sBkName <> "" Then   sBkName = "[" & sBkName & "]"  End If  sRng = Application.ConvertFormula(Rng, xlA1, xlR1C1, xlAbsolute)  LinkOutSide = Application.ExecuteExcel4Macro("'" & sPath & sBkName & ShNAME & "'!" & sRng) End Function

tositosi-1
質問者

補足

うわぁ~すごいものですね。 でも・マクロなどの知識がなく・難しそうです。 とりあえずコピーをさせて頂きました。 SHEETが3まであり・これを元に勉強してみます。 色々お時間を割いて頂きありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

そうでしたか。私たちの読み違えなのですね。複数のBookというよりも、25個のExcelファイルと書けば読み違えなかったのですが……。ファイルを枚と数えるとは思いませんでした。 >25枚のBOOKを広げるのは大変かなぁ~と思い 昔は、串刺しというのは、本来は、そういう機能だったのですが、今は、そういうことを考える人がいないし、辛うじて、統合という機能に痕跡は残っていますが、ブックをまたいだ串刺し機能そのものは直接には残っていません。だから、端的にいうなら、「出来ない」と回答したほうがよいのではないかと思います。 結局のところ、ひとつずつブックを入れるという方法が標準的で、もし、実際に一括で出すという方法実現したければ、マクロ(関数)やVBAの力を借りて、ユーザー定義関数やプロシージャを作るしかないと思っています。過去の回答にもあります。[作業保存]の方法は、私はやったことがありませんが、内容が変われば、やり直しになるのだろうとは思います。「作業保存」の方法でよければ、私は、これ以上は何も言う必要もないと思います。

tositosi-1
質問者

補足

ありがとうございます。 そうですね・ひとつづつブックを入れる事にします。 色々勉強になりました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

串刺し計算って =SUM(Sheet1:Sheet25!D30) シート・タブの左端のシートと右側の目的のシートまでを「:(コロン)」でつないで、!(ビックリマーク)とセル・アドレスを入れればよいのでは?正しい方法か知りませんが、これって、DOS時代からあったものだと思います。私の知っている方法です。

tositosi-1
質問者

補足

早々のご解答ありがとうございます。 (sheet1:Sheet25!D30)は同じBook内の事ですね。 教えて頂きたいのは・1~25までのBOOKです。 =SUMで1~25までのD30をクリックすれば出来ますが 25枚のBOOKを広げるのは大変かなぁ~と思い 何かよい方法が無いものかと思っています。 宜しくお願い致します。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 複数のBOOKではなく、複数のSheetでの方法になりますが・・・ 串刺し計算という方法があります。 集計用Sheetに、Sheet1~Sheet25の全てのD30セルの合計を表示させる方法です。 集計SheetのD30セルをアクティブにし、 オートSUMのアイコン(Σ)をクリック → Sheet1のD30を選択 → Shiftキーを押しながらSheet25のSheet見出しをクリックします。 そして、もう一度オートSAMのアイコンをクリック! これでSheet1~Sheet25のD30セルの合計が表示されるはずです。 これをオートフィルで列方向・行方向にコピーすると各セルの串刺し計算結果が表示されます。 もし、複数BOOKであれば他の方法を考える必要があると思います。 参考になれば良いのですが、的外れならごめんなさいね。m(__)m

tositosi-1
質問者

補足

早々のご解答ありがとうございます。 (sheet1:Sheet25!D30)は同じBook内の事ですね。 教えて頂きたいのは・1~25までのBOOKです。 =SUMで1~25までのD30をクリックすれば出来ますが 25枚のBOOKを広げるのは大変かなぁ~と思い 何かよい方法が無いものかと思っています。 宜しくお願い致します。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

串刺し計算 詳しくはググってください。  http://www.google.co.jp/

tositosi-1
質問者

補足

早々のご解答ありがとうございます。 (sheet1:Sheet25!D30)は同じBook内の事ですね。 教えて頂きたいのは・1~25までのBOOKです。 =SUMで1~25までのD30をクリックすれば出来ますが 25枚のBOOKを広げるのは大変かなぁ~と思い 何かよい方法が無いものかと思っています。 宜しくお願い致します。

関連するQ&A