• 締切済み

エクセル!常に隣のシートを参照する数式をおしえて

お願いします<m(__)m> エクセルで日ごとにシートを追加して前日の増減を表記していますが 今はいちいち数式を入れなおしています。 そんな数式はありますか? これで意味が通じていますか? 宜しくお願いいたします。

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 回答:No.3です。 >すいません。上記のようにしても数値がでてきません。 >シートは日付を入れています。  済みません、回答:No.3の方法ですが、質問者様個人がどの様なパターンでシート名を決めておられるかという情報が無かったため、取り敢えずとして、単純にコピーシートを複製しただけの場合に関して回答させて頂いたものです。  ですから、シート名を書き換えて、括弧付きの数字を削除してしまった後の状態に対しては、回答:No.3の方法は対応しておりません。  シート名が日付となっている場合に対しては、また別の関数を組む事で対応可能になると思われます。  但し、 >たとえば 12.1 12.2のように日ごとシートを増やしていきます。 という形式のシート名には、何年の日付になるのかという情報がありませんから、そのままでは前日の日付が何日になるのかが不明となる場合が出て来ますので、現行のシート名の名付け方では、御望みの結果を得ることは出来ないと思います。  例えば、3.1というシートの前日のシートは、どのシートになると思われますか?  2012年であれば3.1の前日のシートは、2.29になりますが、2013年であれば2.28になるはずです。  この様に、年によって前日にあたるシートが変化しますので、年の情報がなければ前日のシートを正しく選択する事は出来ません。  ですから、シート名をあくまで日付を基にした名称とされたいのでしたら、シート名を例えば、 2012-3-1 や H24.3.1 といった、年数の情報を含んだものにされるか、或いは、各日毎のシートの決まったセルに、年数を入力しておくようにされるか、どちらかの方法を取らなければなりません。  従いまして、シート名の決め方を変更される場合には、どの様な形式のシート名に変更されるのかを、そして、特定のセルに年数を入力しておかれるのでしたら、そのセルのセル番号を、それぞれ御教え頂かなくては、回答者は関数を組む事が出来ませんので、現行の方法から、どの様な方法に変更されるのかをお決めになられてから、どうされるのかを御教え願います。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

>シートを追加して  という操作を行う際に、おそらくは元のシートのコピーシートを作成しておられるかと思いますが、その際、元のシート名が例えば「Sheet1」であった場合には、コピーシートのシート名は「Sheet1 (2)」になるかと思います。  この事を利用して自動的に前のシートのセルを参照させるには、次の様にされると良いかと思います。  まず、元のシートのシート名を「『元のシート名』+『半角スペース』+『(1)』」という形式に変更して下さい。  例えば、元のシートの元々のシート名が「Sheet1」であった場合には、「Sheet1 (1)」に変更して下さい。  次に、そのシートのコピーシートを複製しますと、コピーシートのシート名は「Sheet1 (2)」になるかと思います。  そして、例えばSheet1 (2)のE1セルに、Sheet1 (1)のA1セルのデータを表示させる場合には、Sheet1 (2)のE1セルに次の関数を入力して下さい。 =IF(ISERR(1/(INDIRECT("'"&REPLACE(LEFT(CELL("filename",E1),FIND("(",CELL("filename",E1),FIND(".xls",CELL("filename",E1)))),1,FIND("]",CELL("filename",E1),FIND(".xls",CELL("filename",E1))),)&REPLACE(LEFT(CELL("filename",E1),LEN(CELL("filename",E1))-1),1,FIND("(",CELL("filename",E1),FIND(".xls",CELL("filename",E1))),)-1&")'!"&CELL("address",A1))<>"")),"",INDIRECT("'"&REPLACE(LEFT(CELL("filename",E1),FIND("(",CELL("filename",E1),FIND(".xls",CELL("filename",E1)))),1,FIND("]",CELL("filename",E1),FIND(".xls",CELL("filename",E1))),)&REPLACE(LEFT(CELL("filename",E1),LEN(CELL("filename",E1))-1),1,FIND("(",CELL("filename",E1),FIND(".xls",CELL("filename",E1))),)-1&")'!"&CELL("address",A1)))  上記の関数は、セルの参照形式が相対参照の場合の関数になりますが、もし参照形式を絶対参照とする場合には、関数の中に2ヶ所ある CELL("address",A1) という部分の中の「A1」という記述を「$A$1」に変更して、 =IF(ISERR(1/(INDIRECT("'"&REPLACE(LEFT(CELL("filename",E1),FIND("(",CELL("filename",E1),FIND(".xls",CELL("filename",E1)))),1,FIND("]",CELL("filename",E1),FIND(".xls",CELL("filename",E1))),)&REPLACE(LEFT(CELL("filename",E1),LEN(CELL("filename",E1))-1),1,FIND("(",CELL("filename",E1),FIND(".xls",CELL("filename",E1))),)-1&")'!"&CELL("address",$A$1))<>"")),"",INDIRECT("'"&REPLACE(LEFT(CELL("filename",E1),FIND("(",CELL("filename",E1),FIND(".xls",CELL("filename",E1)))),1,FIND("]",CELL("filename",E1),FIND(".xls",CELL("filename",E1))),)&REPLACE(LEFT(CELL("filename",E1),LEN(CELL("filename",E1))-1),1,FIND("(",CELL("filename",E1),FIND(".xls",CELL("filename",E1))),)-1&")'!"&CELL("address",$A$1))) 等として下さい。(「E1」と記述されている部分に関しては、相対参照のままで構いません)

