Excel金額入力の頭に0を表示させない方法はある?

このQ&Aのポイント
  • エクセルの金額入力で、3桁・2桁・1桁の場合に頭に0が表示されない方法を教えてください。
  • エクセルの金額入力では、A1セルに金額を入力すると、A2セルに千の位、B2セルに百の位、C2セルに十の位、D2セルに一の位が入力されるように設定されています。
  • しかし、金額が3桁・2桁・1桁の場合、A1に入力すると頭に0が表示されてしまいます。この表示を防ぐ方法を教えてください。
回答を見る
  • ベストアンサー

エクセル金額の入力で

A1に金額が入力されます。(範囲は1円~9,999円です) A2に千の位、B2に百の位、C2に十の位、D2に一の位が入力さるようになっています。 例えばA1に357円と入力すると A2は0、B2は3、C2は5、D2は7、となります。 セルE2には"円"と文字を入力しているのですが、A1に357円と入力していると A2、B2、C2、D2、E2の並んだセルは 0357円 となりますよね。 A1が4桁でしたら良いのですが、3桁・2桁・1桁だと頭に0がついてしまいます。 3桁・2桁・1桁のときは頭に0が表示されないようにする方法はあるでしょうか。 わかりづらくてすいませんがよろしくお願い致します。

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

  • ベストアンサー
回答No.10

>例えばA1に357円と入力すると・・・ セルA1に入力するのは「357」の数字だけにして「円」はセルの書式設定のユーザー定義で「#,### 円」と設定しておきます お使いのExcelバージョンが2007以上の場合はセルB1に次の式を =IFERROR(MID($A1,LEN($A5)+COLUMN()-5,1)*1,"") セルE1まで式をコピー、下方向へすきなだけコピーします Excel2003以下を使用の場合は =IF(ISERROR(MID($A1,LEN($A1)+COLUMN()-5,1))*1,"",(MID($A1,LEN($A1)+COLUMN()-5,1))*1) の式を入れてセルE1まで式をコピー、下方向へすきなだけ数式をコピーします もし百万の位まで対処させたいのなら・・・ =IFERROR(MID($A1,LEN($A1)+COLUMN()-8,1)*1,"") の式を使い、E1まで式をコピー、下方向すきなだけコピーします

jhggjkhkh
質問者

お礼

ありがとうございました!うまく機能するようになりました。 助かりました。

その他の回答 (10)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.11

No/6です。 前回は >A2に千の位、B2に百の位、C2に十の位、D2に一の位が入力さるようになっています ↑ を尊重して、入力されている数式はそのまま! という前提で回答しましたが、 数式そのものを変えても良いのであれば A2セルに =IF(LEN($A$1)<=4-COLUMN(A1),"",MOD(INT($A$1/(10^(4-COLUMN(A1)))),10)) という数式を入れD2セルまでオートフィルでコピーしてみてください。 ※ 本来であれば、表示形式で操作するよりこちらの方をオススメします。m(_ _)m

jhggjkhkh
質問者

お礼

回答ありがとうございました。今後参考にさせていただきますね。

回答No.9

どうも質問者も回答者も勘違いされているようですね。 >3桁・2桁・1桁のときは頭に0が表示されないようにする方法はあるでしょうか。 頭に0・・・もともとA1以外は1桁なのに??? 要はA2、B2、C2、D2でどれかの値が0の場合、0は表示したくないということですよね。 「例えばA1に357円と入力すると A2は0、B2は3、C2は5、D2は7、となります。 この場合にA2に0が表示されないようにする方法はあるでしょうか。」 とか 「A2、B2、C2、D2に0が表示されないようにする方法はあるでしょうか。」 と質問してみて欲しかったです。 A2、B2、C2、D2を選択して書式をユーザ定義にして#にするでいいだけです。

jhggjkhkh
質問者

お礼

