社内SEの徒然なる日記

Excelの@(アットマーク)の動作を検証してみた

■ @って?

Excelでセルに文字を打つ時に、先頭に@(アットマーク)を付けると関数の一覧が表示されたり、エラーになったりします。
Excel20 10で計算式@検証1

Excel20 10で計算式@検証2

どうやら、=(イコール)と同様に、計算式が使えるようです。

ふむ、しかし@(アットマーク)で関数の一覧が出るってどういうことだろ?

■ @で関数を打ってみた

ためしに、エラーが発生しないように適当な関数を作ってみます。
Excel20 10で計算式@検証3

完成後の数式を確認すると、@が=に変わっています。
Excel20 10で計算式@検証4

■ =との違い

今度は、関数以外の計算式を入れてみます。

セルA1とA2を足す計算式を使うと、エラーが発生しました。
Excel20 10で計算式@検証5

当然ですが、=に変えると問題なく動作します。
Excel20 10で計算式@検証6

ふむ、@を使えるのは関数だけのようですね。

■ @を使いたい

今度は、先頭に@を付けた文字列を打ってみます。

単純に打つと、関数扱いされるので文字列として扱われるように先頭に'(シングルクォート)を付けます。
Excel20 10で計算式@検証7

先頭が'(シングルクォート)で始まる入力は、Excelでは文字列として認識されます。
あくまでも、内部的に認識させるだけなので、表示(印刷)に'(シングルクォート)は表示されません。

これで十分だと思うのですが、'(シングルクォート)が気に入らなければ、セルの書式を文字列に変えてもOKです。
Excel20 10で計算式@検証8

メモ帳などに文字を入力して、そこからコピー&ペーストで貼り付けると、書式を変えずに入力できます。
Excel20 10で計算式@検証9

書式が「標準」のままで、入力出来ました。

ただ、編集しようとするとエラーになるし、トラブルの原因になりかねないので、あまりお勧めできません。

■ Lotus 1-2-3

いろいろ調べたところ、Lotus 1-2-3(ロータス ワン・ツー・スリー)っていう表計算ソフトが流行した事があって、こいつは関数を入力するのに=(イコール)ではなく、@(アットマーク)を使っていたようです。

Lotus 1-2-3のユーザーがExcelに切り替えやすいように、互換機能として用意したようです。同じような話で、日付の差分を表示するDATEDIFって関数も同じような理由で、関数ウィザードに表示されなかったりします。

■ 後書き

今回のテスト環境は、WindowsXP SP3、Excel2010です。
まぁ、Lotus 1-2-3との互換ってことは、下位のバージョンでも同じように動作すると思われます。

今回、わざわざ@について調べてみたのは、まったくの別件で調査依頼があって、その障害原因がこの@だったからです。その件については、次回の記事で紹介します。
スポンサードリンク

PageTop

コメント


管理者にだけ表示を許可する