- ベストアンサー
Excel金額入力の頭に0を表示させない方法はある?
- エクセルの金額入力で、3桁・2桁・1桁の場合に頭に0が表示されない方法を教えてください。
- エクセルの金額入力では、A1セルに金額を入力すると、A2セルに千の位、B2セルに百の位、C2セルに十の位、D2セルに一の位が入力されるように設定されています。
- しかし、金額が3桁・2桁・1桁の場合、A1に入力すると頭に0が表示されてしまいます。この表示を防ぐ方法を教えてください。
- みんなの回答 (11)
- 専門家の回答
質問者が選んだベストアンサー
>例えば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まで式をコピー、下方向すきなだけコピーします
その他の回答 (10)
- tom04
- ベストアンサー率49% (2537/5117)
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
お礼
回答ありがとうございました。今後参考にさせていただきますね。
- toshi_2010
- ベストアンサー率43% (25/57)
どうも質問者も回答者も勘違いされているようですね。 >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を選択して書式をユーザ定義にして#にするでいいだけです。
お礼
意味わからんけどわざわざサンキューな。
- kagakusuki
- ベストアンサー率51% (2610/5101)
何故か誰もが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の範囲に貼り付けて下さい。 以上です。
お礼
回答ありがとうございました。今後参考にさせていただきますね
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
また、スベッテもうたわい! $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"円"、がええかも~
お礼
回答ありがとうございました。各桁の計算、今後参考にさせていただきますね
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! >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
お礼
回答ありがとうございました。VBA今後参考にさせていただきますね
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
エキササイズ? 力技を紹介するぜぇ~ 例えは、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)
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) で如何でしょうか
お礼
回答ありがとうございました。今後参考にさせていただきますね
- keithin
- ベストアンサー率66% (5278/7941)
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="","","円") としておきます。
お礼
回答ありがとうございました。今後参考にさせていただきますね
- since_1968
- ベストアンサー率24% (254/1053)
if関数を使えばよいのでは A2,B2,C2,D2にどういう式になってるによりますがその式をfxとすると A2=IF(A1<1000,fx,"")なら0はでませんが
お礼
回答ありがとうございました。今後参考にさせていただきますね
- watabe007
- ベストアンサー率62% (476/760)
こんばんは A2~D2 =MID(REPT(" ",4-LEN($A$1))&$A$1,COLUMN(),1)
お礼
回答ありがとうございました。今後参考にさせていただきますね
お礼
ありがとうございました!うまく機能するようになりました。 助かりました。