• 締切済み

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} 全体がひとつなので、部分の変更は一切できません。

noname#262398
noname#262398
回答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% (7417/18945)
回答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