Win98でExcel2000を使っています。
あるフォルダにまったく同じレイアウトのブックが、社員の人数分あります。
(Accessから社員のマスタを使ってはきだしたブックなので、数やファイル名は可変です。)
これらのブックのある1つのセルを参照して合計値等を計算したいと思っています。
(イメージ的には、全ブックを串刺しにするような感じでしょうか?)
やり方が思いつきません。
何かい方法ありますでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

AccessからエクスポートしたExcelファイルなら各BookのSheetは1枚ですよね。


これを前提に書いてみました。(各ブックのSheetの構成が異なっていれば違ったものになります)
また、あるフォルダのExcelファイルは全て集計の対象にしています。

集計用の新規Bookを作って、下記マクロを標準モジュールに貼り付けます。
集計するシートを保存したドライブ、フォルダを DrvDir = "D:\・・・\・・・\"にセットして下さい。各BookのA1セルの値をSheet1に表示して集計します。

Public Sub BooksTotal()
  Dim eBookname As String  'Book名
  Dim DrvDir As String    'ドライブフォルダ
  Dim rw As Long       '行カウンタ
  Dim TargetCell As String  '集計するセル

  TargetCell = "A1"            '*** 集計するセルを指定
  DrvDir = "D:\・・・\・・・\"      '*** ドライブフォルダは指定する

  With Worksheets("Sheet1")
    .Range("A:B").ClearContents     '表示用のAB列をクリア
    .Range("A1") = "シート名"
    .Range("B1") = TargetCell & " の値"
    rw = 1
    'フォルダを検索してxlsファイルを特定する
    eBookname = Dir(DrvDir & "*.xls")
    While eBookname <> ""
      '順にSheet1に書き出していく
      rw = rw + 1
      .Range("A" & rw) = eBookname
      .Range("B" & rw) = "='" & DrvDir & "[" & eBookname & "]'!" & TargetCell

      eBookname = Dir
    Wend
    .Range("B" & rw + 1).Formula = "=Sum(B2:B" & rw & ")"
  End With
End Sub
    • good
    • 0

エクセルのヘルプ(Officeアシスタント)で


「3-D 参照を使った複数のシートの同じセルやセル範囲の参照」を見てください。詳しく書かれています。

この回答への補足

さっそくありがとうございます。
ただ一括処理をかけたいなと思っているのですが、
なんとかExcelだけの機能でできないものかと思いまして。
やっぱりVBAで組むしかないですよね。

補足日時:2002/02/04 21:00
    • good
    • 0

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel串刺し計算

宜しくお願い致します
Excel2007ですが、串刺し計算での質問です
例えば、家計簿で月の合計をE140に食費 E141光熱費・・・・・ F140に100000 F141に5000・・・
等E150 F150までシートに毎月12月分書き込んであります
そこで串刺し計算ですが、1年分の合計を出したいので、本来ならば合計のシートもF140から始めないと串刺し計算は出来ないようですが
それを合計シートのみA2から始めて串刺し計算を出来る方法はありますか。
串刺しでなくても、年間の合計が出来れば良いですが。

Aベストアンサー

こんにちは。

各月ごとにシートを作ってあるんですよね?
串刺し計算は、串刺しにする対象が各シートの同じセルのとき有効なので、この場合は、合計シートの「A2」に

=SUM(Sheet1:Sheet12!E141)

と入力し、あとは下方へコピーすればできると思います。

勘違いしていたらごめんなさい。

Q串刺し幾何平均で、シート名を可変にする方法

質問を見ていただき、ありがとうございます。

1_1から1_10という10枚のシートの、A1のセルを、串刺しで幾何平均(GEOMEAN)したいと思っています。
これを普通に行うと、
=GEOMEAN('1_1:1_10'!A5)
で計算できます。

