【解決済】シートを増やすごとに、数式内のシート名を変更させるには?

スプレッドシート (Calc) について
返信する
アバター
goods.1971
記事: 28
登録日時: 4月 17, 2009, 1:16 pm
連絡する:

【解決済】シートを増やすごとに、数式内のシート名を変更させるには?

投稿記事 by goods.1971 »

下記のようにシートを増やすごとに、自身のシート名に変更できるのでしょうか?
例)
sheet1のA1に10 A2に=count(sheet1.A1:?????)
sheet2のA1に20 A2に=count(sheet1.A1:sheet2.A1)
sheet3のA1に15 A2に=count(sheet1.A1:sheet3.A1)

次に、sheet4を増やしたときに、強調部分がsheet4になる方法はありますか?

よろしくお願いいたします。
最後に編集したユーザー goods.1971 [ 5月 27, 2009, 10:57 pm ], 累計 1 回
使用OS.WindowsXP Pro
バージョン.OpenOffice 3.1.0
アバター
parpy
記事: 388
登録日時: 11月 4, 2008, 11:50 pm

Re: シートを増やすごとに、数式内のシート名を変更させるには?

投稿記事 by parpy »

シート名はCELL関数を使うことで取得出来るようです。
具体的には
=MID(CELL("filename");5;999)
とすることで、シート名を取得することが出来ました。
後はINDIRECT関数を使って式を組み立てれば、シートを追加した際に、
自動的に追随する式を作成出来ると思います。
アバター
goods.1971
記事: 28
登録日時: 4月 17, 2009, 1:16 pm
連絡する:

Re: シートを増やすごとに、数式内のシート名を変更させるには?

投稿記事 by goods.1971 »

まいどありがとうございます。

この式 =MID(CELL("filename");5;999) を試したところ保存してない状態でシート名がただしく表示されますが、
この数式のまま保存すると、次にこのファイルを開いたときに
'file:///c:/Document/openoffice/test/test01.ods'#$Sheet1と表示されます。(前から4文字は消えてます。)
使用OS.WindowsXP Pro
バージョン.OpenOffice 3.1.0
アバター
parpy
記事: 388
登録日時: 11月 4, 2008, 11:50 pm

Re: シートを増やすごとに、数式内のシート名を変更させるには?

投稿記事 by parpy »

改良してみました。
いかがでしょうか。
=MID(A1,FIND("#$",CELL("filename"),1)+2,999)
アバター
goods.1971
記事: 28
登録日時: 4月 17, 2009, 1:16 pm
連絡する:

Re: シートを増やすごとに、数式内のシート名を変更させるには?

投稿記事 by goods.1971 »

=MID(A1,FIND("#$",CELL("filename"),1)+2,999)
これで、カンマをセミコロンに変えましたが、エラーも何も表示されません。
やっぱり私のパソコンは変?
この数式を編集中、やはりあのポップアップが邪魔をするし・・・・
数式の答えが表示されないし・・・

ちなみに、A1をCELL("filename")にしたところ表示されました。
=MID(CELL("filename");FIND("#$";CELL("filename");1)+2;999)
正直、訳が分かりません?
この数式は、Find()関数でfilenameの"#$"までの文字数を調べ、filename(or A1)のFind()+2番目から、最大で999文字表示しろ!
と言う事なのでしょうか?
使用OS.WindowsXP Pro
バージョン.OpenOffice 3.1.0
アバター
parpy
記事: 388
登録日時: 11月 4, 2008, 11:50 pm

Re: シートを増やすごとに、数式内のシート名を変更させるには?

投稿記事 by parpy »

こちらの環境の絡みでいろいろおかしな関数を掲載してしまいました。
すみません。
ちなみに、A1をCELL("filename")にしたところ表示されました。
=MID(CELL("filename");FIND("#$";CELL("filename");1)+2;999)
正直、訳が分かりません?
この数式は、Find()関数でfilenameの"#$"までの文字数を調べ、filename(or A1)のFind()+2番目から、最大で999文字表示しろ!
と言う事なのでしょうか?
その通りです。FIND関数が返してくるファイルの情報では、「#$」がシート名の目印になっているようですので、
それ以降をMID関数で切り出しています。
CELL("filename")の返り値:〜〜〜#$Sheet1
FIND関数の返り値:「#」までの文字数
シート名の開始位置:「#」の2文字後
アバター
goods.1971
記事: 28
登録日時: 4月 17, 2009, 1:16 pm
連絡する:

Re: シートを増やすごとに、数式内のシート名を変更させるには?

投稿記事 by goods.1971 »

インターネットでも、探しましたがこれほどきれいな数式はありませんでした。

ありがとうございました。
使用OS.WindowsXP Pro
バージョン.OpenOffice 3.1.0
返信する

“Calc”に戻る