• ベストアンサー

エクセルにて、シート間でデータの共有はできますか?

エクセルで社員の売り上げリストと会社全体の売り上げの平均を出しました。 これを、同じブック内で人数分のシートを複製して、 1社員1シートにし、1シート内では該当社員以外の名前は隠して 社員本人の売り上げリストと会社全体の平均のみ表示し、 オリジナルのシートでは全リストを表示したままの状態にするとします。 これで、今後オリジナルのシートに新たに各社員の数値を入力するだけで、 ブック内の各シートにデータが反映されるようにすることは可能ですか? たとえば、オリジナルのシートに11月の山田華子と松田雄太のデータを入力したら、 それが山田華子のシート、松田雄太のシート、その他にも反映するようにしたいのです。 よろしくお願いいたします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

個人のシートが、以下の様であれば A    B       C      D       E ・・・    AH     AI    4月1週目 4月2週目 4月3週目 4月4週目・・・10月3週目 10月4週目 山田   平均   B2セルに =VLOOKUP($A2,オリジナル!$A:B,COLUMN(B2),FALSE) といれて 下へひとつコピィ、右へコピィしてみてください。 Vlookup関数、Column関数については、Helpで確認してみてください。 全員のシート作ってもかまいませんが、氏名のセルを入力すると結果が表示されます。 氏名のセルには、入力規則でオリジナルのシートの名前を反映させれば、ワンクリック操作ですみます。 もし、2枚のシートでボタンひとつ押せば、各自の結果を順次印刷したければ、VBAでできますので別途質問してみてください。

LCB
質問者

お礼

このやり方でできました! ありがとうございました! エクセルはまだまだ奥が深いようなので、 VBAのほうも勉強したいと思います。 本当にありがとうございました!!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

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

実例も挙げてないため、一読して、内容を理解できない部分もあるのですが ーー エクセルの関数の本質をしっかり理解してください。 エクセルの関数は、データをセットする(受ける)側で、式を書いて (自分以外の)あそこのセルとあそこのセルのデータで、こうこう処理・計算など、してとエクセルに願い出るカタチです。ですから反映する場所が複数あるとその場所に式をいれる必要があります。セルにキャッチャーがいるイメージです。 突き詰めると =IF(a1=1,C3=B2,"") のC3=B2のような書き方が、関数の中で、出来ないということです。 ーーー しかしVBAだと望みのところにデータを書き込めます。 プログラムコードでは、その回数だけ、コード行を書きますが、 SheetXのA2、SheetyのC6など、決まっておればコードを書くことで 値をセットできます。 他の仕組みもあって、どこへデータをセットするなど割合易しい (ピッチャーのイメージ) ーー それとデータのセットのパターンを捉えると、後は変えるべきものは変えて、コンピュターが繰り返しをしてくれます。 A1,A3,B5,C1に5をセットせよという場合、A1,A3,B5,C1をテーブル化すると for i=1 to 4 Range(S(i))=3 Next i で終わりです。しかし関数は各セルに、=a1という式を4箇所入れないといけません。 ーー そういうことでシートがコピーすれば済むケース以外は難しい。 参考にVBAが必要な理由を説明してみました。

LCB
質問者

お礼

ありがとうございました。 VBA自体を私が理解していないため、今はせっかくimogasiさんが説明してくださったことも、よく理解できていません。 VBAを一度勉強してきてから、またこの質問を閲覧して、imogasiさんの回答をきちんと理解したいと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

No2,3ですが、個人のシートが先のスレでよくて印刷が目的ならオリジナルシートだけでもOKですね。 ツールバーのツール=>マクロ=>VBエディター開いて 挿入=>標準モジュール作成して Sub Macro1() Range("A1").Activate Selection.AutoFilter i = ActiveCell.Row + 1 Do While Cells(i + 1, 1).Value <> "" Selection.AutoFilter Field:=1, Criteria1:=Cells(i, 1).Value, Operator:=xlOr, _ Criteria2:="=平均" ActiveWindow.SelectedSheets.PrintPreview i = i + 1 Loop Selection.AutoFilter End Sub 上記をコピィし閉じます。 VBエディターを閉じて、ツール=>マクロで Macro1 を実行します。 A列にある氏名順で印刷を繰り返します。 一応、印刷プレビューにしていますが、印刷でよければ PrintPreview の部分を PrintOut に変更してください。 もし1行目などに項目などありましたら Range("A1").Activate を Range("A2").Activate などと編集してください。

LCB
質問者

お礼

ご丁寧に印刷方法まで細かく教えていただいて、 ありがとうございます。 VBはまったくわからないので、もう少し勉強してからやってみようと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

