• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル名前の管理)

エクセル名前の管理について質問

このQ&Aのポイント
  • エクセルの名前の管理について、Aのシートでデータの入力規則に従い、別シート(B)で作成したリストを指定してプルダウンメニューで選択できるようにしています。しかし、COUNTA関数の範囲を指定する際にエラーが発生してしまいます。また、名前の管理を保存して閉じ、再度変更した箇所を開くと参照範囲が勝手に変わってしまうこともあります。
  • COUNTA関数の範囲指定において、R列のデータではなく、R3からR100までの範囲を指定したい場合、OFFSET関数の引数を変更する必要がありますが、エラーが発生してしまいます。
  • 名前の管理の参照範囲が勝手に変わることや、COUNTA関数の範囲指定においてエラーが発生する理由について、Excel 2007における仕様なのか、バグなのかを知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>=OFFSET(リスト!$R$3,0,0,COUNTA(リスト!R$3:R$100),1) 名前の定義の中身に数式を設定する際は,基本,必ず =OFFSET(リスト!$R$3,0,0,COUNTA(リスト!$R$3:$R$100),1) のように「絶対参照で」作成します。 そうしないと,「名前の定義を登録した瞬間のアクティブセルからの相対参照」で名前定義が作成され,結果して「名前定義を呼び出したセルからの相対参照」で計算されてしまい,固定のR列を計算してくれません。 (そういう動作をするという理解の上で相対参照で名前定義を利用する事も可能は可能ですが,今回ご質問の内容ではそういう使い方ではありません)

kuma33kuma
質問者

お礼

なるほど。 名前の定義の作成をいまいち理解できておりませんでした。 ご指摘どうり、R列を絶対参照することで、問題なく動作致しました。 ありがとうございました。

その他の回答 (1)

noname#203218
noname#203218
回答No.1

2003の入力規則の説明サイトにあった式です。私も2007ですが、問題なく実行出来ました。ご参考まで。 =OFFSET(Sheet2!$A$3,0,0,SUM((LEN(Sheet2!$A$3:$A$100)<>0)*1))

kuma33kuma
質問者

お礼

こちらでも確認しましたが、おっしゃられる方法でも求めている動作を致しました。 調べて頂きありがとうございます。 ただ、回答頂いたのに誠に申し訳ないですが、今回は関数の指摘を頂いた、No2の方をベストアンサーとさせて頂きます。 ありがとうございました。