意味わからんけどわざわざサンキューな。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.8

 何故か誰もがA1に入力した数値を文字列として扱う方法ばかり回答されている様ですので、一例として、数値のままで扱う方法を回答させて頂きます。  まず、A2セルに次の数式を入力して下さい。 =IF(ISNUMBER($A$1),IF($A$1+($A$1=0)<10^(COLUMNS(A:$D)-1),"",MOD(INT($A$1/10^(COLUMNS(A:$D)-1)),10)))  そして、A2セルをコピーして、B2~D2の範囲に貼り付けて下さい。  以上です。

jhggjkhkh
質問者

お礼

回答ありがとうございました。今後参考にさせていただきますね

回答No.7

また、スベッテもうたわい! $E$1はミスプリ!! 正しくは、LEN($A$1) 例えは、A2~D2に各桁の値を計算するには、そして0サプレスもやっちゃうには、 A2: =IF(LEN($A$1)<MAX(LEN($A$1),4),"",INT(MOD($A$1,10000)/1000)) B2: =IF(LEN($A$1)<MAX(LEN($A$1),3),"",INT(MOD($A$1,1000)/100)) C2: =IF(LEN($A$1)<MAX(LEN($A$1),2),"",INT(MOD($A$1,100)/10)) D2: =IF($A$1="","",MOD($A$1,10)) ここは、書式:ユーザ定義:0"円"、がええかも~

jhggjkhkh
質問者

お礼

回答ありがとうございました。各桁の計算、今後参考にさせていただきますね

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

こんばんは! >A2に千の位、B2に百の位、C2に十の位、D2に一の位が入力さるようになっています とありますので、関数等の質問ではなく単に表示だけの質問だとして・・・ 単にA2セルだけであればA2セルの表示形式をユーザー定義から G/標準;G/標準; とすればご希望の表示になると思いますが、 A1セルの値が1~というコトなのでA2セルだけでなく、 C2セルまで同様の対応が必要なのではないでしょうか? ただ、仮に2005のように4桁でもB2・C2については「0」を表示させる必要があると思います。 そこでVBAになってしまいますが、一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてA1セルに色々値を入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から If Target.Address = "$A$1" Then If Target < 1000 Then Range("A2").NumberFormatLocal = "G/標準;G/標準;" Else Range("A2").NumberFormatLocal = "G/標準" End If If Target < 100 Then Range("B2").NumberFormatLocal = "G/標準;G/標準;" Else Range("B2").NumberFormatLocal = "G/標準" End If If Target < 10 Then Range("C2").NumberFormatLocal = "G/標準;G/標準;" Else Range("C2").NumberFormatLocal = "G/標準" End If End If Range("A1").Select End Sub 'この行まで ※ 関数によってA2~D2セルの「0」を表示させるか!それともさせないか! という操作は可能だと思います。 他に良い方法があればごめんなさいね。m(_ _)m

jhggjkhkh
質問者

お礼

回答ありがとうございました。VBA今後参考にさせていただきますね

回答No.5

エキササイズ? 力技を紹介するぜぇ~ 例えは、A2~D2に各桁の値を計算するには、そして0サプレスもやっちゃうには、 A2: =IF($E$1<MAX(LEN($A$1),4),"",INT(MOD($A$1,10000)/1000)) B2: =IF($E$1<MAX(LEN($A$1),3),"",INT(MOD($A$1,1000)/100)) C2: =IF($E$1<MAX(LEN($A$1),2),"",INT(MOD($A$1,100)/10)) D2: =IF($A$1="","",MOD($A$1,10)) ここは、書式:ユーザ定義:0"円"、がええかも~

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

ANo.1です >A2~D2 >=MID(REPT(" ",4-LEN($A$1))&$A$1,COLUMN(),1) これだとA1に5ケタ入力されるとエラーになりますので A2~D2 =LEFT(RIGHT(" "&$A$1,5-COLUMN()),1) で如何でしょうか

jhggjkhkh
質問者

お礼

回答ありがとうございました。今後参考にさせていただきますね

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

