• ベストアンサー

セル範囲に名前を定義する

セル範囲に名前を定義して、計算式の中で使いたいのですが、 例えば、A列全体にAという名前、B列全体にBという名前を付けて、 =Counta(A)と記述すれば、A列にあるデータの個数が出てきます。 =Counta(B)と記述すれば、B列にあるデータの個数が出てきます。 一つの計算式にCounta関数が10個以上あって、AとBを書き換えるのが面倒なのですが、 特定のセルC1にAと入力したらCounta(A)、Bと入力したらCounta(B)になるようには出来ないでしょうか? =Count(C1)と入力してもダメでした。

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

  • ベストアンサー
回答No.2

たとえばセルC1に A:A とか B:Bとか アドレスを入力したら関数式の中でアドレスとして認識してほしい、ということですよね? INDIRECT関数というのがあります。 =COUNTA(INDIRECT(C1)) として、 C1セルに 「A:A」と入力すれば、 =COUNTA(A:A)と同じ意味になります。 常に列を指定するので、列名だけを入力したい、という場合であれば、ちょっと応用して、 C1セルに「A」を入力して、 =COUNTA(INDRECT(C1 & ":" & C1)) とすれば、 =COUNTA(A:A)と同じ意味になります。

その他の回答 (2)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

名前定義には「A」の様な1文字や、「A1」の様にセルアドレスと認識できるような名前は使用できません。 例えば、A列に「ColA」、B列に「ColB」の様な名前定義を行い、適当なセルに=COUNTA(INDIRECT(C1)) と、記述すれば、C1セルに「ColA」「ColB」と入力すると、参照範囲が変わります。

  • emaxemax
  • ベストアンサー率35% (44/124)
回答No.1

そういうときにはINDIRECT関数です。 =COUNTA(INDIRECT(C1))

miya2004
質問者

お礼

そういう時に使うのですね。 便利とは聞いていたけど、初めて使います。

関連するQ&A