• ベストアンサー

エクセルのシートについて

エクセルのシート1に一覧表を作り、1行・2行・・・と、各行に対して、1行目の内容をシート2へ、2行目の内容をシート3へ、各行が変わるにつれ同様に違うシートへ行の内容を入力していきたいのですが、わかりません。よろしくお願いします。

  • ok-m
  • お礼率66% (20/30)

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

なぜ模擬的な実例を書かないのですか。 質問では シート1 第1行目 大山 一郎 38歳 ・・ 第2行目 木下 健二 25歳 ・・ ーー シート2 第1行目 大山 一郎 38歳 ・・ シート3 第1行目 木下 健二 25歳 ・・ らしい(こう書けば判りやすいだろうと思う) ただこういうのでなくA列はシートの標題ですか(回答者の内容から) 模擬実例を挙げないから良くわからないのではないですか。 -- 補足では シート1のA1・B1・C1・・・の各セルの項目を、シート2をシート1一覧表の1行の印刷用のペーパーとして、シート1の各セルの内容をシート2の各項目 と列のことのような表現になっていて良くわからない。 ーー それはそれとして結論として シートをまたいで式を複写してSheetの名前の部分を規則正しく変化させることはできないと思う。 VBAでやるしかないかと思う。 ーー 実際のシート名の末尾が連続数字になっているのかについても何も記述が無い。それを前提にした回答が出ているようだが。 ーーー Sheet1 A2 a A3 b A4 c A5 d Sheet2のA1に2 A2に=INDIRECT("sheet1!A"&A1) Sheet3のA1に3 A2に=INDIRECT("sheet1!A"&A1) Sheet4のA1に4 A2に=INDIRECT("sheet1!A"&A1) とすると式の型は一定で A2の値は Sheet2 a Sheet3 b Sheet4 c ・・・ となる。 シー名の後尾数字により、番号が取れるなら(例Sheet2,Sheet3、・・のように) ユーザー関数を定義して Function sn() sn = Val(Mid(ActiveSheet.Name, 6, Len(ActiveSheet.Name) - 5)) End Function そして各シートのA1なりに =INDIRECT("sheet1!A"&sn()) を各々入れると各シートには私の例ではa,b,c,d が入る。 しかしこういう凝ったことになるのでシート数が10-20なら直接入れるほうが良いのではと思う。

ok-m
質問者

補足

ご指摘ありがとうございます。 言われるとおりだったかと思います。 sheet1 一行目 A1山田太郎 B125歳 C1東京都 D1企画部・・・ 二行目 A2花田一郎 B230歳 C2埼玉県 D2管理部・・・ 三行目 〃 〃 sheet2 A1山田太郎 A225歳 A3東京都 A4企画部 sheet3 A1花田一郎 A230歳 A3埼玉県 A4管理部 と、このようにsheet1の一行目に入力したものをsheet2・二行目をsheet3・三行目をsheet4へと、転記していきたいのです。 計算式などはsheet1以外には必要ありません。シート末尾への番号も必要ないです。 sheet1の行が100件であれば、sheet2からsheet101まで、100行分のsheetを用意して、 sheet2のA1へはsheet1!A1 sheet2のA2へはsheet1!B1と sheet3のAIへはsheet1!A2 sheet3のA2へはsheet1!B2と 1つずつ入力していくしかないのでしょうか? sheet1の各行を増やしていく都度50行目であれば、sheet51のA1へは、sheet1の50行目のA1を、sheet51のA2へはB1をと、sheet1の各行を自動的に、sheet2以降へと振り分けていきたいのです。 ところで、それに伴い、各行に対してのsheetを自動的にコピーしていくことまでは不可能ですよね? 補足の質問が遅くなりましたが、よろしくお願いします。

その他の回答 (4)

noname#79209
noname#79209
回答No.4

