EXCEL、スプレッドシートを使用していて、関数内にダブルクオーテーションマークを表示をさせる場合、1工夫が必要になります。
ダブルクオーテーションマークは関数内だとエラーになる?
関数内に文字列を入れる際、「”」ダブルクオーテーションで挟んだ関数を使用します。
1 |
="あいうえお" |
このように「”」で「あいうえお」を挟むと、結果は「あいうえお」となります。
しかしながら・・・
1 |
=""" |
このように「”」ダブルクオーテーションを文字列として表示させたい場合、「”」で「”」を挟むと最後の「”」を計算できずにエラーとなってしまいます。
CHAR(34)で表示させてみよう
CHAR関数は、テキスト文字列内で特定の文字を表現するために使用されるスプレッドシート、エクセル等で使用される関数の一つです。CHAR関数は通常、数値を引数として受け取り、その数値に対応する文字を返します。具体的には、ASCIIコードまたはUnicodeコードで指定された文字を生成します。
ダブルクオーテーションマークは34になりますので、
1 |
=CHAR(34) |
と、数式で入れてみましょう。すると「”」と結果が生まれます。
もし
1 |
=CHAR(34)&"あいうえお"&CHAR(34) |
とした場合は結果が「あいうえお」と表示されます。
CHAR関数を使わなくてもできる
CHAR関数を使わなくても実は出来ます。
1 |
="""" |
この式でも「”」ダブルクオーテーションマークを文字列として表示させることが可能です。
=””””という式が「”」を返す理由は、ダブルクォーテーション(”)をエスケープするために使用されているからです。スプレッドシート、エクセルの数式で文字列内にダブルクォーテーションを含める場合、通常はダブルクォーテーションを2つ連続して記述することでエスケープします。このように記述することで、数式パーサーは1つのダブルクォーテーションとして解釈します。
具体的に説明すると、次のようになります:
- 最初の「”」(ダブルクォーテーション)は、文字列の開始を示すものです。
- 次の「=”」は、等号(=)と1つのダブルクォーテーションを表します。この部分が文字列内のダブルクォーテーションをエスケープしています。
- 最後の「”」は、文字列の終了を示すものです。
したがって、この式全体が評価されると、セルには「”」(ダブルクォーテーション)が表示されます。
このようにして、数式内で文字列に特殊な文字(例: “、’、=など)を含めることができます。
さいごに
スプシで関数内の「”」ダブルクオーテーションマークをCHAR(34)や、「””””」で表示させることができ、エクセルでも同様に反応します。
個人的には、「=””””」とすると、関数を編集中に間違えて1つ消してしまったりするとエラーになってしまったり、自動的に修正され、関数自体がおかしくなってしまうことも有り、私はCHAR(34)を採用して関数を作るようにしています。