• ベストアンサー

エクセル 数式の文字も含めた数え方

数式が入力されたセルの文字数、たとえば=IF(A1=11,22,999)といった式をA2に記述した場合のA2の使用している文字数をカウントしたいのです。仮にA1が11だった場合A2には22が参照されてLEN関数でA2を見にいったとしても文字数2が返されてしまいます。 希望としては=から)までの使用しているすべての文字をカウントしたいのですが何かいい方法はないでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 一体、何のためにするのか良く分かりませんし、それは、一旦、数式を文字に戻してから、その上で、文字数をカウントしたほうが早いとは思います。 しかし、例えば、VBAのユーザー定義関数以外にも、マクロ関数で取れます。 A1 にあるとしたら、B1 にセルポインタを置いて、 挿入→名前→定義 名前は、 [Msiki] (任意) 一応、1番さんのものとバッティングを避けて、Mを頭につけました。 参照範囲 [=GET.CELL(41,!A1)] そして、 B1 セルに =LEN(Msiki) と入れれば、文字数はカウントできます。 ただし、マクロ関数は、Excel2003のセキュリティが「高」以上では、働きません。 こうしたマクロ関数を使用することに、批判的な方もあるかとは思いますが、あえて、ここで書かせていただきました。出来るなら、VBAでユーザー定義関数を作ったほうがよいかとは思います。ただ、VBAは、汎用性を考えると、少し、いろいろな設定が必要になるとは思います。

ab-chan
質問者

お礼

ご丁寧に教えていただきありがとうございました。 利用目的は長い関数式を組んでいる際に文字数が長すぎるとしてエラーがかかるため文字数を調べられたらなあと思い質問させていただきました。

その他の回答 (2)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

残念ですが標準の関数だけでは出来ないと思います。 #1の方のようにユーザー定義関数(VBA)を利用するか 長さを求める数式の最初の=の前に'(Shift+7)を付けるしかありません。

ab-chan
質問者

お礼

ご回答いただきありがとうございました

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

VBAですと、Formula関数で数式を取得できますので、 Function siki(rng as Range) as String   siki=rng.Formula End Function のモジュールで文字列を取得し、シートの方で =LEN(siki(A2)) とか。

ab-chan
質問者

お礼

早速の回答ありがとうございました。マクロの知識が疎いものですので参考回答として頂戴いたします。 引き続き違うやり方での回答を待ってみたいと思います。

関連するQ&A

専門家に質問してみよう