#2です。書き忘れたことがありました。 式1の結果は、最初は(Bookを初めて作成したとき)は見えません。 これは、BOOKを一旦保存しない限りBOOKのファイル名が決まらないからです。 CELL("filename")関数は、ファイル名のフルパスとシート名を返す関数なので、ファイル名が確定しないと表示でません。 なので、最初のとき、「あれ、表示されない」と悩まないでくださいね。 あと、シート名を取得する数式1を1行目の各列の数式に埋め込んでしまう手もありますが、それぞれの数式が長く複雑化するのを覚悟することになります。

ok-m
質問者

お礼

ありがとうございました。

noname#79209
noname#79209
回答No.3

#2です。なさりたいことが解ってきました。 Sheet2以降の各シートの列表題に当たるものを、Sheet1の各行に入れておきたい。 具体的には、 Sheet1の1行目はSheet2の1行目に表示させ、Sheet2の列表題にする。 Sheet1の2行目はSheet3の1行目に表示させ、Sheet3の列表題にする。 これを自動化したい。ということなのでしょう。 かつ、シートを追加しても、どれかのシート(Sheet1以外)をコピーすれば自動的にいけるようにしておきたいというのでしょうね。 Sheet1の1行目から、Sheet2以降の列表題が入っているとして、 シート名の最後の文字列が必ず1づつ増加する数字であるなら、 =MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+6,20) ....式1 で、シート名の最後の数字が文字列として取り出せます。(2桁でも3桁でも) これを各シートのA1に置いたとして、 各シートの2行目の各列に、 =OFFFSET(Sheet1!$A$1,$A$1+1,column()-1,1,1) .....式2 とします。 ただ、これだと1行目が空いてしまい、見栄えが悪いので、 1.1行目の高さを0にしてしまう。 2.下の方の目立たない行に式1を移して、式2を1行目に置く。  この場合式2の第二引き数の「$A$1+1」の「$A$1」の部分を  移した先のセル番地に「$」マーク付きで変更する。 のどれかを適用します。

ok-m
質問者

お礼

自身の見識を深めて、もっと勉強したいと思います。 ありがとうございました。

noname#79209
noname#79209
回答No.2

> 違うシートへ行の内容を入力していきたいのですが 違うシートであろうが同じシートであろうが、数式では他のセルを更新させる機能はありません。 #1さんの言われるように、予め元となるセルを参照する数式を入力しておく必要があります。 つまり、常に受け身でしか働かないということです。 ご質問の内容の通りに、他のセルに対してアクションを行おうとするなら、マクロ(VBA)を使わなければなりいません。 余計なお世話とお思いでしょうが、ご質問のような書き方をされていると、数式での解法を欲しくても、 VBAのコードを回答されてしまうこともあり得ます。 老婆心ながら...

ok-m
質問者

お礼

つたない質問方法で失礼致しました。ありがとうございました。

ok-m
質問者

補足

つたない質問方法で失礼致しました。 質問させて頂いた内容についてですが、改めて記述させて下さい。 シート1を一覧表として、シート1のA1・B1・C1・・・の各セルの項目を、シート2をシート1一覧表の1行の印刷用のペーパーとして、シート1の各セルの内容をシート2の各項目へ。 シート1の2行目の内容を、同様にシート3の各項目へ。という感じなんですが。 単にシート1の各行の項目を、1行めはシート2へ、2行目はシート3へ「=」していくしかないのでしょうか? また、シートを増やす都度、増やしたシートが、コピー元のシート1の行を参照するのではなく、シート1次の行を自動的に参照する方法はないのでしょうか?

noname#153814
noname#153814
回答No.1

>1行目の内容をシート2へ シート2に =Sheet1!A1  >2行目の内容をシート3へ シート3に =Sheet1!A2

ok-m
質問者

お礼

ありがとうございました。

ok-m
質問者

補足

