
No.11
- 回答日時:
#3、4、5、8、cjです。
自分としては出来の悪い回答をそのままにしておくのもキツイので、
"マイナス0"の扱いについて書いたExcelファイルをアップロードしておくことにしました。
興味持つ人もいる?かも知れないので、、、。
参考URLから、.xlsファイルをダウンロードして上書き保存して
実際のExcelブックで試してみて下さい。
UDFそのものとUDFの運用、Excel数式、ともに改良しています。
多投稿、失礼しました。
参考URL:https://docs.google.com/file/d/0B_vU9fuhf8bRV1Jm …
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」といった間抜けな表示になってしまいます。上のとおりとしてください。

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 といったフォントを使うと「±」が欧文風に表示されます。
なお、どのゼロも、文字列にしているわけではなく、書式で符号を付けているだけの数値です。したがって、これらは他の計算にそのまま使えます。

No.8
- 回答日時:
#ん?
元の値が正の数値で、戻り値が0ならば、0
元の値が負の数値で、戻り値が0ならば、-0
#ということなのでは?
一応、
-0を表示したい場合だけは文字列値"-0"、他は数値、を返す数式を
妥協案的な位置づけで一例。
=IF((A1>=0)+(ABS(A1)>1000000),TRUNC(A1/1000000),"-0")
セルの書式の表示形式はデフォルトのまま。
この戻り値を、
「"文字列値が混在した範囲"を"引数"として扱えない」数式
から参照するような場合は
数式の建て方を工夫しないといけません。
数字として、0 と -0 を区別して表示しつつ、
どちらも正しく数値 0 として計算させることが出来て
ということだと、通常のEXCELでは、不可能です。
(#本当に出来るなら私も教わりたいですが)
VBAでもUDFにしか出来なかったんじゃないかと記憶しています。
ミスが多くてすみませんでした。以上ここまで。失礼します。
No.6
- 回答日時:
エクセルでは、計算結果がゼロなのですから表示形式ではどう頑張っても -0 と表示することはできないと思います。
(できたとしても、+0も -0と表示される。)VBAなら、オリジナルの値が負なら - 記号を付けて表示する方法はあると思います。
エクセルで解決する姑息な方法は、(私がよくやる手ですが)
=IF(セル<0,ROUNDDOWN(セル/1000000,0)-δ,ROUNDDOWN(セル/1000000,0))
ここで、δは、表示に影響を与えない、十分に小さい値とします。(たとえば、 0.00000000001)
そして、表示形式を、#,##0;-#,##0 にします。
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
' ' =========ここまで==========
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
' ' =========ここまで==========
以上訂正でした。
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)
数式を設定。
セルの書式、表示形式はデファルトの標準のまま、です。
準備に一手間掛かりますが、後々の面倒は諸々回避できます。
試してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの「セル書式」の「表示形式」で 2 2022/08/07 16:44
- Excel(エクセル) エクセルについて教えてください。 1 2022/12/26 09:01
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/11 14:50
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- 会計ソフト・業務用ソフト エクセルの数式で教えてください。 1 2022/06/21 13:15
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
- Excel(エクセル) エクセルに詳しい方 よく読んでからのご回答お願いします 外部からデータが来ますが、日付が202201 7 2022/06/29 16:15
- Excel(エクセル) エクセルの数式で教えてください。 3 2023/03/16 11:19
- Excel(エクセル) エクセルの数式で教えてください。 5 2023/02/10 15:11
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
尿検査前日に自慰行為した時の...
-
値が入っているときだけ計算結...
-
至急!尿検査前日にオナニーし...
-
VLOOKUP関数を使用時、検索する...
-
【Excelで「正弦波」のグラフを...
-
MIN関数で空白セルを無視したい...
-
EXCELで式からグラフを描くには?
-
検便についてです。 便は取れた...
-
リンク先のファイルを開かなく...
-
ある範囲のセルから任意の値を...
-
2つの数値のうち、数値が小さい...
-
尿検査の前日は自慰控えたほう...
-
小数点以下を繰り上げたものを...
-
一番多く表示のある値(文字列...
-
Excel 数値の前の「 ' 」を一括...
-
風俗店へ行く前のご飯
-
値が入っている一番右のセル位...
-
EXCELで条件付き書式で空白セル...
-
彼女のことが好きすぎて彼女の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
イタリアから帰国する際、肉製...
-
2つの数値のうち、数値が小さい...
-
健否~書類の書き方~
-
VLOOKUP関数を使用時、検索する...
-
値が入っているときだけ計算結...
-
小数点以下を繰り上げたものを...
-
エクセルで空白セルを含む列の...
-
EXCELで条件付き書式で空白セル...
-
リンク先のファイルを開かなく...
-
ある範囲のセルから任意の値を...
-
精子に血が・・・
-
エクセルで数式の答えを数値と...
-
風俗店へ行く前のご飯
-
エクセル指定した範囲からラン...
-
一番多く表示のある値(文字列...
-
Excel 数値の前の「 ' 」を一括...
-
ワードのページ番号をもっと下...
-
MIN関数で空白セルを無視したい...
おすすめ情報