- ベストアンサー
複数のワークシートの共通のセル
初心者です。教えてください エクセル(Office 2003)で、50枚のワークシートがあります。 これらのワークシートのすべてから、共通のセル(たとえばA3)の数値を抽出して、別のワークシートに一覧を作ることというのは可能なのでしょうか。 よろしくご教授ください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
いわゆる”串刺し計算”を使ったらいかがでしょうか。 例:A3シート1~50までの合計を求める場合は 1.結果を求めたいシート(51)のA3セルを選択 2.SUM関数(Σ)を選択。A3セルは=SUM()となっていることを確認 3.シート1の見出しをクリック 4.shiftキーを押しながらシート1~シート50までの見出しを選択 5.enterキーを押す 6.シート51に戻すとA3セルの数字は合計の数字になっているはず
その他の回答 (2)
- nishi6
- ベストアンサー率67% (869/1280)
A B 1 A3 2 Sheet1 =INDIRECT(A2&"!"&$A$1) 3 Sheet2 4 Sheet3 5 Sheet4 : : : : 50 Sheet49 51 Sheet50 シート名が上のように、Sheet1、Sheet2・・・となっているとします。 A1セルに、一覧を作るセル座標を入力しておきます。(例えば、A3) A2セルに、『Sheet1』と入力し、A2セルのフィルハンドル(セルの右下の小さいな■)を下方向にドラッグしてSheet50までの連番を発生させます。 B2セルに、『=INDIRECT(A2&"!"&$A$1)』と入力し、下方向にコピーします。 これで一覧ができたはずです。A1の文字列を変更すると、別のセルの一覧に変わります。 シート名が連番等になっていなければ、一覧を作成するシートで下のマクロを実行すれば、シートの一覧表を作ります。(面倒でなければ、手入力でシート名の一覧を作ってください。) その一覧を使って、上記の方法で指定セルの一覧を作ってください。 なお、シートはワークシートのみを対象にしています。 Sub SheetName() Dim ws As Worksheet Dim cnt As Integer For Each ws In Worksheets Range("C1").Offset(cnt, 0) = ws.Name cnt = cnt + 1 Next End Sub ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入します。出てきたコードウインドウに上記マクロをコピーして貼り付けます。
お礼
ありがとうございます。 すごいです! これは勉強になります。どうもありがとうございます。 この方法もスマートでいいですね!
- rin01
- ベストアンサー率43% (33/76)
こんばんは~♪ 回答ではないんですが~。。。 50枚のシート名は、どんな風でしょうか? Sheet1 Sheet2・・・ 1月 2月・・・・ の様に連続していますか? それとも、規則性の無いシート名でしょうか? それから、 >別のワークシートに一覧を作る とは、どんな一覧表でしょうか? 。。。Ms.Rin~♪♪
お礼
ありがとうございます。
補足
ありがとうございます。 Sheet1から50までの連番です。 各ワークシートのA50の値が ずらっと列に並んだものなどを想定しています。
お礼
ありがとうございます。この方法でOKです! こんな方法があるとは知りませんでした。 大変参考になりました。