Excelのユーザー定義とは?数値の表記方法や通貨・会計の違い、0と#の違いについて

このQ&Aのポイント
  • Excelのユーザー定義とは、ユーザーが任意の表記方法を設定できる機能です。具体的には、月や日の表記方法、年の表記形式など、自動で単位や形式が付加される設定が可能です。
  • 「数値」「通貨」「会計」の違いについては、実際にはすべて数値として扱われますが、表示や計算の際に異なるフォーマットが適用されます。数値はそのまま表示されますが、通貨は通貨記号が付加されますし、会計は金額の前にカッコが付きます。
  • 「0」と「#」の違いについては、桁数の指定方法の違いです。#は指定された桁数しか表示されず、余分な0も表示されません。一方、0は指定したゼロの桁数が常に表示されます。
回答を見る
  • ベストアンサー

【Excel】以下のユーザー定義を教えてください

年について任意の数値入力は「###"年"」と設定しますが、以下のものに対する自動で単位表記の設定、また不明点を教えてください。 (1)月→「01月」というよう形式で、任意の数値入力で「月」が自動表記 (2)日→「01日」というような形式で、任意の数値入力で「日」が自動表記 (3)任意の数値入力「平成または令和」が冒頭に、「年」が語尾につく。 (4)「数値」「通貨」「会計」の違いを教えてください。実際、これらはすべて「数値」扱いなのでしょうか? 「通貨」「会計」でも数字と同じように扱われ、計算ができるのならこんなにそろえなくてもよいと思いますが…。何か違いはあるのでしょうか? たとえば家計簿で使うものなら、どれが適しているのでしょう? (5)「0」と「#」の違いについてわかりません。 https://support.microsoft.com/ja-jp/help/883199 ここでの解説では「#」については 「1桁の数字を示します。# の数だけ桁数が指定され、その有効桁数しか表示されません。また、余分な 0 も表示されません。」 とありますが、実際「####」と4桁に設定した場合、「111111111」と入力しても4桁にはなりません。4桁以上入力したら自動で4桁に修正してくれるものではないのでしょうか? 同様「0」についても 「1桁の数字を示すが、指定したゼロの桁数だけ常にゼロが表示されます。」 とのことですが、常にゼロ表示のはずがたとえば「0000」の設定で「1111」と入力した場合そのまま「1111」と表示されます。 これも同じように整数を入力するとゼロに軌道修正されるのかと思うのですが違うのでしょうか?としたら整数と0を分ける意味があるのですか? なぜでしょう?

  • frau
  • お礼率54% (2370/4367)

質問者が選んだベストアンサー

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6639/9406)
回答No.1