しかし、今後シートが増えることが予想されますので、シート名を可変にしたいと考えています(つまり、現在はシート名が1_1~1_10ですが、将来的には1_1~1_108などになる可能性があります)。
そこで、INDIRECTを使って、先ほどの式の「1_10」の部分で別セル(B1など)を参照するようにして、
=GEOMEAN(INDIRECT("'1_1"&B1&"'!A1"))
のようにしてみましたが、うまくいきませんでした(B1には、「1_10」という文字列が入っています)。

似たような悩みとしては、以下のご質問がありましたので、もしかすると複数シートをINDIRECTで指定することは不可能なのかもしれません。
http://oshiete.goo.ne.jp/qa/954807.html

そこで、INDIRECTにこだわるものではございませんので、複数シートにわたる幾何平均で、シート名を随時任意に変えられる方法をご存知の方がいらっしゃいましたら、ぜひ教授ください。

質問を見ていただき、ありがとうございます。

1_1から1_10という10枚のシートの、A1のセルを、串刺しで幾何平均(GEOMEAN)したいと思っています。
これを普通に行うと、
=GEOMEAN('1_1:1_10'!A5)
で計算できます。

しかし、今後シートが増えることが予想されますので、シート名を可変にしたいと考えています(つまり、現在はシート名が1_1~1_10ですが、将来的には1_1~1_108などになる可能性があります)。
そこで、INDIRECTを使って、先ほどの式の「1_10」の部分で別セル(B1など)を参照するようにして、
=G...続きを読む

Aベストアンサー

「開始」シートと「終了」という名前のシートを作っておいて
計算対象シートをはさめば良いです。増えるだけなら「開始」シートは不要です。
=GEOMEAN(開始:終了!A5)
ただし、常に「開始」シートは「終了」シートより左側にあること

Q串刺し合計値と単純合計値の違いについて

Excel2007で異なるブック(ファイル)の串刺し合計を行っています。
その基となるブックのシート(表)では合計値を足し算やSum関数を用いて求めています。
その基となる表の合計値を串刺しした値と串刺しした表で足し算やSum関数で求めた数値が一致しないのです。何故か解らずにおります。
一致させるにはどうした良いか?または一致しない理由を突きとめるにはどうしたら良いか?ご教授いただけないでしょうか?
基となるブック(ファイル)の計算式や串刺し合計の計算式は何度も確認しました。

Aベストアンサー

具体的にどう違うのか分からないので答えかねるのですが…


たとえば、このブックのこのシートのこのセルにこういう値が入っていて、
串刺し計算の結果はAになるけど、表の合計値はBになって、
AとBのどちらが正しい、とか
具体例を示していただくことはできませんか?

Q☆エクセルの使い方☆  ブックごとの串刺し演算?でしょうか?やり方教えてください。

エクセルの使い方について質問があります。よろしくお願いします。

1例を揚げますので、この方法で教えてください。

1つの会社で10店舗あります。

1店舗につき、1つのブックを作ります。

1シートが1か月分の売上表。
品番を列、日付を行で作ります。合計12シートになります、1月から12月まで。

11番目のブックに10店舗合計が出るようにしたいのです。

このような表を何回も作るとき時間かかります。

こういった作業の最速の作成方法と作成順序アドバイスいただける方!

よろしくお願いします。

私、初心者ですので、わかるようにお願いします。

特殊な操作はできません。マクロとかもわかりません。

よろしくお願いします。

Aベストアンサー

話を確認すると、こういうことでしょうか?
ブック1【店舗番号1】⇒シート1月、シート2月、シート3月、、、シート12月
ブック2【店舗番号2】



ブック10【店舗番号10】
ブック11【合計:店舗番号1~10】

と、ここまではこの解釈でよいでしょうか?

とすると ブック11で店舗合計を出す前に、まず、それぞれの店舗(ブック)内でいったん12ケ月の合計を
出して、それらをブック11に集計するとよいかと思います。