A1が全く空っぽの時に「0円」と表示したいなら A2に =MID(TEXT($A$1,"???0"),COLUMN(A2),1) と記入し、D2までコピー貼り付けます A2からD2まで、「右寄せ」の設定をしておきます E2にはただ「円」を記入しておきます A1がまったく空っぽのときにぜんぶ空っぽにしたいなら D2を =IF($A$1="","",MID(TEXT($A$1,"???0"),COLUMN(D2),1)) E2を =IF($A$1="","","円") としておきます。

jhggjkhkh
質問者

お礼

回答ありがとうございました。今後参考にさせていただきますね

  • since_1968
  • ベストアンサー率24% (254/1053)
回答No.2

if関数を使えばよいのでは A2,B2,C2,D2にどういう式になってるによりますがその式をfxとすると A2=IF(A1<1000,fx,"")なら0はでませんが

jhggjkhkh
質問者

お礼

回答ありがとうございました。今後参考にさせていただきますね

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

こんばんは A2~D2 =MID(REPT(" ",4-LEN($A$1))&$A$1,COLUMN(),1)

jhggjkhkh
質問者

お礼

回答ありがとうございました。今後参考にさせていただきますね

関連するQ&A

  • 複数セルに入力した数字同士の加減算

    EXCEL2013で金銭出納帳を作成しています。 市販の罫線入り出納帳のように、金額欄は桁毎に異なるセルに入力するようにしました。 例えば、A10は10,000円の桁入力、B10は1,000円の桁入力、C10には100円の桁入力・・・となります。 12,345円と入力する場合、A10に「1」、B10に「2」、C10に「3」、D10に「4」、E10に「5」となります。 つまり、A10×10000+B10×1000+・・・・+E10=12,345となります。 次行に67,890円と入力する場合、A11に「6」、B11に「7」、C11に「8」、D11に「9」、E11に「0」となり、同様にA11×10000+B11×1000+・・・・+E11=67,890となります。 この複数のセルに跨がった金額同士を加算したり、減算したりする場合、簡単に計算する方法はないでしょうか? やはり足す場合は、(A10×10000+B10×1000+・・・・+E10)+(A11×10000+B11×1000+・・・・+E11) 引く場合は(A10×10000+B10×1000+・・・・+E10)-(A11×10000+B11×1000+・・・・+E11)とするしかないんですかね? 簡単に計算できる方法があれば、お教えください。 よろしくお願いします。

  • セルに入力されている文字をくっつけたい。

    エクセル2010です。 よろしくおねがいします。 セルE15~E23に入力されている文字を ひとつにくっつけて 表示したいんですが・・・ 全部文字が入力されているときも あるのですが 入力がないときまあります。 その場合は D1には 何も表示しないようにしたいのです。 例えば E15にA       E16にB      E17にC  E18~E23は入力なしとして D1に ※文字です。→A・B・C と 一つのセルに表示させるには どういう関数になりますでしょうか? よろしくお願いします。

  • エクセルで同一セル内で計算する時に金額と個数を別々に入力するようにできますか?

    エクセルで同一セル内で計算する時に金額と個数を別々に入力するようにできますか? 例えば、5,000と入力した後に個数を入力できるようにしてその計算結果を表示させたいのですが(5000*3と入力しそのセル内で15000,5000*3、5500*2で26000等)そしてこの合計を同じ行の別の列に自動的に分散させることができるでしょうか?やりかたがわかりません、詳しい方お願いいたします。 A B C D E 1 12/1 12/2 12/3 12/4 12/5 2 15000 5000 5000 5000 3 こんな感じにできたらと思います。

  • エクセルのセルに入れた文字あるいは数字を別なセルに1文字づつ、「右詰」で移したい

    以前に エクセルのセルに入れた文字あるいは数字を別なセルに1文字づつ移したい、ということで質問しまして、「MID関数を利用する」事で、先頭文字から一文字ずつ別々なセルに移すことが出来ましたが、スミマセンが次のような場合はどのような関数になるのでしょうか? 例えば「番地などの表示」等で1桁の場合もあれば、5桁あるいは6桁等々の場合もあるとします。これを別なセルに下一桁を合せる様にしたいのです。 例としまして セルA1に1桁~6桁の数字(例:345678)を入力した場合、これを右側のB1には3を、同様にC1には4を、D1=5、E1=6、F1=7、G1=8を関数で入力できるようにしたい。 問題は、桁数が毎回違う場合にG1に下一桁が来るようにしたいのですがRIGHT関数では下一桁だけ応答されるのは上手くいくのですが、下二桁、三桁以上の場合には上手くいきません。 つまり「A1に789」の数字を入力したら、G1=9が、F1=8が、E1=7が応答されるようにしたいのです。 勿論、5桁の場合にはB1が空欄で、C1、D1、E1、F1、G1が埋まる様に、4桁であればB1とC1が空欄で、D1~G1が埋まるように、三桁の場合にはB1~D1が空欄でE1~G1が埋まるようにですが、出来ますでしょうか?? よろしくご教授お願いします。

  • エクセルでのデータ入力について

    質問は2つあります。 1.セルA1からA5まで,違う文字データが入っている。   全てのデータの頭に同じ文字を「簡単に」入れたい。   置換を使って「*」→「A*」とやろうとしましたが,   (全てのデータの頭に「A」を入力したいとする)   データそのものが,「A*」に変わってしまいました。 2.セルA1からA4まで順番に   "a-1","a-2","b-1","b-2"という4つのデータがはいっている。   これを,ドラッグで(オートフィル?),引っ張ったときに,   自動的に,"c-1","c-2","d-1","d-2",,,,,,, と入力したいんですが,出来ますか? 以上2点,片方だけでもいいので,分かる方がいらっしゃったら, よろしくお願い致します。:)

  • Excelで、1の位、10の位・・・を出す

    例えばA1に23000と入力されていて、A2から横に用意されている7個のセルに1桁ずつA1から読み取った数字を、A2=空白、B2=空白、C2=2、D2=3、E2=0、F2=0、G2=0、と位ごとに出したい事です すみませんがよろしくお願いします

  • Excelによる時間入力

    ExcelでセルA1には1時間の1 セルB1には20分の20 セルC1には50秒の50 セルD1には100分の1の40と 入力したら セルE1には1時間20分50秒40と表示させることは できるのでしょうか? 教えてください.

  • エクセルで、連続した数字を1文字ずつに分けたい

    エクセルのことで教えてください。 定型のエクセルシートに入力をするのですが、 電話番号などが、一桁ずつのセルになっています。 一文字ずつセルに入力するのが手間なので、 例えばAセルに、「0452223333」と入力したものを、 Bセル=0 Cセル=4 Dセル=5 Eセル=2 というように設定することは可能でしょうか? 宜しくお願いします。

  • エクセル2000で教えて下さい。

    セルC5に二桁の数字が入っています。 セルD5に四桁の数字が入っています。 例えばC5が37、D5が15651と入っていたとします。 それを合計してE5に385651としたいのです。 ようはC5の単位は万円、D5の単位は円、それを合計してE5に 表示させたいのです。 C5は基本的に二桁、D5は三桁~五桁とその時によって違います。 どのようにすればよいのでしょう?

  • EXCEL 指定範囲内の空白セルに特定数だけ文字を入力するマクロ教えてください。 

    マクロ初心者です。 指定範囲内の空白セルに特定数だけ文字を入力するマクロを考えていますが、まったくわかりません。どなたか教えていただけますか? 詳細内容 (1)下記のような空白セルを含む範囲内        A B C D       1  A君       2       3A君  B君       4  C君  (2)別セルでA君に1追加するとA君が表示上追加される        A B C D       1  A君  A君←どこでも空白セルならいい       2       3A君  B君       4  C君 

専門家に質問してみよう