• 締切済み

EXCELLにて。シート間の計算式で、行を挿入しても計算式が反映されるようにしたい。出来る?

こんにちは。文章だと表現しにくいのですが・・。 レシピがカンタンに出来るように、まず「シート1」に原材料一覧をつくり、「シート2~」以降にレシピをつくり、レシピの横に「シート1」と同じ原材料一覧をはりつけて、原材料名、原価がすぐわかるようにしました。 今は、シート10位までしかないので、「シート1」のセルを、「シート2」から「シート10」まで、9回コピーしているのですが、これがシート100とかになると、面倒だと思い・・。 以降、分かりやすいように「生き物」の名前で説明させて頂きますが・・。 「シート1」のA1、A2と順番にA10まで名前、B1、B2と順番にB10まで年令を入れます。 例えばA1から順にA1は「アリ」A2は「イルカ」A3は「ウサギ」A4は「おたまじゃくし」というように・・。 ソレを「シート2」以降に貼り付けしています。 計算式としては 「='シート1'!A1」「='シート1'!A2」 と言うような式を「シート2」のA1もしくは違うセル(違うといってもH3、H4~H12など、同じように縦に貼り付けるのは一緒です)に貼り付けています。 ところが、「ウサギ」と「おたまじゃくし」の間に「えび」を忘れていた場合、「シート1」の「ウサギ」と「おたまじゃくし」の間に「セルを挿入」して、「えび」を入れることは簡単なのですが、「シート2」以降には反映されておらず、相変わらず「ウサギ」「おたまじゃくし」のままになっています。B1、B2の行も同じくですが。 そこで、質問・・。 「シート1」のA3(ウサギ)とA4(おたまじゃくし)の間にセルを挿入した場合 {結果A3(ウサギ)、A4(えび)、A5(おたまじゃくし)となる} に「シート2」以降のセルにも、同時にセル挿入(A4のえび)されるような方法(計算式)はございますか? どなたか、お教え下さい。稚拙な文面お詫び致します。

みんなの回答

  • yokomaya
  • ベストアンサー率40% (147/366)
回答No.8

#5です。それは失礼申し上げました。お許しください。しかしながら少し根本の問題はやはりあると思います。EXCELは本来行と列の2次元の表から構成されています。それをシートというものを使い分けることで3次元に扱うことが出来るわけですがその事にはかなり慎重になる必要があります。 ひと目で見通せる一枚と異なりシートを分けるということは切り替えなければ見えない領域にデータを並べることですから扱いが非常にやりにくくなります。circlekazさんは原材料一覧を作られたとの事ですからそれと同じ構造を貼り付けるのではなく原材料を入力すればそこから原価や付随するデータをVLOOKUPなどで引き出す構造にすれば順序などに無用な気を使う必要はありません。原材料の入力が誤らないように一覧から選ぶ入力規則を用いればなお理想的かと。このように別シートにある場合は名前を定義しておきデータの入力規則でリスト範囲のところに=定義した名前のように入力すればマウスで選べます。 恐らく原材料一覧を貼り付けるとの事ですからレシピ毎に1シートではないかと想像しますが僕なら1レシピ1行で作ります。非常に横長になるかもしれませんがその1行を1ページに見せて表示するシートを別途設けることでデータ構造が極めてすっきりするからです。 この構造なら和洋中についても必ずしも分離する必要を覚えません。和洋中の区別列を設ければフィルターで抽出できますから。データを扱う場合行と列に意味のあるはっきりとした2次元構造にすることがEXCELが本来持つ種々の機能(フィルター、、ピボットetc)を効果的に用いるためにもとても大切です。 EXCELではデータ構造をどう設計するかが最も肝な部分と思いますからすぐには難しいかも知れませんが徐々に試行錯誤されていくことをお勧めします。

  • NCU
  • ベストアンサー率10% (32/318)
回答No.7

全体をひとつの配列にしてしまえばよろしいかと。 Sheet2の!A1:B10を選択した状態で、「=」を入力。 そのままSheet1のA1:B10を選択し、Ctrl+Shift+Enter 結果として、こんな式になります。→ {=Sheet1!A1:B10} 全体がひとつなので、部分の変更は一切できません。

  • NNAQ
  • ベストアンサー率56% (104/184)
回答No.6