それで、そのブック内のシート12ケ月分をシート13に集計する方法なのですが、
方法はふたつあってそれのどちらを使うかは「列の項目内容の並び」によります。

たとえば
「列に品番、行に日付」ということですが、

品番を果物に置き換えて
 
  りんご  みかん  バナナ
1日  2    0   1
2日  3    0   2
3日  0    0   0



というシートが12ヶ月あって、
(1)このシートの列の項目内容がりんご、みかん、バナナ、、と毎月同じ
配列、おなじ内容であれば「串刺し集計」

(2)このシートの列の項目内容が、りんご、みかん、柿、メロン、、
などど、月ごとに同じものがあったりなかったりするのなら「統合」という機能を使うと
集計しやすいと思います。

上記(1)の例、なのか(2)の例なのかが、不明なので操作方法は書きませんが、できましたら
もうちょっと具体的にどういう集計をしたのか補足くださいませ。
他の回答者のかたも回答しやすくなるかもしれませんので。。

話を確認すると、こういうことでしょうか?
ブック1【店舗番号1】⇒シート1月、シート2月、シート3月、、、シート12月
ブック2【店舗番号2】



ブック10【店舗番号10】
ブック11【合計:店舗番号1~10】

と、ここまではこの解釈でよいでしょうか?

とすると ブック11で店舗合計を出す前に、まず、それぞれの店舗(ブック)内でいったん12ケ月の合計を
出して、それらをブック11に集計するとよいかと思います。

それで、そのブック内のシート12ケ月分をシート13に集計する方法なのですが、
...続きを読む

Qエクセルでシート数が増加する場合の串刺し計算

エクセルで串刺し計算をする場合、データ→統合等でできますが、ファイルによってシート数が毎日増加する場合でも一発で串刺し計算(合計)できるように、VBAでプログラムを組むにはどのうようにすればよいのでしょうか?
なお、各シートのデータはすべて同じレイアウトで作成されているとします。
VBAでプログラムの記入例があれば、助かります。

Aベストアンサー

ユーザ定義関数例です。
シート上でAlt+F11キー押下→挿入→標準モジュール→サンプルコード貼り付けてお試しください。
因みに合計シート名は「合計」として下さい。

合計シートの任意セルに=mycnt(串刺し対象セル)

Function mycnt(rng)
Dim i As Long, tot As Long
Application.Volatile
For i = 1 To Sheets.Count
If Sheets(i).Name <> "合計" Then
tot = tot + Sheets(i).Range(rng.Address)
End If
Next
mycnt = tot
End Function

Q条件に合うシートを串刺し集計して別のブックに抽出する方法

 ご覧いただきありがとうございます。「条件に合うシートを串刺し集計して別のブックに抽出する方法」を教えてください。

 毎月、1件の請求につき1枚のシート、計80枚程度のシートを含む請求○月.xlsというブックを作っています。
 現在は、その後の入金や未収の管理は、手作業で別ブック(入金○月.xls や 未収○月.xls)にシートを移すという非効率的な方法に頼っているのですが、この請求4月.xls や 請求5月.xls の各シートに「入金済み」のフラグを立てるなどして、これらのブックから、入金○月.xls が(半)自動的に生成されるようにしたいのです。
 言い換えれば、入金された月別に 請求○月.xls からデータを別ブックに抽出したいのです。

 具体的には、
  請求4月.xlsシート1、シート2、・・・、シート80、合計額シート(請求計)
  請求5月.xlsシート1、シート2、・・・、シート80、合計額シート(請求計)
        (入金のあった分のシートを串刺し集計して抽出)
        ↓         ↓
  入金6月.xls請求4月入金6月シート、請求5月入金6月シート