>たとえば、オリジナルのシートに11月の山田華子と松田雄太のデータを入力したら、 >それが山田華子のシート、松田雄太のシート、その他にも反映するようにしたいのです。 VBAの力を借りることになると思います。 例えば、オリジナルシートが  A   B   C 年月 社員名  売上 08/10 山田華子 1000 08/10 松田雄太 2000 ・・・とあって 別途、社員のシート名が社員名と同じであったとして 松田雄太のシートの10月の行へ入力した売上が飛んでいけ・・と言ったプログラムを組み実行する。 >1社員1シートにし、1シート内では該当社員以外の名前は隠して ここを発想変えて オリジナルシートと表示シートの2枚構成で 表示シートの A1セルにでも山田華子と名前を入れると、山田華子さんの一覧表がでる。 こういった構成がシンプルです。 何名分のシートを作成されるのかわかりませんが、社員ごとにシートを移動するより、名前入れて一発で表示させたほうが作業も楽だと思います。 オリジナルシートの構成を提示してもらわないと回答も難しいと思います。

LCB
質問者

お礼

ご回等ありがとうございます。 VBAですか・・・。使ったことがないので、勉強してみます。 確かに、何枚もシートを作るよりも閲覧は楽そうですね。 プリントアウトしたいときに毎回名前を入力してプリントしなければならなくなりそうなのが難点です。 シートを人数分作ってあれば、ブック全体を印刷、で全部印刷されますね。 シート自体は10名程度のものなのですが、平均が式で計算されて出されているため、全部のシートに全員分のデータが必要になるのです。それで、大変なことに・・・ ありがとうございました。

LCB
質問者

補足

オリジナルシートの構成ですが A    B       C      D       E ・・・    AH     AI    4月1週目 4月2週目 4月3週目 4月4週目・・・10月3週目 10月4週目 山田  4000    3400    4800    4500 ・・・  5000 松田  3400    3200    5300    4000 ・・・  4900 井上  5000    4800    5100    4700 ・・・  5200 鈴木  4700    4500    3900    4100 ・・・  4300 平均  4275    3975    4775    4325 ・・・  4850 といった感じで、今後売り上げをこれに追加入力していきます。 10月4週目を入力するときに、最初の1シート(オリジナル)に入力するだけで、 それが全シートに反映されるようにしたい、ということなんですが・・・ すみません、何しろエクセル初心者なもので、これで「オリジナルシートの構成」の説明になっていますでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

  =Sheet2!A1 シート名の後に!を付けてセルを書けば出来ます  

LCB
質問者

お礼

早速のご回等ありがとうございます。 反映できるんですね!嬉しいです。 ですが・・・ う・・・っ。 という感じです。というのは、データのあるセルがすごい数なのです。 シートを複製する際に全セルにこの式を入れることはできないのでしょうか。 複製した後でもできるならそれが一番嬉しいのですけれど、 この際複製自体はやり直してもいいと思っているのですが・・・。

LCB
質問者

補足

