エクセルで12枚のシートに同じ表が1つずつ作ってあります。表の中は文字のセルも数式のセルもあります。各シートの同じセルにあるものを選び出して、別の新しいシートにある表の指定した部分に貼り付けたいのです。要するにシート間の串刺しをして別のところに貼り付けたいわけです。例を書きます。
元の表というのは例えば、「シート1はAさんのデータで名前、住所などが入力してある。シート2はBさん、シート3はCさん・・・」で、名前だけの一覧表を新しいシートに作る、ということがしたいのです。質問の意味わかっていただけましたでしょうか?よろしくおねがいします。
No.1
- 回答日時:
名前の一覧表のシートのセルにに以下のように入れてください
Sheet2!B1(sheet2の行1列Bを表示する)
行列の表示は設定により違うかもしれませんが
シート名+!+表示元のセル でよいとおもいます。
やり方としては、一覧表のシートでデータを表示するセルを決め
そこを選択してエクセルの数式の編集
(ツールバーの「=」が表示されているところ)で「=}を押し
目的のシートに移動し、表示するデータ(セル)をクリックする。
そして「OK」を押せば一覧にほかのシートのセルの内容が表示されるはずです。
説明が下手ですが、、^^;
この回答への補足
早速の回答ありがとうございます。私にはおっしゃることがよく理解できてないんでしょうか?この方法だとシートが100枚あったらシート名を100回入力するというようにとれるんですが・・・
もしそうなら、コピーアンド貼り付け、またはリンク貼り付けの操作と手間が変わらない気がするんですけど。シート名を1つ入れさえすれば(例えばシート1)、表示先のシートでコピーアンドドラッグするとシート2以降のデータが表示されるんですか?
理解不足ですみません。よろしくおねがいします。
私の質問の仕方が不十分だったようですね。シート名をたくさん打つのが大変なので簡単にできる方法がないかな、と思って質問しました。
でも早速の回答ありがとうございました。
No.3
- 回答日時:
補足に対する回答というか提案です。
(各人毎のシートが全く同じ構造=同じ場所に対応するデータがあったとして。)
新しいシートで、セル毎に参照ブック名を変えられるか?ですよね。
これはうまい案が思いつきません。1個入力したセルの数式をコピーして人数分だけ貼り付ける。あとは式を編集してブック名を1個づつ変えていくしかないと思います。このとき数式表示をオンにしておくと少し楽かもしれません。
ただし、名前のシートができたとして、次に住所のシートを作るのだったら簡単ですね。名前のシートをそのままコピーして参照セル名だけ 検索_置き換え するだけですから。
多分すでにご存知のことだと思いますが。m(__)m
シート名をたくさん打つのが大変なので簡単にできる方法がないかな、と思って質問しました。
置換ですね。そうですね・・・なるほど・・・
ありがとうございました。
No.5
- 回答日時:
個人の複数のデータがシートごとに入力(定型)されていて、特定の項目(複数でも可)のみを別のシートに集計するということであれば、VBAを使えば簡単にできます。
10だろうが1000シートだろうがあっという間にできます。集計したい項目(セル番地)を変えることも可能ですし、集計先を他のブックやシートの特定の位置にコピーすることも簡単にできます。シート数の分だけ、項目の数だけコンピューターに自動的に集計させることも可能です。新しい個人データが増えた場合や項目数が据えた場合にも対応できます。最終行に自動的に追加していくことも簡単にできると思います。先ずはマクロに基本動作を記録して、不要部分を削除し、ループでまわせばOKです。具体的にシートのどのセルにデータが入っているかがわかれば、サンプルプログラムを作れますので、必要であれば詳細をお聞かせください。この回答への補足
あのー、、集計じゃないんです。bupu4uさんの回答の中にあるように、「(各人毎のシートが全く同じ構造=同じ場所に対応するデータがあったとして。) 新しいシートで、セル毎に参照ブック名を変えられるか?ですよね」・・・これなんです。シートが100枚あったとして、特定の項目(例えば住所)だけを別のシートに100行楽に貼り付けられないか、ということです。100行ひとつひとつに参照セルを打ち込むのは手間ですので。
なんかエクセル詳しそうなので期待してま~す!
ps.いただいた回答おもしろそうですね。今回の質問とは別に、使ってみたいです。でもむずかしそう・・・
No.6
- 回答日時:
もし、私がやるとすると、シート名をSheet1,Sheet2,....と最後に数字をつけていく名前にします。
こうやると、串刺しを入力するシートで、どこかのセルにSheet1と入れて、そのセルをマウスでドラッグ(右下の黒ポチ)すれば以下sheet2, sheet3, ...という一列ができあがります。
これさえすれば、後はIndirect関数で該当のセルを参照すればOKです。
たとえば、A1~A10にシート名が入っていて、各シートの C1セルを参照する場合は、
INDIRECT("'" & A1 & "'" & "!$C$1")
をB1に入れて、後はB2~B10にコピーすればいいわけです。
シート名が規則的じゃない場合は、VBAなどを使わないとちょっと困難かと。
(もしかしたらやり方があるかもしれませんが、ちょっと思いつきません)
なるほど、シート名を規則的なものにかえてしまうんですね。シート名が個人名なのでちょっとつかいにくいかな?と思いましたが、このアイデア何かの時に使わせていただきます。indirect関数 勉強します。
ありがとうございました。
No.7ベストアンサー
- 回答日時:
不規則なのは残念ですね。
VBAからはシートを番号で参照できるので簡単なのですが。もし、VBAを使われるのであれば、
Sub GetSheetName()
Dim i As Integer
Dim dist_name As String
Dim sname As String
dist_name = ActiveSheet.Name
For i = 1 To Sheets.Count
sname = Sheets(i).Name
If sname = dist_name Then Exit For
ActiveCell.Offset(i - 1, 0).Value = sname
Next i
End Sub
のような簡単なものを書けば良いと思います。
上のコードは、シート名の列を作りたいシートのセル位置にカーソルを持っていき、マクロを実行すると一番目のシートからカーソルのあるシートまでのシート名のリストを作ります。
だいぶ前にやっぱり同じ様なことをやりたくて作った物です。
では。
せっかく回答をいただいたのに実はVBAについては全くわからず、教えていただいた式をどうしたらいいのかすらわからず・・・という状態でした。で、早速VBA(VB)の勉強をはじめたところです。今は少しだけですがわかります。
がんばります!
悩んでいたことは、シートが8枚と少なかったので、勢いにまかせて”貼り付け”でなんとか通り抜けました。はははつ!
全部自分で理解できるようになったらやってみます。
No.8
- 回答日時:
補足です。
集計という表現は適切ではなかったかも知れませんが、mickjey2さんのようなコードの中にWorksheets(dist_name).Activate
R = cells(Activesheet.Rows.Count, C).End(xlup).Row
Worksheets(dist_name).cells(R+1, C).value = _
Worksheets(i).cells(RR,CC).value
見たいなコードを入れれば可能かと思います。また、「シート間の串刺し」に関して既にヘルプはご覧になりましたか、、、。
注)R、RRは行変数、C,CCは列変数として目的に応じて設定してください。
固定値であれば、定数としてもかまいません。
ありがとうございました。実はVBAについては全くわからず、教えていただいた式をどうしたらいいのかすらわからず・・・という状態でした。で、早速VBA(VB)の勉強をはじめたところです。教えていただいたコードが読める
ようになるのはいったいいつになるのやら・・と思いつつ。
悩んでいたことは、シートが8枚と少なかったので、勢いにまかせて”貼り付け”でなんとか通り抜けました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Excel(エクセル) 【エクセル】文中に別シートのセルの内容を自動入力したい 6 2022/11/17 11:30
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで「時間の足し算」はどう...
-
オートフィルのショートカット...
-
エクセルに詳しい方教えて下さ...
-
勤務表をエクセルで作る際、 最...
-
Excel2010で、今の、Ex...
-
UNIQUE関数が使えないバージョ...
-
Excelについて質問です。 表の...
-
Excelについて質問です。 ・デ...
-
Excelのフォントについて
-
Excel表の文字の幅を狭くしたい
-
Excelについて質問です。
-
エクセルのパスワードの一括解...
-
Excel 2019 での上書き保存につ...
-
EXCELで、関数を使って対象の項...
-
VBA
-
Excelで、10000,20000,30000と...
-
FormulaR1C1の 相対参照式のコピー
-
エクセルのソートについて
-
Excel 連番を入力する方法
-
Excelで投入数、加工数、検査待...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル詳しい方教えて下さい
-
ExcelでA列をコピーしたいので...
-
エクセルのセル統合について
-
Excelの関数で起きた現象の原因...
-
Excelファイルが閉じられい!
-
Excelのシート背景に不明な文字...
-
エクセルの枠線
-
Excel 領収書発行
-
エクセル関数の使い方を教えて...
-
C列にF列の担当者(A〜)を順番...
-
ピポットテーブルの参照元を別...
-
EXCEl VBA
-
Excelでの判別方法
-
VBAで、サブフォルダにある複数...
-
"りんご"と"みかん"というシー...
-
マクロについて教えてください。
-
EXCELファイルが読み取り専用で...
-
同一セルに入力規則のリストと...
-
100行50列の表で、1~40列でフ...
-
なぜか「Nextに対応するForがあ...
おすすめ情報