>(5)「0」と「#」の違いについてわかりません。 まずこちらの話から。 どちらも、指定した桁数での表示になるわけですが、「0」指定では、その桁に満たない場合に0が表示されるのに対し、「#」指定では省略されます。 また、指定桁数を超えた場合、どちらでも有効な数字は全て表示されます。 「000」という書式設定の場合、 1→001 10→010 100→100 1000→1000 「###」という書式設定の場合、 1→1 10→10 100→100 1000→1000 ※どうせ不要な桁は省略されてしまうのですから、書式設定「###」は「#」と変わりません。 これが変わってくるのは、小数点の数値を表示するときです。 「0.00」という書式設定の場合、 1→1.00 0.1→0.10 0.01→0.01 0.001→0.00 「#.##」という書式設定の場合、 1→1. 0.1→ .1 0.01→ .01 0.001→ . ※小数点のみ 「指定した桁数までの表示」「ゼロ値になる場合の省略」は、このように違ってくるわけです。 ---- 書式設定で「0」または「#」と指定したところが、セルに入っている数値に置換されて表示されます。 なので、 (1)→「00"月」または「##"月"」(または「#"月"」) 「00"月」では、1や2という数値を入れた場合、「01月」「02月」という表示になります。 「##"月」では、1や2という数値を入れた場合、「1月」「2月」という表示になります。なので、「#"月」と指定しても同値になります。 (2)は(1)と"月"と"日"が違うだけの話なので省略。 (3)ですが、数値だけでは平成なのか令和なのか分かりません。 「"平成"0"年"」「"令和"0"年"」 という書式で、数値→年表示できますが、どちらを表示するかはあなたが書式設定して決めるしかありません。 自動判別するには、「2019/4/1」あるいは「2019/5/1」といった、「日付データ」が必要です。 「日付データ」が入っているセルに対して、「[$-ja-JP]ggge"年"m"月"d"日";@ 」という書式を設定すると、 「2019/4/1」→ 平成31年4月1日 「2019/5/1」→ 令和1年5月1日 と言うように自動的に和暦をつけて表示してくれます。 ちなみにその複雑な書式設定は、私が考えたものではありません。 Excelの書式設定で和暦表示を選んだ後に、「ユーザー定義」を選択すると、テンプレートの書式設定がどのようなものか表示できますし、そこから変更することも可能になります。 例えば上記の書式設定で、「[$-ja-JP]ggge"年"mm"月"dd"日";@」に変更すれば、 「2019/4/1」→ 平成31年04月01日 「2019/5/1」→ 令和1年05月01日 このように、月・日を2桁表示固定にすることもできます。 ということで質問(4)について。 「数値」「通貨」「会計」は、どれも数値の表示形式を変えるための書式設定で間違いありません。 ただ、その分野で良く使われる表示を、ウイザード形式で設定できるように、分かれています。 どのウイザードで設定した書式であっても、「ユーザー定義」を選択すると、どのような書式設定文字列によって実現されているか確認できます。

frau
質問者

補足

お詳しい回答で助かります! (5)についてはなるほど、指定した桁数に対し、入力した数値が満たない場合は指定した桁数にするため「0」が入る、ということですね。 単に「###」と設定しても「標準」と変わらないが、文字列作成のために必要になる、ということですね。 価格表示のときには「#,###」を使うことにしますが、 「#,###」と「#,##0」 での違いなのですが、たとえば双方に「1,000」と入れます。 結果 「#,###」→「1,000」 「#,##0」→「1,000」 となる。 しかし双方に「0」と入れると 「#,###」→「0」 「#,##0」→(消える) 後者は消えるんですね。 つまり「#」は小数点を入れるためのものだと思いました(違ってたり他の使い道があれば教えてください)。 価格表記については「#,###"円"」と設定しましたが、記号の意味を覚えると組み合わせるのが楽しくなりますね。覚えるまでには時間がかかりますが(笑) ところでもうひとつだけ教えてください。 コピーの際、ユーザー定義は「書式のコピー」となるのでしょうか?

その他の回答 (1)

  • asciiz
  • ベストアンサー率70% (6639/9406)
回答No.2

>後者は消えるんですね。 あれ、逆だと思いますが…(「0」指定では必ず「0」が見える) まあ、都合の良い方で使ってください。 >コピーの際、ユーザー定義は「書式のコピー」となるのでしょうか? 「書式のコピー」では、文字色・サイズ・セル背景色・罫線のほか、この「書式設定文字列」も、コピーされます。 なので、書式をそろえたい列とかあれば、一番上のセルで書式設定文字列をいろいろ試して、これだというものをコピー→列全体(または希望範囲)を選択して書式のみ貼り付け、とすることで書式をそろえることができます。

frau
質問者

お礼

訂正です。 「#,###」のほうが消える、です。 詳しいご回答をありがとうございました。

