前の関連記事:Calc(80)数式に名前をつける: その1
「範囲」で名前の所属先を決める
「範囲」では「ドキュメント(グローバル)」か各シート名が選択できます。
「範囲」に各シートを指定した名前は、定義したシート以外でも名前の管理画面では表示されますが、セルに代入してみると#NAME?となって使えませんでした。
シートに指定した名前はそのシートを削除するとその名前も削除されました。
しかし名前は削除されても他のシートで使われているその名前はエラーにはならずそのまま結果が表示されますが、再計算のときに0になってしまいました。
また「範囲」が異なれば同名の名前を定義できますが、セルに代入した名前には「範囲」が表示されないので、どこに所属した名前を使っているのかがわかりません。
そう考えると、「範囲」が異なったとしても同名の名前は定義しないほうがよいです。
しかし、「範囲」がシートになっている名前が付いた数式が入っているセルをコピーすると範囲はペースト先のシートの「範囲」に変わるので同名の名前ができてしまいます。
そう考えると結局「範囲」をシートに指定することもなるべく避けた方がよさそうです。
名前が付いた数式が入っているセルを異なるドキュメントにコピーしたときは名前も一緒にコピーされました。
すでに同名の名前が同じ範囲にあるときはエラーにならずにすでにある名前が使われていました。
相対参照でシート名を指定した数式
数式でシート名を指定したときも少しわかりにくい結果となりました。
Calc(80)数式に名前をつける: その1のSheet1があるドキュメントにSheet2を追加しました。
Sheet2のA4セルを選択して、メニューからシート→名前付き範囲または式→指定。
Sheet2のA4セルを選択した状態でSheet1のA2セルとA3セルを加えた数式にName2という名前を定義しました。
このName2をSheet2のA4セルに貼り付けるとSheet1のA2セルとA3セルの合計が表示されます。
Sheet2をSheet1の左にもってきてもSheet2のName2ではSheet1のセルを参照していました。
相対参照でシートを指定しているので、Sheet2をSheet1の前にもってくるとエラーになると思ったのですが、そうではありませんでした。
再計算もできました。
今度はSheet1、Sheet2に続いてSheet3を追加してSheet3のA4セルを選択して名前をみてみるとSheet2のセルを参照していました。
ところがSheet1、Sheet3、Sheet2と並び変えると今度はSheet1のセルを参照すると思ったのですが、エラーになりました。
「一つ前のシートを参照する」と思ったのですが、そうではないので、シートは絶対参照でのみ指定したほうがよさそうです。
0 件のコメント:
コメントを投稿