上記のように抽出したいと思っています。(串刺し集計のほか、シートを抽出する方法もお教えいただければ幸いです)

 なにとぞご指導よろしくお願いいたします。

 ご覧いただきありがとうございます。「条件に合うシートを串刺し集計して別のブックに抽出する方法」を教えてください。

 毎月、1件の請求につき1枚のシート、計80枚程度のシートを含む請求○月.xlsというブックを作っています。
 現在は、その後の入金や未収の管理は、手作業で別ブック(入金○月.xls や 未収○月.xls)にシートを移すという非効率的な方法に頼っているのですが、この請求4月.xls や 請求5月.xls の各シートに「入金済み」のフラグを立てるなどして、これらのブックから、入金○月.xls が...続きを読む

Aベストアンサー

入金○月.xls の1行目のA列から順に各列に取り出したい項目名を並べます。
ただし、入金管理をするシートですから、入金日をトップ(セルA1)に持ってくるようにしましょう。そして、使用しない列(仮にK列としましょう)から次の通りの関数を入力してください。
L1:$E$2 (各シートのセルE2に入金日が入力されているとします)
M1~n1:取り出したい各シートのデータの入っているセル名。上記のように$マークをつけてください。8項目あったとして、n=T とします。)
K2:[4月請求.xls]シート1! (請求5月シートには[5月請求.xls]として以下同様に)
K3~K81:K2をコピーして張り付ける。
L2:=$K2&L$1
M2~T2:L2をコピーして張り付ける。
L3~T81;L2~T2をコピーして張り付ける。

次に、データを表示するA列から次の関数を入れてください
A2:=IF(MONTH(INDIRECT(L2))=m,INDIRECT(L2),"") (mは、シート毎の月の数とします)
B2:=IF(A2="","",INDIRECT(M2))
C2~J2:B2をコピーして張り付ける。
A3~J81:A2~J2をコピーして張り付ける。

関数の入力は以上ですが、これでは、未入金または他月入金の行が空白で混在しますので、入金日もしくは任意の項目でソートするなりフィルタするなりして利用してください。