考えてみたのですが、このやり方でやろうと思ったら、 オリジナルの一覧と、それを反映するもうひとつの反映側オリジナルを作って、 反映側を何度も複製すれば反映されるシートを増やしていけそうですね。 A1に =Sheet2!A1 と入力して、後はセルドラッグすれば簡単に全体の反映リストが作成できますね。  お世話になりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルのワークシート間のデータ共有について

    教えてください。エクセルなんですが、ワークシート1のセルA1にデータを入力し、ワークシート2のセルB2にそのデータが出るように、関数を埋め込んでいます。そこまでは良いのですが、そこからワークシート2のセルB2に新しくデータを入力して、ワークシート1のセルA1に反映させることは出来るのでしょうか?分かりづらく申し訳ありませんが、イメージとして現在データ入力をA→Bとなっているところを、A<=>Bにしたいのです。

  • EXCELでデータを各シートに反映させる方法

    EXCELのブック内で、ひとつのブックにある一列のデータを各シートの指定の位置に反映させることはできるのでしょうか。 各シートのデータを串刺しにして、ひとつのブックにまとめて集計することはよくあると思うのですが、その逆をやりたいです。

  • エクセル:2シート間でのデータ入力

    エクセルで、データ入力済みのシート(1)を用いて、新しい(2)シートに異なる表を作り直さなくてはなりません。 (1)のデータを全てコピペできるならともかく、それぞれのデータ項目が(2)には全く異なる位置に入力しなくてはいけません。 具体的に説明すると、(1)にはそれぞれの支店(100店舗)の売上高データが入力されており、(2)で更に拡大した支店(150店舗に拡大)に対応する(1)のデータを入力するという作業です。店舗数が異なるので、簡単にまとめてコピペができません。 データ数は100以上にも及び、一つ一つコピペでやっていくのは間違いの元にもなりやすく、何か他の方法はないかと模索しています。 また(1)の変更を(2)にも反映させたいのですが、それにはどうしたらいいのでしょうか? ぜひぜひアドバイスのほど宜しくお願いします。

  • Excelでシート間のデータの抽出方法

    1つのブックに集計用のシートと、A店、B店、C店という各店舗別の売上シートがあります。 Sheet集計用のA1にA店のコード(A店は001、B店は002というようなコード)を入れると、Sheet集計用のB列の上期売上、C列の下期売上にSheetA店のB列の上期売上、C列の下期売上のデータが入るようにすることは可能でしょうか? Sheet集計用のA1のコード変更することによってデータを引っ張ってくるシートが変わる様にしたいということなんですが、Excelでどのようにすればいいかわかりません。 各店舗のシートのA1のセルにも、その店舗のコードが入力されています。

  • エクセル 別シートにあるデータを。

    いつもお世話になります。 エクセルで顧客リストを作るのに、sheet1は店名が空欄の顧客リストで、sheet2に各店の郵便番号・住所等一覧リストがあって、そのsheet1の一覧リストに店名を入力すれば、自動的にsheet2にある住所等が出てくる。と言う感じに反映させたいのですが、どうすれば良いですか?

  • Excelの2つのシートのデータ-を。。。。。

    1つのシートには 鈴木さん  住所・・・・ 山田さん  住所・・・・ 田中さん  住所・・・・ というリストが3000人分ほど入っています 別のシートには 鈴木さん  りんご 鈴木さん  とまと 鈴木さん  みかん 山田さん  りんご 田中さん  いちご 田中さん  とまと 田中さん  りんご 田中さん  みかん と、言った感じで同じ人物が縦書きで複数回登場します 実際はフルネームなので別人が重なることはありません で、です。 別のシートでも1枚目のシートにでもいいのですが 鈴木さん  住所・・・   3 山田さん  住所・・・   1 田中さん  住所・・・   4 と、列に2枚目のシートでの登場回数を反映させたいのです。 なにせ3000件あまり、手作業ではなく、関数を使ってする方法はないでしょうか、、、 もう少し欲張ると             りんご とまと みかん いちご  鈴木さん 住所 3    1  1   1 山田さん 住所 1       1 田中さん 住所 4    1  1   1   1 ってな事は、できませんか。    

  • excelの共有bookでのデータの共有の仕方について

     エクセルで、フォームを使ってデータ入力をし、データを蓄積(行が下へ伸びてゆく)していくファイルがあるのですが、複数の人がネットワーク上で同じファイル(共有book)を開いて作業するイメージで質問です。  フォーム上に入力したデータをエクセルシートに落とす前に、1回保存-シートへ書き込み-再度保存とやれば、データがバッティングせず、うまく蓄積されていくのかなと漠然と思っていたのですが、うまくいきませんでした。  これは、1回保存すれば、他の誰かが作業したデータを自分の開いているbookに反映させ、そのデータにフォームのデータを追加して行くというというように考えていたのですが、この考え方は間違っているのでしょうか?また、ほかに何か良い方法があるでしょうか?  

  • Excelに関して、質問があります。

    同じブック内のシート間でデータのやりとりができますが、違うブック間で表にある数値などのデータのやりとりは可能なのでしょうか⁇ 取引先すべての商品在庫リストをつくったのですが、各取引先ごとにも違うブックにその取引先の在庫リストをつくりたいと考えました。 ただ、手入力ではなく全体の方を入力すれば自動に入力されれば時間的に節約できると思ったので、できるかなと思い質問しました。

  • エクセル2013 シートのデータ読み込みで

    エクセル2013 あるBookにシートが複数枚あります。 各シートのL1に氏名が入力されていたら、他のセルのデータを氏名とともにシート40にある幾つかのセルに読み込みます。 氏名が入力されていないと、シート40の氏名その他のデータが「0」になってしまいます。 氏名が入力されていない場合は、シート40のセルが「0」ではなく「空白」にしたいのですが 方法を教えてください。

  • エクセルでsheet1のデータをそのままsheet2に移す時

    sheet1のデータをsheet2の対応するセルにそのまま移そうと思い、sheet2のA1に  =sheet1!A1 と入力しそれを表全体にコピーしました。 この方法だとsheet1にデータが入力されているセルはそのままデータが移りますが、sheet1にデータが入力されていないセルでは、対応するsheet2のセルに0が入力されてしまいます。 データのないセルをそのまま空白にしておくには、どうすればよろしいでしょうか。

専門家に質問してみよう