hideki19630710
質問者

補足

すいません。上記のようにしても数値がでてきません。 シートは日付を入れています。 たとえば 12.1 12.2のように日ごとシートを増やしていきます。 新しいシートに前日の数値の増減を自動計算したいのです。 この文章で分かりますでしょうか? 宜しくお願いいたします。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えばシートが追加されていくときにSheet4、Sheet5、Sheet6といった場合でしたら次のような式で対応できますね。 例えばSheet5が追加されたときにSheet4のA列のデータをSheet5のA列に表示させるとしたらシート5のA1セルには次の式を入力して下方にドラッグコピーします。 =INDIRECT("Sheet"&TRIM(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+6,10))-1&"!A"&ROW(A1)) この式でしたら常にシート番号がj一つ下のシートのデータを表示させることができます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

具体的に何をどう困ってるかわからんのだけど, 単にコピーするだけじゃダメ?

関連するQ&A

  • エクセルでのシートを飛ばした数式

    教えてください、エクセルでシートを何枚も追加しているのですが合計をまとめて最後のページで集計したいのですが数式が分かる方お願いします。

  • エクセル内の数式を反映させながらシートをコピーする方法

    エクセルのシートのコピーについて教えて下さい。 1日1シートで表計算できる表を作るよう指示されました。 シート内には、累計を出すように(前日までの合計)+(本日の数字) の数式が入っています。 具体的に書きますと、セルA1に本日の数字を入力。 セルB1に(前日までの合計)+(本日の数字)と数式を入れました。 数式でいうと、例えばシート3のセルB1には(シート2:B1)+A1 シート4のセルB1には(シート3:B1)+A1 という具合にセルB1には前日までの合計を反映させるように、常に 前シートの累計をリンクさせています。 シートをコピーしては、セルB1の数式「前シート」部分を修正して こつこつシート7まで作ったのですが、30日分作って欲しいと 言われて困っています。 時間がたくさんあればこつこつ続けて完成させるのですが、就業上の 問題があってこれにずっと時間を割くことができません。 説明が長くなりましたが、ここで教えて頂きたいのです! 数式を反映させながら、シートをどんどんコピーする方法は ありませんでしょうか? 今、シート7まで作ったので、まんまコピーして7枚ずつ増やす 事は簡単ですが、累計部分の(前シート:B1)シートのリンクが 勝手には直ってくれません。 コピーすると同時に、前シートのリンクも直ってくれる方法が あればぜひ教えて下さい。 よろしくお願いします。

  • エクセルの数式教えてください!

    エクセルの数式教えてください! 例えば 勤務表なんですが シート1に 名前  1日  2日  3日   4日   5日 ○○  日   入   明   半日   休 ってな感じに作成します シート2に ちょっと違う表で、1日の日を8に置き換えする数式 置換でなく数式で置き換えたい 日を8 入を1.25 明を0.85 半日を4 っていう数式ありますか? わたしが言いたいことわかりますか?(ごめんなさい・・・)

  • エクセル数式教えてください

    エクセルの数式を教えてください! 参考書をみても適当な数式を探しだせませんでした・・ 売上をのせた一覧表を別シートに飛ばす方法です。 SHEET1  A  B   C  D   1   10日 11日  12日 2ペン 100  150  210 3靴  900  840  920  4鞄  1000  790  980  SHEET2  A  B   C   D 1   12日  11日  10日 2ペン 3鞄 4靴 販売項目(シート2のA列)と日付(シート2の1行目) を入れるとシート1から数字が飛ぶ数式を教えて下さい!

  • 別シートの数字を使って数式を入れた時について。

    あるセルに数式が入っているなら、その場で「F2」を押すと、色の付いた枠が表示され、どことどこを足したのか、どことどことを掛けたのか?がわかりやすく表示されますよね? これはたぶん同じシート内で同じ表内であるからなのだと思います。ですが、例えば、同じエクセルのファイルの中で別のシートの数字を使って、数式を入れる場合について教えてください。 別のシートの数を参照にして、数式を入れた場合、上のツールバー?みたいなところには、黒文字として表示はされるみたいなのですが、上記のような枠などの表示がされないため、大変見にくくわかりにくく困っています。なにかいい方法ないでしょうか? いちいちシートをクリックしての確認(もうひとつのシートのどこの数字とどこの数字を書けたのか?など)しなくてはならないし、眼で追うのも大変です。 意味わかりますかね?お願いいたします。

  • エクセルの特定のシートのみ、数式を隠すには?

    タイトルの件、質問します。 エクセル2003以下のバージョンで、特定の数式のみ隠す事はできますか? ブックすべての数式は隠せますが、特定のシートの数式が隠せません。 よろしくお願いします。

  • エクセルでふたつのシートで違う文字を見つける数式

    エクセルでふたつのシート(仮に(1)(2)とします)にほぼ同じ内容のものが入力されていたとします。しかし(1)と(2)のシートが本当に全部同じものなのかどうか調べたいと思います。 そこでシート(3)に(1)(2)の相違箇所をエラーなどで表示させるような数式を教えてください。

  • エクセル 数式の変更がうまくいかない

    エクセルで人からもらったファイルなのですが、例えば「=sheet1!C27」のような数式を「=sheet1!C28」に変更し、Enterを押すと 「=sheet1!C28」がそのまま表記されてしまい、計算式が機能しません。 (変更する前は機能しています。) なにかセルに仕掛けがしてあるのでしょうか? よろしくお願いします。

  • エクセルのシート参照

    エクセルのシート参照を行うのですが セルA1~A10に ="1"!A1 ="2"!A1 ="3"!A1 ・ ・ ・ ="10"!A1 と表記一気に入力できる方法はありますか? 関数などを用いて、等表記方法にはこだわりませんのでよろしくお願いします。

  • エクセルでワークシートを替えて数式をいれたい

    エクセルでワークシート名を指定して数式を入力することはできますか? ただし、ワークシート名が変化するようになっているのですが。 "='sheet1'!(A1)+'sheet2'!(a2)" でsheet1,2のところは変数にはできないんですかね? sheet1,2のところにiとかいれてもだめなんですが。