いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Excel)文字列をダブルクォーテーション(")と結合する

 Excelで、セル内にダブルクォーテーション(")を入れる場合は普通に入力(Shift+2)すれば済みますが、式を使ってダブルクォーテーションをつける(囲む)ときにうまくいかない場合があります。その対策についてです。

  • 「" "」の内側にダブルクォーテーションを記す場合、2つ並べれば1つのダブルクォーテーションとみなされます。
  • 単にCHAR関数を使う方法もあります。

失敗例

 セル内にダブルクォーテーション(")を入れる場合は普通に入力(Shift+2)すればそのまま表示されます。



 しかし式を使ってダブルクォーテーションを結合しようとすると思いどおりにいかないことがあります。
 ここではB3セルの文字列をダブルクォーテーションで囲んだ結果を得ようとしていますが、おかしな結果となっています。

 C3セル(失敗)

="""&B3&"""

 例えばカッコで囲む場合は「="("&B3&")"」で済むので、カッコを「"」に置き換えて「="""&B3&"""」とすればよいように思われますが、これではうまくいきません。

「" "」の内側に「"」を2つ並べる方法

 次の画像のC3セルのは上の例(失敗例)に似ていますが、こちらではB3セルの文字列をダブルクォーテーションで囲んだ結果が得られています。 

 C3セル

=""""&B3&""""

 「"」を3つではなく4つ並べているのが違いです。このように「" "」内にダブルクォーテーションを表現する場合は2つ並べてはじめて1つとみなされます。場合によっては見づらく、わかりにくくなりますが次の例のようにCHAR関数を使うのが1つの対策です。

CHAR(34)を使う方法

 次の画像では直接「"」を入力することなく文字列をダブルクォーテーションで囲んでいます。

 C3セル

=CHAR(34)&B3&CHAR(34)

 これまでの例では「『"』を『" "』で囲もうとする」というのが面倒の原因になっています。
 そこでここではCHAR関数を使ってダブルクォーテーションを「CHAR(34)」で表しています。これなら式は長くなりますが見づらい「"」の数を数える必要もありません。

左右(開きと閉じ)のあるダブルクォーテーションの場合

 プログラミング等で用いるダブルクォーテーションには左右の区別がありませんが、一般の文章には左右の区別があるダブルクォーテーションも用いられます(具体的にはUnicodeの「U+201C (十進では8220)」及び「U+201D (8221)」を指します)。
 次の画像では式を使ってこれらの記号で文字列を囲んでいます。細かいですが左のものは下の方に太い部分があり、右のものは上の方に太い部分があるのがわかると思います。

 C3セル

=CHAR(8520)&B3&CHAR(8521)

 これらのダブルクォーテーションはそれぞれ「CHAR(8520)」と「CHAR(8521)」で表すことができます。
 直接入力(" "の内側に入れる)することもできそうですが、特に右側のものを入力したときに警告が出て(左右のないものに)自動修正されたりするといった問題が起こります。よってはじめからCHAR関数を使った方が無難です。