=Sheet1!A1 では無く、 =INDIRECT("Sheet1!A1") か、 =INDIRECT("Sheet1!A"&ROW(A1)) で、良いのでは。 又は、原材料一覧に名前定義して =INDEX(名前,ROW(A1),COLUMN(A1)) とか。

  • yokomaya
  • ベストアンサー率40% (147/366)
回答No.5

そもそもシートを分ける事の必要性の方が疑問ではないでしょうか?EXCELでは列が実に256列もあるのにです。A列に項目名があって横スクロールでも消えない枠固定をご存知ないのでは?

circlekaz
質問者

お礼

シートを分ける必要性はあります。洋食も和食もデザートも全て同じシートにごっちゃって訳にはいかないので・・。 「枠固定」も知っています。 ただ、高度(私にとって)な技術となると、説明文よんでもチンプンカンプンで。 語学力がないと言われればそれまでですが、皆様のお力をおかし頂きたくて。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

単純にシート全体を作業グループにして、一行挿入してやればいいのでは 内容が同じならこのほうが楽だと思いますが... 「複数のワークシートに同じデータを入力する」 http://www.microsoft.com/japan/users/tips/Excel/122.aspx 「作業グループで行える作業」 http://support.microsoft.com/kb/402374/ja

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

材料が最大で50個だとして(A1:A50に格納される)、貼りつけたい開始セルに =IF(Sheet1!A1:A50="","",Sheet1!A1:A50) と入力して、それを下にコピー。 配列にする手もありますが、わざわざ配列にしなくてもOKでした。

回答No.2

読解能力がないので、検討違いでしたらごめんなさい。 LOOKUP関数を使われてはいかがですか?

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

材料がシート1のA1から並んでいるとき、別シートのH4から下に表示させたいなら、H4に =OFFSET(Sheet1!$A$1,ROW()-ROW($H$4),0) と入力して、下にコピーします。 シート名、材料の開始セル、貼りつけるセルの開始位置は必要に応じて変更して下さい

