• ベストアンサー

エクセルで-0と表示させる方法

エクセルで-800,000を百万単位で表示させ、-0と表示させる方法を教えてください。 -800,000に対して、ROUNDDOWN(セル/1000000,0)を使った時に 0 と表示されてしまいます。 セルの書式設定で、「表示形式」の分類を全てためしましたが、どれも-0と表示されません。 百万単位にしたときは、「切り捨て」です。 よろしくお願い致します。

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

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

こんばんは! 横からお邪魔します。 No.2さんの「セルの表示形式」の方法が一番簡単だと思います。 ユーザー定義から [=0]-0;G/標準 で大丈夫だと思います。m(_ _)m

imaima5055
質問者

お礼

ご回答ありがとうございました。 うまくできしました。 返事遅くなってすみませんでした。

その他の回答 (10)

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.11

#3、4、5、8、cjです。 自分としては出来の悪い回答をそのままにしておくのもキツイので、 "マイナス0"の扱いについて書いたExcelファイルをアップロードしておくことにしました。 興味持つ人もいる?かも知れないので、、、。 参考URLから、.xlsファイルをダウンロードして上書き保存して 実際のExcelブックで試してみて下さい。 UDFそのものとUDFの運用、Excel数式、ともに改良しています。 多投稿、失礼しました。

参考URL:
https://docs.google.com/file/d/0B_vU9fuhf8bRV1JmbzR6MHpPQ3M/edit
imaima5055
質問者

お礼

ご回答ありがとうございました。 何度もご回答ご確認ありがとうございました。 返事遅くなってすみませんでした。

回答No.10

No.9 です。補足します。 もしも、ゼロもゼロ以外もいっぺんに、「+3」とか「-2」とか「-0」というふうに符号を付けたいという場合は、No.9 の各条件を次のとおり修正して設定することとなります。 条件式  書式記号 =a1>0   "+"G/標準;"-"G/標準;"+"G/標準 =a1=0   "+"G/標準;"-"G/標準;"±"G/標準 =a1<0   "+"G/標準;"-"G/標準;"-"G/標準 No.9 と比べると、「*(b1=0)」という因数が削除されています。「( )」も不要になりますね。 なお条件式が「=a1<0」のときに、書式記号を単に「"-"G/標準」とだけ入力すると、「--2」といった間抜けな表示になってしまいます。上のとおりとしてください。

imaima5055
質問者

お礼

ご回答ありがとうございました。 返事遅くなってすみませんでした。

回答No.9

添付図の B1 セルの「条件付き書式」を次のとおり設定しました。 条件       書式記号 =(a1>0)*(b1=0)  "+"G/標準 =a1=0      "±"G/標準 =(a1<0)*(b1=0)  "-"G/標準 設定の方法は、B1:B3 のセル範囲をドラッグし「ホームタブ>条件付き書式>新しいルール>数式を使用して…」とクリック。そのダイアログにある「次の数式を…」ボックスに条件を入力。「書式」ボタン内の「表示形式タブ>ユーザー定義>種類ボックス」に書式記号を入力。 以上の操作で 1 つの条件が設定できます。3 条件なので、あと 2 回、同じことを繰り返してください。 アクティブセル(ドラッグした範囲の中で 1 つだけ白色のセル)の行番号に、上式の行番号を合わせて入力してください。 「±」の入力は、「ぷらすまいなす」とタイプしてワープロ変換すると、全角で書けます。Times New Roman といったフォントを使うと「±」が欧文風に表示されます。 なお、どのゼロも、文字列にしているわけではなく、書式で符号を付けているだけの数値です。したがって、これらは他の計算にそのまま使えます。

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.8

#ん?  元の値が正の数値で、戻り値が0ならば、0  元の値が負の数値で、戻り値が0ならば、-0 #ということなのでは? 一応、 -0を表示したい場合だけは文字列値"-0"、他は数値、を返す数式を 妥協案的な位置づけで一例。  =IF((A1>=0)+(ABS(A1)>1000000),TRUNC(A1/1000000),"-0")  セルの書式の表示形式はデフォルトのまま。 この戻り値を、 「"文字列値が混在した範囲"を"引数"として扱えない」数式 から参照するような場合は 数式の建て方を工夫しないといけません。 数字として、0 と -0 を区別して表示しつつ、 どちらも正しく数値 0 として計算させることが出来て ということだと、通常のEXCELでは、不可能です。 (#本当に出来るなら私も教わりたいですが) VBAでもUDFにしか出来なかったんじゃないかと記憶しています。 ミスが多くてすみませんでした。以上ここまで。失礼します。

  • m_and_dmp
  • ベストアンサー率54% (974/1797)
回答No.6

