Excelの表示形式(ユーザー定義)で「@」を使って気付いた事

さて。今回もExcelのお話です。皆様ご存じExcelの表示形式のユーザー定義ですが、使う機会が少ないと、「あれ?どうやるんだっけ?」となる事がしばしば。

 

文字列の「@」

例えば、セルには「新宿」と入力しておいて、表示は「新宿駅」にしたいなーって時に、どういう表示形式にすれば良いんだっけ?となる場合。

少し思い出したり、検索してみると、『そうそう、「@」だった!』と答えに辿り着きます。その通りですね。「新宿」と入力されたセルに「@”駅”」というユーザー定義の表示形式を適用すれば、「新宿駅」と表示されるようになります。

2015-05-21 16-03-17

よしこれでオッケー!

 

ちょっと試しに

そうだ!ついでに「1,000」と入力しているセルを「1,000名」にしたいなー!さっきと同じ感じで、「@”名”」にすれば…

あれ…!?

ここでまずやり方によって色々な結果になります。

 

  1. (1)既に「1,000」と入力されたセルに対して「@”名”」を設定した場合
  2. (2)空白のセルに「@”名”」を設定した後に「1000」と入力した場合
  3. (3)上記2.の後に、桁区切りしたいなーと思って設定した場合

 

まず、1.については、多分上手くいかないと思います(「1,000」→左寄せの「1000」に)。そして2.の場合、とりあえず左寄せで「1000名」とは表示されるはずです。なんとなく成功。でも、「1,000名」にしたい!と3.をやった場合、1.と同じ感じになります。

※もしかしたら異なる挙動をするかもしれませんが、多分同じだと思います

結果的にはいずれも「1,000名」にはなりません。

 

ここからが本題

そうなんです。「@」は先ほどの「新宿」のように文字列じゃないとアカンのです。結論から言いますと「1,000名」の場合は「#」か「0」をご利用ください(これなら計算も出来ます)。でも、今回はちょっと別の視点で先ほどの現象を掘り下げてお話します。

先ほどの現象の原因を考えたり、ちょっと追加操作をしてみたら以下のような感じに。

 

  1. (1)既に入力されている「1,000」が桁区切り設定で「通貨」なので上手くいかない。(強制的に「文字列」になり?1回は左寄せ「1000」になる。でもここからもう一度「@”名”」をやっても上手くいかない)
  2. (2)先に「@”名”」を設定しておくと、「1000」と入力する時に普通は「数値」判定を受けるんだけど、先に設定していた「@”名”」の設定(「文字列」)が適用されて、左寄せ「1000名」に
  3. (3)左寄せ「1000名」は「文字列」。これを「1,000名」にしたいからって桁区切り設定すると、「通貨」に逆戻りなんだけれど、「名」が消えるだけで1回「1000」という「文字列」に。もう1回桁区切りしても反応なし。でもここからもう一度「@”名”」を設定すると、2.に戻る。

 

というわけで、

「@”名”」(ユーザー定義の亜種の文字列)「文字列」(オリジナル)「通貨」等他の形式

これを1ステップしか進めない(または進んだ1ステップ分を戻る事しかできない)のではないかと思います。

つまり、3.のユーザー定義の亜種文字列から桁区切り(通貨)しようとすると、右に進もうとするんだけれど、1回しか進めないので、オリジナルの文字列に。これは桁区切りだけではなく「%」(パーセンテージ)でも同様です。そして、ここからさらにもう1回他の設定にしようとしても、いう事を聞いてくれません。ただ、元のユーザー定義の亜種文字列には戻る事が出来ます。

これは1.の場合も同様で、元々「通貨」になっているセルをユーザー定義の亜種文字列にしようとしても、「文字列」止まり。初期地点から1ステップ進むか、進んだ分戻るかしか出来ないので、永遠に「@”名”」まではたどり着きません。ただ、元の「通貨」などの通常の形式には戻れる為、もう一度桁区切りをすれば「1,000」に戻りますし、「%」にも出来ます。

 

これはおそらく、『本来「値」である数字』を『ユーザー定義で新たに作成した亜種の文字列(デフォルトの「@」だけのオリジナルの「文字列」ではない)』にする(またはしようとする)事で起こる現象かと思います。

 

エクセルが大好きでお時間のある方はぜひやってみてください。そして、違う挙動や解決方法を発見したら、ぜひこのブログにコメントをください!謝罪して訂正いたします!

 

次回はもっとお役立ち情報を書きますね!

« »

コメントは受け付けていません。