関連するQ&A

  • 【Excel】数値、文字列に適したユーザー定義

    自動で文字列の語尾に文字をつけるのが目的です。 ユーザー定義ではいろいろな形式が作れますが、以下のような形の場合、条件ごと、もっとも適切な形を教えてください。 (1)数値の後ろに「円」 ・桁数は5桁 ・この書式同士で計算できるようにしたい (2)数値の後ろに「齢」 (3)数値の後ろに「kg」 たとえば何に対しても「G/標準」を使う人がいますが、数値に適した、または文字列に適したというように、語尾に自動で何かをつけるにしてもそれに見合う形式があると思います。 また「#,##0"円"」という形についていまいちわかりません。 この設定にして 「1000」と入力すると当然「1,000円」となります。 「1001」と入力すると当然「1,001円」となります。 「1」または「1111」と入力すると当然「1円」「1111円」となります。 しかし「0」または「0000」と入力するといずれも「0円」となります。 正数を入れた場合、入力した数(桁数)どおり反映します。 つまり、「#,##0"円"」の「0」は、0を入力したとき(桁数に関係なく)入れたとき絶対0になります。 試しに「#,#0#"円"」と設定したら「01円」となりました。 「0」を設定したら、「0」のときだけ「0」になるのでしょうか? 「#」と「0」の違いは何でしょうか?

  • 【Excel】様々なユーザー定義

    Excel2007利用です。 「セルの書式設定」>「表示形式」>「ユーザー定義」で、以下のように数値を入力するとその単位も同時に自動で表記するための式を教えてください。 ・「100」と入力➡自動で「No.100」と表示 ・「1」と入力➡自動で「1回」と表示 ・「才」と入力➡自動で「1才」と表示 ・「kg」と入力➡自動で「1kg」と表示

  • 【Excel】G/標準"kg"での小数点以下の表示

    任意で数値入力して自動でkgと表示されるセルの書式設定は G/標準"kg" ですが、たとえば小数点以下の数字がゼロになると「3kg」というように1ケタのみの表示となりますが、これを3.0のように小数点以下も表記させる方法を教えてください。

  • 【Excel】「円」表示でマイナスには赤字にする

    たとえば数字を打つと「円」と自動表示させるには、「セルの書式設定」の数値、通貨、会計にはありませんので、「ユーザー設定」で#,##0"円"の式を設定します。 しかしこれは数値がマイナスの場合に赤字に変化しません。一方で数値、通貨はそのような表記が選択できますが、「円」がありません。 自動で「円」表示となり、かつ、マイナスの数値の場合には赤字になる方法がありましたら教えてください。ちなみにバージョンは2007です。

  • 桁数を求めるプログラム。

    入力した数字の桁数を表示させるというプログラムを考えています。 例) 135 この数字の桁数は3桁です。 などと表示させたいと思っています。 それで、私は入力した数値を10で割っていって入力した数値aがa<=0になったらループを終了して 何回ループしたかのカウンタで桁数を表示させようかと考えました。 たとえば135→13.5→1.35→0.135で整数部分が0となるのでループを打ち切って 3回繰り返したので3桁と表示させたいと思いました。 それでプログラムを考えてみたのですが、どうにもうまくいきいません。 どのように修正したら桁数が表示できるようになるでしょうか? #include <stdio.h> main() { double a=0; int n=1; scanf("%d",&a); while(1) { a=a/10.0; if(a<=0){ break; } n++; } printf("その数は%d桁です。\n",n); }

  • 【Excel】自動で小数点以下2桁が表示される

    Excel2007にアップグレードしてから、数字を「数値」表記にすると 勝手に小数点以下2桁まで表示されてしまい、大量のデータを扱う際に 桁を混乱しそうで、困っています。 表記の変更は、セルオプションの設定からではなく、 「Ctrl +Shift + 1」の ショートカットで数値表記に切り替えています。 セルオプションでいちいち変えるとしたら、当然設定できるので問題ないのです。 ただ、ショートカットで実行すると小数点以下2桁まで自動で表示すると言う事は なんらかのデフォルト設定でそう設定されているのではないかと思っています。 が、どこにそのあたりの設定があるのかも、わかりません。 (特に2007のリボンになってから、何がどこにあるかは全て分からなくなってしまいました) どなたか、これらの設定変更をご存じの方いらっしゃいましたら、教えて頂けませんか? 宜しくお願い致します

  • ユーザー定義でmmddを00/00にしたとき

    今、あるセルに0420と入力すると4/20と日付になるようにセルの書式設定をしました。 ##"/"##です。 こうすると04の0は非表示になるのですが、例えば 0301と入力した場合3/01という表示になってしまいます。 無効数字を表示させたくない場合は#を使えばいいとネットで調べ、月の方はそれが適応されているのですが、なぜ、日の方は適応されないのでしょうか。 また、どのような設定にすれば一桁の日を一桁で表示できますか?

  • 【Excel】入力した数値に対する表示形式について

    仮名や漢字、アルファベットなどの「文字」。また「数字」や「記号」と表示形式との関係を教えてください。 以下、具体的な数値を入力する必要がある日付、時刻を除いた表示形式すべてを対象とした結果を述べる。指数についてはよくわからないため除外。 (1)入力した数値は入力どおり、設定した表示形式も設定どおりの場合 例)冒頭に0のない数字「123」を入力(表示形式「標準」の場合) ➡「123」と表示された (2)入力した数値も設定した表示形式も入力、設定どおりではない場合 例)冒頭に0のある数字「0123」を入力(表示形式「分数」の場合) ➡「123」と表示された (3)入力した数値が入力どおりだが、表示形式が設定どおりではない場合 例)冒頭に0のない数字「123」を入力(表示形式「分数」の場合) ➡「123」と表示された (4)入力した数値が入力どおりではないが、表示形式は設定どおりの場合 例)冒頭に0のない数字「123」を入力(表示形式「数値」の場合) ➡「123」と表示された 他の組み合わせ結果も、入力数値と表示形式が不規則にでます。 たとえば分数を文字列で設定して「1/2」と入力すると分数になるのに、「標準」だと「1月2日」とでます。 同様、「標準」に対し「1/2」や「1-2」と入力すると双方とも「1月2日」となりますがこれはなぜでしょうか? この場合「標準」「通貨」「会計」「パーセンテージ」で日付表示となります(「標準」は分かる気がしますが「通貨」「会計」「パーセンテージ」までもが日付扱いになります)。 特に(入力した数値が違う結果になるのは)冒頭に0がつく数字の場合は、他のすべての表示形式に対しても同様の結果となり違いが顕著です。 冒頭に0を置いた数字を示す場合を例外的に、原則は標準にしたほうがよいそうですが、上で述べたように「標準」でも「1/2」と分数を入力したいのに「1月2日」というように日付がでてしまいます。 (1)なぜこのようになるのでしょうか? (2)添付した画像は表示形式と入力した文字種との対応結果を示した表ですがこのように規則性がないためそれぞれの文字種に対しどの形式が適しているのかわかりません。 文字と形式を使い分ける考え方や法則性などがあれば教えてください。 (3)「指数」「その他」はどのような文字種や目的に使えばよいのでしょうか?

  • 【Excel】「書式設定」の「ユーザー定義」

    Excel2007使用です。 「書式設定」についていくつかわからないことがあります。 (1)「書式設定」の「ユーザー定義」で元号を平成にしたい。 例えば既に入力した2010/1/1という日付を平成に自動的に一括変換したい場合。 (2)任意のテキストを入力後に登録したテキストが自動的につく操作は? 例えば「100」と入力した後に「g」と自動的に入力されようにする。 (3)任意のテキスト を入力した後に自動的にカッコ「」で括られるようにするには? 宜しくお願いします。

  • ユーザ定義のセル書式の作成について質問

    質問1:♯の記号は有効桁数を表示して、余分な0を表示しないもののようですが、 1234.5の入力データーについて、ユーザ定義の「♯,♯♯♯.♯♯」を適応すると、1,234.5になり、有効桁数6ケタにもかかわらず、5桁しか表示されません。何故ですか? 質問2:♯の記号の数の分だけが有効桁数となりますが、その桁数以上のデータが入力された場合、その♯の記号の分だけしか表示されず、それ以上の桁数は表示されないのでしょうか? 質問2:「,」について、♯,♯♯♯,,のユーザ定義を1000000のデータに適応すると、1になりますが、この時のユーザ定義の文尾の「,,」は数値を1000で除算した上で少数部を四捨五入するという意味だと思うのですが、そもそも上記のユーザ定義では少数点の位置が指定されてないのに、何故四捨五入され1になるのでしょうか? 質問3:♯.0♯のユーザ定義を、15のデータに適応すると、15.0になるようですが、この結果のように0が入力されると、その0は入力されてるデータの一番後ろに来るんですか?

専門家に質問してみよう