つたない質問方法で失礼致しました。 質問させて頂いた内容についてですが、改めて記述させて下さい。 シート1を一覧表として、シート1のA1・B1・C1・・・の各セルの項目を、シート2をシート1一覧表の1行の印刷用のペーパーとして、シート1の各セルの内容をシート2の各項目へ。 シート1の2行目の内容を、同様にシート3の各項目へ。という感じなんですが。 単にシート1の各行の項目を、1行めはシート2へ、2行目はシート3へ「=」していくしかないのでしょうか? また、シートを増やす都度、増やしたシートが、コピー元のシート1の行を参照するのではなく、シート1次の行を自動的に参照する方法はないのでしょうか?

関連するQ&A

  • Excelのシート間でのリンクの仕方について

    Excel2007での質問です。 下の様な一覧表があるとします。   A  B  C  D  E 1 あ い う  え お 2   き く  け こ 3 さ  し す  せ  そ この入力した一覧表を別のシートに下記のような票にしてリンクさせたいのですが これは可能な事なのでしょうか? A  あ    A  さ B  い    B  し C  う     C  す D  え     D  せ E  お     E  そ ※上記の『2』の行の『きくけこ』は『A』列に入力がないのでリンクさせません。 『A』列に入力した行のみを、別のシートにリンクさせる方法です。 どなたか、おわかりになる方。 Excelは初心者も同然です、宜しくお願いいたします。

  • エクセルで同じブック内のシート

    エクセル超初心者です。1つのブック内の各シート(表)の列幅、行幅を揃えずに入力してしまいました。1ぺんに揃える方法がありましたら教えてください。よろしくお願いいたします。 (エクセル2002)

  • VBAで別のシートへリンクをはりたい

    エクセルでシートの一枚目にある一覧表から、1行ごとに新規シートを作成し、内容をコピーするマクロを作りました。 一覧表のA欄にはNoを振りそのNo名でシート名を作成しています。 一覧表からシートを作成している途中でも、シートを全て作成した後でもいいので、一覧表のNo欄をクリックすると、そのシートへ飛べるようにリンクをはりたいのですが、どうすればよいでしょうか。 教えて下さい。 よろしくお願いします。

  • エクセルについて教えてください。

    エクセルについて教えてください。 エクセルのタブ1が”一覧”とします。 内容は、A=担当者名(○○さん、△△さん、××さん) B=相談内容(文字列)  があるとします。 タブ2は”○○さん”です。 内容は、A=担当者名(このとき担当者別のシートですので、Aは全行が○○さんにしたいです。)B=相談内容 です。 このようなとき、一覧を入力すると自動で違うタブにその担当者の内容のみを表示していくことはできますか? つまり、一覧と担当者別のシートとそれぞれつくりたいのです。しかし、担当者別シートを入力して一覧のシートを入力してと2度手間になっているのを解消したいです。 説明がわかりにくくて申し訳ございません。

  • EXCEL データの各シートへの振り分け

    エクセルの1枚目のシートをデータシートとして、各行に入力していきます。 各行の第1列の数字や言葉に基づいて、2枚目以降のシートに順にコピーさせる方法があるでしょうか 具体的には1枚目のシートはデータシートとして 部門 氏名 住所  人事 田村 東京 総務 太田 京都 人事 山田 大阪 2枚目のシートの名前は「人事」3枚目は「総務」で各シートに行ごとコピーさせたいのです マクロはよくわからないのと最初に開くときに面倒なので、なるべく関数で処理する方法を教えてください。

  • エクセル2007:シート内のデータの自動転記

    Excle2007を使用しています。 シート1のデータをシート2に自動で転記したいと思っています。 シート1 作業件名ごとにその内容、作業者名が書いてある表。 1行ににつき作業1件 A列:日付 B列:作業件名 C列:内容 D列:作業者名 シート2 作業者ごとに従事した作業をまとめた一覧表で、ひとりにつき1ページ。 表の形式(見た目)はシート1とはまったく別のもの。 作業者ごとに空欄の表が既に作られており、 1ページ目:Aさん 2ページ目:Bさん という風に、1シートに改ページしながら全ての作業者について1ページずつ一覧表になっている。 1ページは25行を使用しており、 Aさん(1ページ目)は1~25行(Bさん(2ページ目)は26~50行)となる。 1ページ目の表のうち、シート1のデータを入れられる行は11~21行。 3件あれば3行使って残り8行は空欄ということになります 日付欄はシート2のA11~A21 件名欄はシート2のB11~B21 内容欄はシート2のD11~D21 シート2には、作業者の住所や生年月日など、シート1にない項目があらかじめ入力されている。 いつもはシート1を入力後に作業者基準で並べ替えをして印刷し、 シート2の該当する作業者のページに手打ちでデータ入力しています。 シート1のデータをシート2の該当箇所に転記するだけなので、シート1が完成した段階で シート2を自動で作れたら作業時間の短縮になると思い、考え始めました。 が、VBAに詳しくないため、どこからどう手をつけたらいいものかわかりません。 お詳しい方、お知恵をいただけましたらと思います。 不足情報等ございましたらご指摘いただけましたら補足をさせていただきますので どうぞよろしくお願いいたします。

  • エクセル2010の関数コピーについて

    エクセル2010でシート2~10にデータを入れ、シート1は取りまとめようとして一覧表を作り、シート2~10に入力したデータがコピーされるように関数を入れています。 シートを増やそうと思い、一覧表の行も増やし関数をコピーしようとしたのですが、通常2行目がシート2がコピーされるように関数が入っていたら、3行目にコピーすると自然とシート3がコピーされるように関数の数字も変わってくれますよね? それが変わらず、まったく同じ関数になってしまうのです。 他の人が作ったものから追加しようとしているので、何か設定しているのかも知れないのですが、まったくわかりません。 ちなみにコピーをするときは何もメッセージは出ません。どなたか教えてください。よろしくお願いします。

  • 別々のエクセルシートから、一覧表を作るには?

    マイクロソフトエクセルで、複数のシートに入力してあるデータ(名前、年齢、職業など)を1つのシートにまとめて、一覧表を作成するには、どのようにすればいいのでしょうか?

  • Excelで

    こんにちは。現在Excelで問合せ一覧表を作っています。 通常Excelで計算式をコピーすると、上から下へ数字が増えていきますよね?それを上から下へ行くと数字が若くなるようにしたいんです。。。 1.入力用シートに、下が古い順で一番上の段に新しい問合せ内容を入力し、次の問合せを入力する際には行を挿入して入力。このシートでは入力する行は常に変わりません。 2.印刷用シートには、入力用シートに入力したものが上から古い順で一番下の段に新しい問合せが飛んで表示される。 ようにしたいのですが、現時点で入力されていない行を、予め印刷用シートに飛ばせるような計算式はあるのでしょうか? わかりづらい文章で申し訳ありませんが、回答お願いいたします(u_u,)

  • Excel 複数のシートを使って自動入力させていです。

    Excel 複数のシートを使って自動入力させていです。 Sheet1に「一覧表」とし、A1に日にち・B1に入荷先・C1「品物名」・D1「金額」を入力していく一覧表を作成しました。 入荷先の名前をSheet2.3に作り、入荷先ごとにリストを作成したいです。 一覧表に入力しただけで、自動的に入荷先ごとのシートに自動的に入力されてるってことって出来ますでしょうか? 例   A   B   C   D 1 日にち 入荷先   品物   金額 2 4/1 Aスーパー たまねぎ  100 3 4/5 B商店    きゅり   50 これをSheet1「一覧表」をした場合、 Sheet2を「Aスーパー」とし、Sheet2を「B商店」として。同じ表を作成しておく。 一覧表のシートにAスーパーでの購入を入力すると、「Aスーパー」のシートに自動的に表が作られていく 説明下手で申し訳ありませんが、よろしくお願いします!

専門家に質問してみよう