入金○月.xls の1行目のA列から順に各列に取り出したい項目名を並べます。
ただし、入金管理をするシートですから、入金日をトップ(セルA1)に持ってくるようにしましょう。そして、使用しない列(仮にK列としましょう)から次の通りの関数を入力してください。
L1:$E$2 (各シートのセルE2に入金日が入力されているとします)
M1~n1:取り出したい各シートのデータの入っているセル名。上記のように$マークをつけてください。8項目あったとして、n=T とします。)
K2:[4月請求.xls]シート1! (請求5月シ...続きを読む

Q串刺し計算エクセル 一部シートをメールに添付したい

excel2003を使用しております。

book内に15シートほどの集計表があり
そのうち1シートは全シートを串刺し計算した総集計です。

その総集計の1シートのみをメールで送信したい場合
どうやって送ればいいのでしょうか。

串刺し計算の入っているすべてのシートを送るしかないのでしょうか。


お時間あるかたいらっしゃいましたら
回答よろしくお願いいたします。

Aベストアンサー

>串刺し計算の入っているすべてのシートを送るしかないのでしょうか。

 添付する必要があるのは、その「串刺し計算に関係している」セルと、
「「串刺し計算に関係している」セルの値に関係している」セルと、
「「「串刺し計算に関係している」セルの値に関係している」セルの値に関係している」セルと、
「「「「串刺し計算に関係している」セルの値に関係している」セルの値に関係している」セルとに関係している」セルと、
        ・
        ・
        ・
        ・
という事になりますから、入力されている関数やマクロによっては、殆ど全てのシートが必要となる場合もあり得ると思います。
 但し、もしも、相手に送る必要があるのが、計算結果のみであり、そのExcelのBookの計算処理機能までは送る必要がない場合には、次の様な方法を使う事が出来ます。

(1)そのシートのコピーシートを作成する。
 この時、コピーシートを作成する位置は、串刺し計算に関わるシートに挟まれる位置とはならない様にして下さい。
   ↓
(2)元のシートにおいて「何らかの表示が行われている全てのセル」を含んでいるセル範囲をコピーしてから、形式を選択して貼り付け機能を使用して、コピーシートに値のみを貼り付ける
   ↓
(3)コピーシートの各セルの条件付き書式を確認し、他のシートのセルの値が関係している条件があれば、条件付き書式ではない、本来の書式を、条件付き書式で現れている書式に合わせて、手作業で修正してから、条件付き書式を削除する
   ↓
(5)メールに添付するための空のExcelファイル(Book)を新規作成し、その中にコピーシートを移動させる
   ↓
(6)コピーシートの表示や印刷プ゜レビュー等を確認し、異常がなければメールに添付する

>串刺し計算の入っているすべてのシートを送るしかないのでしょうか。

 添付する必要があるのは、その「串刺し計算に関係している」セルと、
「「串刺し計算に関係している」セルの値に関係している」セルと、
「「「串刺し計算に関係している」セルの値に関係している」セルの値に関係している」セルと、
「「「「串刺し計算に関係している」セルの値に関係している」セルの値に関係している」セルとに関係している」セルと、
        ・
        ・
        ・
        ・
と...続きを読む

QExcelで範囲を可変して参照する関数を教えてください(3)

ある条件が非適合の場合、参照範囲を可変して同じ条件で値を抽出する関数を探しています。

うまく説明できないかもしれないので、添付画像に沿って質問させていただきます。


**はじめに**

・列Bと列Cの関連性はありません。
・列Dは、「ある一定の条件(IF)に適合」した場合、「1」と表示させています。


**条件**

① 今、D3がある一定の条件に適合したため、「1」と表示されました。

② そこで、基準となる値としてB3を参照し、E3に「91.6」と表示されました。

③ 次に、C3からC17の間で、E3の「91.3」以下の値を探します。
  このとき、探す順番(方向)は、C3から下に向けて探します。

④ まずC3からC6は「91.3」を超えているので、不適合です。

⑤ そしてC7の「91.3」でようやく「91.3」以下の値があるので、
  この値を抽出してH3に表示します。

⑥ G3には、H3の結果に該当する行の時系列を表示します

**その他**

<1> C12もE3の「91.3」以下ですが、このExcelシートを時系列と考えた場合、
   1月1日から下って、“最も近い日付”でE3の「91.3」以下の値を参照します。

<2> そのため、C12も「91.3」以下ですが、C7(1月5日の行)よりも下の行なので、
   C7を優先して参照します。

<3> この質問は、以前質問させていただいた下記に酷似しています。
   https://oshiete.goo.ne.jp/qa/8932434.html
   ただし、今回は探す値はは、基準値以下です。
   前回ご回答いただいた、

   =IF(D3=1,IF(COUNTIF(C4:C$1000,">="&E3),INDEX(A4:A$1000,MIN(IF(C4:C$1000>=E3,ROW(C4:C$1000)-ROW(C3)))),"該当なし"),"")

   をベースにできたらと思います。

Excelのバージョンによる互換性から、できればマクロを使わずに関数で作成したいと考えています。

恐れ入りますが、どなたかお分かりの方がおられましたら、
ご教授いただけましたら幸いです。

宜しくお願い申し上げます。

ある条件が非適合の場合、参照範囲を可変して同じ条件で値を抽出する関数を探しています。

うまく説明できないかもしれないので、添付画像に沿って質問させていただきます。


**はじめに**

・列Bと列Cの関連性はありません。
・列Dは、「ある一定の条件(IF)に適合」した場合、「1」と表示させています。


**条件**

① 今、D3がある一定の条件に適合したため、「1」と表示されました。

② そこで、基準となる値としてB3を参照し、E3に「91.6」と表示されました。

③ 次に、C3からC17の間...続きを読む

Aベストアンサー

G3セル
=INDIRECT((ADDRESS(MATCH($H$3,C3:C17,FALSE)+ROW($E$3)-1,1)))
 あんまりROW($E$3)-1とかいうのは綺麗じゃないですが。

H3セル(配列数式)
=MAX(IF(C3:C17<$E$3,C3:C17))
を入力し、Ctrl+Shift+Enter → {=MAX(IF(C3:C17<$E$3,C3:C17))}

まぁ欠点は下から辿れないってくらいですが。
配列数式の場合、行が優先されます。

qa8932434を理解していれば難しい話ではないはずですけど

Q【業務停止命令】業務停止命令など過去に行政処分された企業を会社名を入れるだけで串刺し検索出来るサイト

【業務停止命令】業務停止命令など過去に行政処分された企業を会社名を入れるだけで串刺し検索出来るサイトはありますか?

Aベストアンサー

串刺し検索は難しいでしょう。

Qエクセルで、3つのブックの中にある表(表は同じ形式)を別の新規ブックに1回で貼り付ける事はできますか?

こんにちは、みなさん!!

【質問】3つのブックがあります。この中には全く同じフォームの
表がはいっています。表の中身の数字は違います。

そこで、この3つのブックの中にある、それぞれの表を1枚のシート
に全て貼り付けたいと考えています。

もちろん、3つのブックと、貼り付ける新規のブックを開いて、3つのブックから1つづ表をコピーして張り付ければできます。

しかし、効率的な方法はないかと模索しています。実際はブックの
数も3つではなくたくさんありまうので。

★ご存知の方いらっしゃいましたらよろしくお願いします。

Aベストアンサー

>3つのブックの中にある、それぞれの表を1枚のシートに全て貼り付けたい

つまり3つの表を新規ブックの一枚のシートに横方向か縦方向かに順番に貼り付けていくのですね。

考え方はVBAで

参照するBOOKをBOOK1~3とすると
(1)新規BOOKを開いた状態で、
(2)BOOK1の表をコピーして、新規BOOKの所定番地に貼り付ける。
(3)BOOK2の表をコピーして、新規BOOKの所定番地に貼り付ける。
(4)BOOK3の表をコピーして、新規BOOKの所定番地に貼り付ける。


これだけをVBAで作るだけです。
VBAがだめならエクセルにはマクロ記録の機能があるから
(1)の状態で(2)~(4)を実際に操作してマクロの記録をする。
つぎにマクロボタンにそのマクロを登録して新規BOOKに配置すればOKです。

BOOKが3つ以上でN個あるなら
上記の(2)~(4)をFOR~NEXT、DO~LOOPで
1からNの繰り返し処理をさせればいいです。

たぶん誰かがVBAで書いた回答を投稿してくれるでしょうが、その方のポリシーでプログラムを書きます。
それよりも質問者がVBAを勉強されて、質問者の考え方でVBAを作られた方が修正がしやすいとおもいます。

質問文だけでは
(1)BOOK1~3の表の位置:どこのセルからどこのセルまでか、シートは何枚で何枚目シートか
(2)新規BOOKの貼り付け番地はどこか

などの情報がないからVBAでも答えられないでしょう。
たとえばの回答が来ても質問者の実際のエクセルの番地とのズレがあった場合、修正できればいいのですけど。

VBAやマクロは理解されてるのでしょうか?

>3つのブックの中にある、それぞれの表を1枚のシートに全て貼り付けたい

つまり3つの表を新規ブックの一枚のシートに横方向か縦方向かに順番に貼り付けていくのですね。

考え方はVBAで

参照するBOOKをBOOK1~3とすると
(1)新規BOOKを開いた状態で、
(2)BOOK1の表をコピーして、新規BOOKの所定番地に貼り付ける。
(3)BOOK2の表をコピーして、新規BOOKの所定番地に貼り付ける。
(4)BOOK3の表をコピーして、新規BOOKの所定番地に貼り付ける。


これ...続きを読む


人気Q&Aランキング

おすすめ情報