関連するQ&A

  • EXCELLで列の挿入ができなくて困っています。

    こんにちは、二度目の質問になります。 前回は、いろんな方からの回答、ありがとうございました。 おかげさまで、解決いたしました。 今回は、又別の質問になります。 今度は、方法ではなく、ヘルプで調べようもないみたいでお手上げになり、ここへきました。 現在、エクセルにてデータの追加を行っています。 現在は縦5行、横244列ある表に、更に前の列のデータをコピーして、そのデータを挿入していきたいのですが、何故か 『データの消失を防ぐため、空白でないセルをワークシートの外にシフトすることはできません。 Ctrl+Endキーを押して最後の空白でないセルに移動し、そのセルとデータの末尾との間にあるすべてのセルを削除またはクリアしてください。その後、セルA1を選択し、ブックを保存して最後のセルをリセットしてください。 または、データを新しい位置に移動しもう1度行ってください。』 という、エラーメッセージが現われただけで、 それ以降の列の追加、挿入はそのシートに限って言えば全く出来なくなってしまいました。 これは、どういうことか分からず悩んでいます。 他のシートでは問題なく、列のコピー&コピーした列の挿入はできます。ただし、244列もあるシートはこの問題のシートのみです。 追記:: 保存してから再挑戦 → ダメ 一度エクセルを終了 → ダメ 再起動してみる   → ダメ 思いつく限りやってみましたが、どれもダメでした。 データはまだ追加しなければならないので、頭打ち状態です。。。 どうか、皆様、教えてください。 お願いします。。。

  • エクセルでシートにリンクを貼り付けているのですが元シートに行を挿入した

    エクセルでシートにリンクを貼り付けているのですが元シートに行を挿入した場合にリンク先シートの行も挿入になってほしいのですが・・・ 例えば Sheet1    A    B 1 Aさん  150 2 Bさん  270 3 Cさん  100 4 Dさん  300 5 Eさん  350 と入力し、Sheet2に以下の式?を入力した場合 Sheet2の式                   Sheet2の表示      A        B               A     B     1 =Sheet1!A1  =Sheet1!B1*2       1 Aさん  300 2 =Sheet1!A2  =Sheet1!B2*2       2 Bさん  540 3 =Sheet1!A3  =Sheet1!B3*2  ->  3 Cさん  200 4 =Sheet1!A4  =Sheet1!B4*2       4 Dさん  600 5 =Sheet1!A5  =Sheet1!B5*2       5 Eさん  700 このようになるかと思います。 Sheet1の3行目に行を挿入した場合ですが Sheet1    A    B 1 Aさん  150 2 Bさん  270 3 ←行の挿入→ 4 Cさん  100 5 Dさん  300 6 Eさん  350 Sheet2は以下のようになってしまします。 Sheet2の式                   Sheet2の表示      A        B               A     B     1 =Sheet1!A1  =Sheet1!B1*2       1 Aさん  300 2 =Sheet1!A2  =Sheet1!B2*2       2 Bさん  540 3 =Sheet1!A4  =Sheet1!B4*2  ->  3 Cさん  200 4 =Sheet1!A5  =Sheet1!B5*2       4 Dさん  600 5 =Sheet1!A6  =Sheet1!B6*2       5 Eさん  700 元シートに行を挿入した場合以下のようになってほしいのですが方法はございますでしょうか? Sheet2の式                   Sheet2の表示      A        B               A     B     1 =Sheet1!A1  =Sheet1!B1*2       1 Aさん  300 2 =Sheet1!A2  =Sheet1!B2*2       2 Bさん  540 3 =Sheet1!A3  =Sheet1!B3*2  ->  3  空白  空白 4 =Sheet1!A4  =Sheet1!B4*2       4 Cさん  200 5 =Sheet1!A5  =Sheet1!B5*2       5 Dさん  600 6 =Sheet1!A6  =Sheet1!B6*2       6 Eさん  700 因みにエクセルのバージョンは2003です。 いろいろと調べてみたのですがやり方を見つける事ができませんでした。 マクロを組めば出来そうな気もするのですがなにぶん素人なもので組み方もわからず困り果ててしまいました。 初歩的な質問で申し訳ございませんがどなたかご指導よろしくお願いします。

  • Excelの行挿入で

    Excelのシートにデータがつまっているのですが(これから新しく表を作るということではないということです。)、行の挿入をしたいのです。 このとき、行を選択して、右クリックで「挿入」を選べば挿入自体はできます。 しかし、 既にある表は、行が、A列とB列が結合されているのですが、 単に上記のように挿入すると、 A列B列が分かれている行が挿入されてしまいます。 新しく挿入された行のA列とB列を選択して、「セルの書式設定」の「配置」でセルを結合させてもいいのですが、 いちいちそうしなくても 挿入時点ですでに結合されているようにするにはどうすればよいですか。 (Excel2000)

  • エクセル2000でシートの一番下に反映させたい

    <一覧シート> 会社名:品名:日付:数量:金額 A社  ○:11/1:10個:1000 A社  ○:11/3:10個:1000 A社  ×:11/2:10個:2000 B社  △:11/1:5個:500 B社  ▲:11/2:5個:500 上記の様なデータが入力してあり、入力するだけの シート(入力シート)が別にあります。 入力シートのデータ(例えば、A社○11/4 5ヶ出荷)が そのまま、一覧シートの入力されているデータの一番下に くるようにしたいのですが、 随時、出荷があり行が追加されていく為 =でセルを指定する事ができなくて困っています。 また入力が複数ある場合も、そのまま一覧シートの一番したに 反映させたいのです。。 解かりにくい説明で申し訳ありませんが、よろしくお願いします。

  • Excel シート間の連動を簡単にできませんか?

    こんばんは。 例えばですが Sheet1,Sheet2,Sheet3 というシートを作ったとします。 このときに, 4枚目のシートには,それぞれを一覧にして表示したいと思います。 どういうことかといいますと Sheet1~3はそれぞれ同じフォームです。 例えば番号がA1に1,2,3とそれぞれ入っていて A2に名前を・・・Aさん,Bさん,Cさんと書くとします。 このときに,4枚目のシート(仮に「一覧」というシート名にします)では A1に1,B1に2,C3に3 A2にAさん,B2にBさん,C2にCさんというように 各シートの同じ場所のデータを表示させたいのです。 ここで私が知っている方法としては 一覧シートのA1の部分で「=Sheet1!$A$1」などと入力する 又はシートをクリックする形で連動表示させる方法があります。 ただ,この方法ですと 連動する回数だけ関数を入れなければなりませんよね。 例えば今回の場合はそれぞれのシートごと(Sheet1)の情報が 縦列につながっているので ひとつのシートから1個連動させたらあとはコピーしていけば 順番に連動はされると思います。 ただ,この方法では,もし連動させたいセルが離れている場所の場合, ドラッグするだけでは全然違う情報が連動されています。 各シートから一覧シートに引っ張ってくるセルの場所は同じですが それが全部順番につながっているわけではありません。 結局,一覧シートでSheet1を上手にひとつずつクリックで連動させたあと, 連動させた範囲を選択して,右にドラッグすると 同じようにSheet1の連動になってしまいます。(セルの場所は良いのですが) なので,連動の式の「Sheet1!」の1の部分を2に変えることで とりあえずSheet2の連動に変化させている状態なのですが もっと簡単な方法はないのでしょうか。 連動してくるシート名自体をセル参照させることはできないのでしょうか。 やはり連動してくるシートの名前自体を式で指定することはできないのでしょうか。 大変分かりづらい説明で申し訳ございませんが 補足はしっかりさせていただきますので どうかよろしくお願いいたします。

  • エクセルの全シートのデータ反映について

    エクセルについて質問があり、投稿させて頂きました。 わかる方がいましたら、回答をお願いします。 表示用シートと入力用シートがあります。 表示用は必ず1シート、入力用は毎回シート数が異なり、シート名も変わります。 この場合、入力用シートに入力したデータを表示用シートに表示するには、どういう関数を使えば良いのでしょうか。 参照すべき入力シートのデータのセルは、どのシートも一緒です。 例) 入力用シートの、それぞれB4セルを、表示用シートのA1~A4セルに表示する。 今回はA、B、C、Dの4つの入力用シートだったが、次回はE、F、G、H、Iの5つの入力用シートになる。

  • シート名を計算式に反映させる方法

    お世話になります。 エクセル2003で、毎日の日報を作成しており、日ごとに1シートを使用しています。B1セルには日付が入り、シート名はその日付と連動させています。その中で、当日までの売り上げの累計欄があり、その計算方法は串刺し計算で、日々のシートの前後に「Top」と「End]というシートを作り、例えばA1セルに当日の売り上げを入力するとすれば、A2セルに「=SUM(Top:End!A1)」と入力して、「Top」から「End」の合計を出しています。 ところがこの方法では、日付を遡って日報を出したい場合は、Endシートまでの合計が、遡った日付のシートでも計算されてしまうので、これを解決しようと思い、B1セルの日付データを使って =SUM('Top:text(B1,m月d日)'!A1) と入力してtopシートから当日までの串刺しをしようとしてみたのですが、=SUM('Top:[text(B1,m月d日)]text(B1,m月d日)'!A1)という式に自動的に変わってしまいできません。どのようにすればよいのでしょうか。マクロは使わない方向で、できればよろしくお願いいたします。

  • EXCEL 一覧シートから各シートへ参照

    現在シートが 一覧、1、2、3、 とあります。 一覧シートには、 シート名(A1) 名前(B1) 1(A2) 山田(B2) 2(A3) 鈴木(B3) 3(A4) 木村(B4) と記載されております。(カッコ内は、セルの位置です) シート 1 のA1には、山田 シート1のB2を参照 シート 2 のA1には、鈴木 シート1のB3を参照 シート 3 のA1には、木村 シート1のB4を参照 とシート 一覧から参照して表示されるようにしたい と考えております。 数字の名前のシートが数個であればシート毎に入力すれば済む話ですが、 予定では、順次増え、最終的には100位になる予定です。 数式、マクロ VBA 等を使って  一覧シートに名前を入力すると該当のシートのA1セルに参照させる事は可能でしょうか? よろしくお願いいたします

  • EXCEL2007 ワークシートの挿入について

    EXCEL2007で、新しくワークシートを挿入した時に、特定のセルに式を代入した状態で、ワークシートを挿入することはできないでしょうか? 例えば、Shift+F11でワークシートを挿入したとき、A3にA1+A2という式が代入されたワークシートが挿入される。

  • エクセル ブック内のシート間での行の参照?

    エクセルの同じブック内のシート間で、セルを参照するのではなく、行参照?させたいのですが・・・。 例えば、、  シート1    A    B    C    D     1行目 りんご みかん いちご ぶどう     2行目 赤    オレンジ  赤   紫 と入力すると同じようにシート2にも入力されるようにしたいのと、1行目と2行目の間に行を挿入しても同じようにシート2にも挿入されたり、 さらにはA列・B列のみ入力されたりするようにしたいのですが、(C列D列には別々のデータを入力したい)どのような方法がありますでしょうか?説明がわかりにくく申し訳ないのですが、宜しくお願いします。

専門家に質問してみよう