エクセルでは、計算結果がゼロなのですから表示形式ではどう頑張っても -0 と表示することはできないと思います。(できたとしても、+0も -0と表示される。) VBAなら、オリジナルの値が負なら - 記号を付けて表示する方法はあると思います。 エクセルで解決する姑息な方法は、(私がよくやる手ですが) =IF(セル<0,ROUNDDOWN(セル/1000000,0)-δ,ROUNDDOWN(セル/1000000,0)) ここで、δは、表示に影響を与えない、十分に小さい値とします。(たとえば、 0.00000000001) そして、表示形式を、#,##0;-#,##0 にします。

imaima5055
質問者

お礼

ご回答ありがとうございました。 返事遅くなってすみませんでした。

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.5

#3、4、cjです。度々すみません。 バージョンや設定によっては、ブックを閉じる度に  -0 が 0 に変換されてしまうので、 うまく行かない場合は以下。 ' ' =========ここから========== Function RoundDown0Sign(値, Optional 桁 As Integer) As Single   Dim sngT As Single   Application.Volatile   sngT = Application.RoundDown(値, 桁)   If sngT = 0! And Sgn(値) < 0 Then     RoundDown0Sign = -sngT   Else     RoundDown0Sign = sngT   End If End Function ' ' =========ここまで==========

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.4

#3、cjです。 慌ててポカ、が1点、あと少し配慮するべきだった、のが1点、 計2点、訂正です。 >> ROUNDDOWN(セル/1000000,0) > そもそものROUNDDOWN関数の正しい使い方は >  =ROUNDDOWN(セル,-6) "正しい"といっているのが間違いでした。  ROUNDDOWN(セル/1000000) 若しくは  ROUNDDOWN(セル,-6)/1000000 ですね。 ご提示のもので正しいです。大変失礼しました。 提示した関数を、ROUNDDOWN関数と同様に扱えるように オプションを加えましたので、 コピペする内容を差し換えてくださいませ。 ' ' =========ここから========== Function RoundDown0Sign(値, Optional 桁 As Integer) As Single   Dim sngT As Single   sngT = Application.RoundDown(値, 桁)   If sngT = 0! And Sgn(値) < 0 Then     RoundDown0Sign = -sngT   Else     RoundDown0Sign = sngT   End If End Function ' ' =========ここまで========== 以上訂正でした。

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.3

こんにちは。お邪魔します。 > ROUNDDOWN(セル/1000000,0) そもそものROUNDDOWN関数の正しい使い方は  =ROUNDDOWN(セル,-6) なのではないかと思うので、確認してください。 また、 戻り値を、検索・抽出・計算などの対象にすることがあるなら、 戻り値は、数値であるべき、ということも確認してください。 その上で、 戻り値としての0について  元のセルの値、が、負数、であれば、切下げ後の値にも、負の符号を付けたい ということをお考えなのだとして、  正しく数値を返す数式を実現しつつ、元のセルの値の符号を正しく反映する という方法はEXCELに用意された関数や表示形式だけでは、不可能です。 なので、一般的な方法としてUDF(ユーザー定義関数)をお奨めします。 "マイナス0"を実現する方法としては、これが、唯一であったと記憶しています。 ' ' =========ここから========== Function RoundDown0Sign(値, 桁) As Single   Dim sngT As Single   sngT = Application.RoundDown(値, 桁)   If sngT = 0! And Sgn(値) < 0 Then     RoundDown0Sign = -sngT   Else     RoundDown0Sign = sngT   End If End Function ' ' =========ここまで========== 準備■ 当該ブックがアクティブな状況から  Alt + F11 でVisual Basic Editor を表示  Alt + I M でModule1(標準モジュール)を挿入、表示  表示されている真っ新なウィンドウに上記をコピペ  Alt + F4 でVisual Basic Editor を終了、Excelに戻る 以上準備完了。 運用■ 普通にExcelの関数を扱うのと同じように  =RoundDown0Sign(A1,-6)  =RoundDown0Sign(A1/1000000,0) 数式を設定。 セルの書式、表示形式はデファルトの標準のまま、です。 準備に一手間掛かりますが、後々の面倒は諸々回避できます。 試してみてください。

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.2

0なので普通に考えるとプラマイはないですよね。 ですので0だけ特別に指定してあげないといけません。 他の数値の表示に関しての条件がわからなので表示形式のユーザー定義で G/標準;G/標準;-0 で如何でしょうか?

imaima5055
質問者

お礼

ご回答ありがとうございました。 返事遅くなってすみませんでした。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

=IF(A1<1000000,"-"&ROUNDDOWN(ABS(A1)/1000000,0),ROUNDDOWN(A1/1000000,0))

imaima5055
質問者

お礼

ご回答ありがとうございました。 返事遅くなってすみませんでした。

