先回の「Excel 「様」や「円」を右端に揃える」記事に少し関わる話題です。
金額を表わすとき、[ホーム]-[数値]の「数値の書式」プルダウンメニューで「通貨」を選択することがあると思います。(下図)

 

例えば「1234」という数値が入力されたセルに対して「通貨」書式を設定すると、数値の前に「\」記号が付き、桁区切りの「,」が付いて表示されます。(下図)

 

このときの書式をユーザー定義書式で表わすと「\#,##0_);[赤](\#,##0)」となっています。
話を簡単にするため、その書式の前半部分、つまり値が正であるときの書式「\#,##0_)」について見てみます。
確かに数値の前に「\」記号が含まれています。

この「\」記号を全角の「¥」で表示したい場合はどうしましょう。
ユーザー定義書式で「¥#,##0_)」としても「"¥"#,##0_)」としてみても「\#,##0_)」にもどってしまい、全角「¥」になりません。

ユーザー定義書式の場合、半角の「!」は続く 1文字をそのまま表示する働きをします。
「!¥#,##0_)」と書式設定すると、数値の前に全角の「¥」が表記されます。(下図)

 

「!"¥"#,##0_)」ではエラーとなります。
「!」の直後の 1文字「"」をそのまま表示しようとしますが、「¥」に続く「"」単独では解釈できないからです。

同様な例として「@」があります。
商品などの単価を表示したいときによく使われます。
この場合、「@#,##0_)」とするとエラーになります。
表示形式において「@」は入力された文字列を指します。

「"@"#,##0_)」または「"@"#,##0_)」というようにすれば半角でも全角でも「@」を先頭に表示することができます。


 

このときも「!@#,##0_)」(全角@)または「!@#,##0_)」(半角@)と入力しても表示してくれます。

要は、ユーザー定義書式として使われる記号や文字をそのまま表示したいときは半角「!」を使えば、その直後の 1文字はそのまま表示されるということです。