いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(Gスプレッドシート)式の長さ(文字数)を求める

 Googleスプレッドシートで、セルに入力されている式の文字数を求める方法についてです。

  • 「=LEN(FORMULATEXT(参照先))」という式で、参照先のセルに入力されている式の文字数が求まります。
  • 式でない場合(「=」で始まらない場合)はエラーが返ります。

手順

f:id:accs2014:20200704133527p:plain:right:w500

 B3:B6の4つのセルに、それぞれ簡単な式と値を入力します。

 

f:id:accs2014:20200704133532p:plain:right:w500

 結果はこうなります。

 

f:id:accs2014:20200704133536p:plain:right:w500

 ここでB3セルに入力した式の長さを求めるため、C3セルに次のように入力します。

=LEN(FORMULATEXT(B3))

 単純に「=LEN(B3)」ですと値の長さ(1)が返ってきますので、まず「FORMULATEXT(B3)」で式の文字列を取得し、LEN関数でその長さを求めます。
 

f:id:accs2014:20200704133541p:plain:right:w500

 結果はこうなります。「=1+2」という式の長さである「4」が得られました。

 

f:id:accs2014:20200704133546p:plain:right:w500

 式を下方にフィルコピーした結果です。
 FORMULATEXT関数は「=」で始まってさえいればその内容を返し、そうでなければエラーを返しますので、3番目の結果のように「=」で始まらないセルを参照した場合はエラーが返ります。また、最後の結果のように、関数や演算子がなくとも「=」で始まってさえいれば数値が返されます。

 なお、参照先の内容が式でない場合にエラーではなく値の長さを返すようにしたい、という場合は次のような式が考えらえれます(B3セルを対象とする例)。

=IF(ISFORMULA(B3),LEN(FORMULATEXT(B3)),LEN(B3))