アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちわ くろすけです。
自身の力足らずで調べきらず、
皆様のお知恵ご拝借!お願いしたくカキコしています。
どうぞ、宜しくお願いします。

ご質問)
sheet2のR1C1に=sheet1!R1C30
sheet3のR1C1に=sheet2!R1C30
というようにいれたいのです。
これを =(sheet(自身のワークシート-1)!R1C30)
と言う形で表わせたら簡便でいいなと思うのですが
Excelで可能でしょうか?
つまり、表題のとおり相対参照時にシート名やR1C1の1の部分に
数式を入れられるのか、それとも数値しか入れられないものなのか、
ご存知の方がいらしたら
その可否、また、方法について教えていただきたいのです。

やりたいこと)
1.目的としては、月ごとにシート分けしたデータ
(x軸:時間、y軸:実績)
について、
本月1日目に前月30日目のデータを参照したい。
2.できるだけマクロを使わず、
Excel表計算機能を利用してできる限り高速に計算を進めたい。

環境)
windows2000,Excel97

アドバイスお待ちしております。

A 回答 (2件)

シート名は、Sheet1、Sheet2、Sheet3・・・・・となっているとします。



下の式は各シートのR1C1(A1)に入力する算式です。
見易くするため4行で書いてますが、つなげて入力します。

=INDIRECT(
   "Sheet"&(MID(CELL("filename",R1C1),FIND("Sheet",CELL("filename",R1C1))+5,3)-1)
   &"!R1C30"
   ,FALSE)

2行目は算式のあるシートのシート名を求め、『Sheet』の文字を除いた番号を求め『-1』しています。


>表題のとおり相対参照時にシート名やR1C1の1の部分に数式を入れられるのか・・・
上の式で、シート名は数式で計算できるのが分かったと思います。

セル番地(例では"!R1C30")については、

 "!R1C"&(29+1)

のように書けるので、こちらも数式で表現できます。

>2.できるだけマクロを使わず、
>Excel表計算機能を利用してできる限り高速に計算を進めたい。
この方法が『高速』かどうかは不明です。
1つ前のシート番号を求めるのが一番面倒な感じです。1つ前のシート番号を直接手入力していたほうが速いかもしれません。



※以下は参考に書いてみました。

Sheet1、Sheet2、Sheet3が1月、2月、3月に対応しているとします。閏年は別として、

=INDIRECT(
   "Sheet"&(MID(CELL("filename",R1C1),FIND("Sheet",CELL("filename",R1C1))+5,3)-1)
   &"!R1C"
    &CHOOSE((MID(CELL("filename",R1C1),FIND("Sheet",CELL("filename",R1C1))+5,3)-1)
         ,31,28,31,30,31,30,31,31,30,31,30,31)
   ,FALSE)

で各月(Sheet2からの)共通の算式になります。前月末日を自動計算しています。

1つ前のシート番号(SheetXのX)を返す次の算式をR1C100にセットしておくと、
(R1C100は邪魔にならない位置の意味です)
  R1C100 : =(MID(CELL("filename",R1C1),FIND("Sheet",CELL("filename",R1C1))+5,3)-1)

これで、
  =INDIRECT("Sheet"&R1C100&"!R1C"&CHOOSE(R1C100,31,28,31,30,31,30,31,31,30,31,30,31),FALSE)
のようにすっきり?書けます。
    • good
    • 2
この回答へのお礼

お礼 大変遅くなってしまい誠に済みません。

大変丁寧なご回答有難う御座いました。
私の力量不足で上記を忠実に再現することはできませんでしたが
お蔭様で、INDIRECT関数を使えるようになり、
目標どおりのものを作成することが出来ました
大変助かりました。
本当に有難う御座いました。

お礼日時:2002/09/02 13:05

同じ式で参照先を切り替える、いわゆるポインタ的な方法だと思うのですがINDIRECT関数を使えばいいのではないでしょうか。

    • good
    • 0
この回答へのお礼

お礼 大変遅くなってしまい誠に済みません。

アドバイス大変有難うございました。
INDIRECT関数を使い
目標どおりのものを作成することが出来ました
大変助かりました。
ありがとうございました。

お礼日時:2002/09/02 13:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!