関連するQ&A

  • エクセルの日付表示

    エクセルでセルの書式設定の表示形式の分類を日付にした時、今まで「2007/7/25」と表示されるものを選択していたのが「2007 7 25」と/の表示が出なくなりました。 その他の表示も/のつくもの全てが/抜きになってしまいました。 再度表示させるにはどうしたら良いでしょうか?

  • EXCELの表示形式

    Excelのセルの数値を1000円単位で表示する時に、書式設定のユーザー定義で#,##0,と指定すると、自動で四捨五入された値が表示されるのですが、これを切り捨てした値を表示する方法をご存知の方はいらっしゃいますか?なお、EXCELの関数を利用せず実現させる必要があります。 ※Webのプログラムからエクセル出力機能で、テンプレートに書式設定を埋め込むのでセルには関数は埋められないのです。

  • エクセルマクロで切り捨て表示について

    エクセルマクロで切り捨て表示について マクロの文で以下の方法で千の位以下を切り捨てた場合 Sheets(Bsheet).Cells(x, y) = Application.RoundDown(Rp, -3) たとえば543,123とう数字の場合543,000となりますが、セルの書式設定ではなくマクロ上で543と表示するように書くことはできますでしょうか。 教えてください。

  • エクセルで下3桁を切り捨て

    エクセルのセルの書式設定の表示形式で、 下3桁を切捨てて、なくすことは可能ですか? 123456→123、456789→456としたいわけです。 これが無理なら、小数点以下を切り捨てにする 表示形式はありますか?123.456→123、456.789→456 あくまで、セルの書式設定の表示形式で行いたいです。

  • エクセルの表示桁の変更方法について

    エクセルで表を作成したのですが、数字を全て千単位で 作成しました。上司から百万単位に置き換えるように 言われたのですが、うまく出来ません。 セルの書式設定で変たのですが、頭に0が入れれないのです。例えば、「500」を置き換えると「.5」になってしまいます。「0.5」と表示する方法を教えてください。お願いいたします。 

  • エクセルでの数値の表示について、教えて下さい。

    今、仕事で、エクセルで日々の売上表を作成中です。 質問なのですが、 (1)小数点以下の桁数を0にすると、1の位が四捨五入になってしまうのですが、切り捨てにしたいのですがどうしたらいいですか?(これは、平均を求めた答えです) (2)数式バーには、実金額を入れてセルには、千円単位で表示したい場合はどうしたらいいですか。 (以前、セルの書式設定→表示形式→ユーザー定義でやったらできたのですが、今日やろうと思ったら忘れてしまい 出来ませんでした) またこの場合も千単位が、四捨五入になってしまいました。やはり、切り捨てにしたいのですが… (3)例えば、7-9と入力すると、日付表示になってしまいますよね?そのままを表示したい場合どうしたらいいですか? いずれも表示形式をどうにかするとできるのでしょうか。 それとも、関数で作成するのでしょうか。 説明がへたですみません。 どなたか、無知な私にご教授を宜しくお願いします。

  • すみません!教えて下さい

    すみません!教えて下さい 答えをすべて勾配(%)表示にしたいんです。 それも少数4位を切り捨てに。 ラウンドダウンで計算式入れるのですが、手計算と合わないところも出ます。 例えば =ROUNDDOWN((E18-E17)/B18,5) E18=4.200 E17=4.245 B-18=7.500 手計算すると0.006になります。 で、セル書式設定の分類をパーセントにすると -0.599%になってしまいます。 別のセルでちゃんと切り捨てしてるところもあるのですが 教えて下さい。

  • エクセルのセルの数値10000→1にする方法を教えて下さい

    エクセルのセルの数値を 10000→1 20000→2 の万単位にしたいのですがセルの書式設定のユーザー設定の表示形式はどのように入力すればいいか教えて下さい。

  • 34:33と01:34:33の表示方法・・・Excel 2003

    Excel 2003を使用しています。 ランニングの記録として時間の表示を34分33秒の時は34:33(00:34:33)、1時間34分33秒の時は01:34:33と表示させたいのですが、セルの書式設定(表示設定)でどのような分類、種類を選択すればいいのでしょうか?

  • EXCELで入力した数字を切り捨てる方法

    EXCELで計算結果を切り捨てる方法はわかるのですが(ROUNDDOWN,TRUNC等)、入力した数字をそのまま切捨てることはできるのでしょうか? セルの書式設定で小数点以下を0にすれば、見た目は少数以下は無いですが、実際は小数点以下も持っているようです。 もしくは そのセル(A1とした場合に)をほかのセル(B1)で参照して =ROUNDDOWN(A1,0) という式を入れればできるのもわかるのですが、その入力セル自体で切捨てを行いたいのです。 例)あるセルに 1234.56 と入力したら 1234 という数字にしたい。

専門家に質問してみよう