プロが教えるわが家の防犯対策術!

どうぞよろしくお願いいたします。

A1:0
B1:0

C1:=A1
D1:=B1

E1:=IFERROR(D1/C1,"")

の場合、「0」表示されません。

C1とD1に直接0を入力すれば、
=IFERROR(IF(C1=0,0,D1/C1),"")
で「0」表示されました。

わけあって数値の入力はA1とB1にしないといけないのですが、
この場合でE1に「0」を表示させる方法を教えてください。

A1とB1の数値は毎回変わり、必ずしも「0」というわけではありませんので、
全ての数値で対応できる数式をお願いいたします。

A 回答 (5件)

色々と勘違いしています。


まず数学の話で、0 ÷ 0 = 0 では、ありません。不定です。何になるのか数字が決まらない、というのが数学の正解です。

> E1:=IFERROR(D1/C1,"")

この数式の意味は、D1/C1 の計算結果が何らかのエラー値の場合は、『空白文字列を表示しろ』という意味であって、正しく空白文字列が表示されているのですから、0 が表示されないのは当たり前です。

0 を表示したかったら
E1:=IFERROR(D1/C1,0)


> =IFERROR(IF(C1=0,0,D1/C1),"")

この式の IF(C1=0,0,D1/C1) の意味は、C1 が 0 の時は 0 を出力し、そうじゃない時は D1/C1 の計算結果を出力しろ、です。
今 C1 = 0 とすると
IFERROR(IF(C1=0,0,D1/C1),"") = IFERROR(0, "")
であって、0 はエラー値ではないので、空白文字列は表示されず、そのまま 0 が表示されています。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ご丁寧にありがとうございます。

説明が不十分ですみません。

A1とB1ですが、0や整数以外に入力が無い場合もあり、その時に空白表示したいので E1:=IFERROR(D1/C1,"") にしてました。

-----------------------------

1.
> 0 を表示したかったら
> E1:=IFERROR(D1/C1,0)

にすると、確かに答えが 0 の時は 0 表示されるのですが、
空白時も 0 表示となってしまいました。


2.
> IFERROR(IF(C1=0,0,D1/C1),"") = IFERROR(0, "")
を入力すると

TRUE や FALSE で返ってきました。

-----------------------------

やりたいのは

A1とB1が、
空白なら空白
0 なら 0
整数なら整数
が返るようにしたいのですが、ご教授よろしくお願いいたします。

お礼日時:2019/05/24 10:27

小学校の算数で授業をちゃんと聞いてませんでしたね。

ゼロで割り算してはいけません。だからちゃんと #DIV/0! ってエラーになるんですよ。答えはゼロではありません。

割り算できるのは
・A1とB1のどちらも数値である
・B1はゼロではない
を両方満たす時だけです。

どちらかの条件を満たさない場合は空文字列 "" を返すことにすると、
=if( and(count(A1:B1)=2, B1<>0), D1/C1, "")

前者の条件を満たさない場合は空文字列で後者の条件だけ満たさない場合は0 (大間違い)だとすると
=if(count(A1:B1)<>2, "", if(B1<>0, D1/C1, 0))
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。

勉強になりました。
ありがとうございました。

お礼日時:2019/05/27 16:32

明後日の 不適切回答はかり、


目受けますね。


0/0が 出来ない位、
判っているから、
IFERROR構文を 既に、
課しているとは、
読めないのでしょうかね?

偉そうな事 ぶち上げても、
全く 理解出来てない、
故ですから、

はぁー。

答えは、
○ E1:=IFERROR(D1/C1,0)
×  E1:=IFERROR(D1/C1,"")

IFERROR構文の 第ニ引数は、
""とは 限定していません。


如何なる、
値でも、式でも、
構いません。


勿論、
0でも 構わないですよ。


古は IFERROR構文等、
ありませんでした、

其れ処か、
ISERROR構文すら 無かったと、
思います。


しかし 処理上、
ゼロで 割る事に、
なる場合は 避けられません。


先人達は 狂人的にも、
エクセルの 特性を、
調べ上げ、
LOOKUP構文なら 回避可能と、
見付け 使用していました。
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。

勉強になりました。
ありがとうございました。

お礼日時:2019/05/27 16:32

> A1とB1が、


> 空白なら空白
> 0 なら 0

C1 を =IF(ISBLANK(A1), "empty", A1)
D1 を =IF(ISBLANK(B1), "empty", B1)
E1 を =IF(OR(C1="empty",D1="empty"),"", IFERROR(D1/C1, 0))



> 整数なら整数

これが意味不明。
A1 = 2 で B1 = 1 の時に何を出力したいの?
    • good
    • 0

C1:=IF(A1="","",A1)


D1:=IF(B1="","",B1)
E1:=IF(OR(C1="",D1=""),"",IFERROR(D1/C1,0))
なんだかごちゃごちゃになってますが、これだけのことです
但し、計算式の結果が整数でほしいということであれば、3行目のD1/C1を
INT関数(切り捨て)やROUNDUP関数(切り上げ等)で対応してください
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!