みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルの参照(コピー)でのゼロ表示について(その2)

例1:同一シート上の表内のセル(例えばA5)に入力された数値データを5倍した数値をC10に表示させる。

・「やってみたこと」 =IF(A5="","",A5)*5・・・・結果は一部失敗
  失敗の状況は、A5に3.00を入力すると、ちゃんとC10に15.00が表示されます。
  しかし、A5がブランクのままだと、C10のセルに「######」が表示されてしまいます。セルC10の表示形式は数値(小数点以下2桁)になっています。
・セルの書式設定で「ユーザー定義」をえらんで右側の種類の欄に#(半角)を加えた。・・・結果は成功

例2:これがちょっと複雑でどのように応用したら良いのか判りません。
   使用するセルを「B1」「C1」「F1」で説明します。全て数値です。
   B1のデータに38をかけた数値とC1のデータに0.64をかけた数値を合算したものをF1に表示する方法です。
   現在はF1に =+(38*B1)+(0.64*C1) と入力してます。
   結果、答えは正確にF1に表示されますが、B1とC1がブランクだとF1にゼロが表示されてしまいます。この表内にもあえて0という値を入力するセルが別にあるので、ゼロ値のチェックをはずせません。

この例2の場合、上記で成功した半角#を指定すると、答えが四捨五入されたように表示されてしまうので、表示形式で数値、小数点以下1位までを指定すると、また、ゼロが表示されてしまいます。(ユーザー定義が無視されてしまう)
具体的には、B1に0.05を入力、C1に0.00を入力。答えとして1.9を表示させたいのですが、2が表示されます。

長い説明になってしまいましたが、あまりエクセルを使い込んでいないので判らないことだらけです。よろしくお願いします。

投稿日時 - 2006-01-31 20:24:38

QNo.1934662

困ってます

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

>「やってみたこと」 =IF(A5="","",A5)*5・・・・結果は一部失敗

=IF(A5="","",A5*5)
この式でも、A5に文字を入力する可能性があるなら間違いです。

数式が間違ってるのを表示形式で何とかしようとしても無理です。

F1 =IF(AND(B1="",C1=""),"",38*B1+0.64*C1)
B1とC1共にブランクなら、F1に何も表示させず、
B1とC1どちらかまたは両方に数値データがあれば =38*B1+0.64*C1 を計算。

投稿日時 - 2006-01-31 21:57:29

補足

さきほどF1への数式について、バッチリとお礼の中にかきましたが、今、もう一度やってみたところ、B1かC1のどちらかに数値がない時は、F1に######が表示されます。そこで、もしやと思い、数式の中のANDをORに変えてみたところ、うまくいきました。なんとなくですが、判ってきました。どうも、ありがとうございました。

投稿日時 - 2006-01-31 23:21:44

お礼

さっそくのご回答、ありがとうございます。
>=IF(A5="","",A5*5)この式でも、A5に文字を入力する可能性があるなら間違いです
最後の*5は括弧の外に出てますが、それでも間違いなのでしょうか?これは先の質問No.1934356で回答して頂いたもので数値しか扱わないのですが、数式を直したほうがよいのでしょうか?
それと、F1への数式はバッチリうまく行きました。教えて頂いた数式が何を意味するのか自分なりに勉強してみます。どうも、ありがとうございました。

投稿日時 - 2006-01-31 22:19:25

ANo.3

このQ&Aは役に立ちましたか?

10人が「このQ&Aが役に立った」と投票しています

回答(7)

ANo.7

#6です。
#3の方の考え方は間違いなどではありません。
やり方はいくつかあるということですね。
じつは前の方の回答をあまりよく読んでなかったのです。^^;
混乱させてしまったようですみません。

指定するセルの数が少なく、個別に指定するときは#3の方の回答のほうがスマートかもしれません。

投稿日時 - 2006-02-01 13:26:39

お礼

度々、お手数をおかけしてすみません。
いろいろなやり方があるんですね。納得できました。
どうも、ありがとうございました。

投稿日時 - 2006-02-01 13:38:35

ANo.6

これでどうでしょう。
=IF(COUNT(B1,C1)<>2,"",(38*B1)+(0.64*C1))
count関数は引数に含まれる数値の個数を返します。
この場合B1とC1の含まれる数値の個数が2個でない場合""(ヌル:なにもなし)を表示します。2個の場合は最後にある計算式を実行します。
参照するセルを追加する場合はカンマで区切って追加できますし、連続するセルならA1:A5のような記述もできます。
小数点以下に関してはツールバーにあるボタンでもかまいませんし、セルの書式設定でユーザ定義で#.##としてもよいでしょう。


蛇足ですが####という表示についてですが表示したい文字列がセルの幅に収まりきれないときにこのような表示になります。
実際は#VALUE!というエラーが表示されています。

投稿日時 - 2006-02-01 09:18:36

お礼

ご回答、ありがとうございます。
>=IF(COUNT(B1,C1)<>2,"",(38*B1)+(0.64*C1))
これでうまくいきました。詳しく説明していただき、ありがとうございました。よく理解できました。
ただ、#3の方に教えていただいた
=IF(AND(B1="",C1=""),"",38*B1+0.64*C1)の式のANDをORに変えるやり方はいかがでしょうか。考え方として間違っていますでしょうか?

投稿日時 - 2006-02-01 12:50:20

ANo.5

> やはり文字を入力すると######が表示されてしまいます。
> 原因がわからないのがちょっと気になるので、

原因は No.4さんの回答に説明されています。
>A5に例えば「あいうえお」と文字を入力しても、「あいうえお*5」が、計算できないのと同じで、「""*5」は計算できないので「######」(エラー)が表示されます。

=IF(ISNUMBER(A5),A5*5,"")
としてみたらいかがでしょう?

式の意味は、
 セルA5が数字なら、A5 * 5
 それ以外なら、""

投稿日時 - 2006-02-01 01:22:18

お礼

私の読み違いだったのですね。
#4さんの回答(#3とあわせて)
>=IF(A5="","",A5*5) この式は「""」(何も表示しない)か、「A5*5」の計算結果を表示します。
となっていたので、この式なら文字を入れても「何も表示しない」のかと思ってしまいました。
文字を入力することは無いセルなので、これで了解しました。どうも、ありがとうございました。

投稿日時 - 2006-02-01 12:35:54

ANo.4

=IF(A5="","",A5)*5 この式は間違いです。
=IF(A5="","",A5*5) この式にすべきです。 
5倍しないなら =IF(A5="","",A5)

「""」は空白文字列、つまり「何も表示されない文字」です。
A5に例えば「あいうえお」と文字を入力しても、「あいうえお*5」が、計算できないのと同じで、「""*5」は計算できないので「######」(エラー)が表示されます。

=IF(A5="","",A5)*5 この式は「""*5」の計算結果(エラー)か、「A5*5」の計算結果を表示します。
=IF(A5="","",A5*5) この式は「""」(何も表示しない)か、「A5*5」の計算結果を表示します。

以上、ご理解いただけましたでしょうか?

投稿日時 - 2006-01-31 23:23:18

お礼

何度もご回答いただきまして、ありがとうございます。
=IF(A5="","",A5)*5の数式は5倍しない数式を教えて頂き、自分なりにやってみたものなので、たぶん間違っているだろうと思い、=IF(A5="","",A5*5)の数式でやってみたのですが、やはり文字を入力すると######が表示されてしまいます。
とりあえず数値しか扱わないセルなのですが、文字を扱わなければこのままでも問題ないでしょうか?
何度もお手数をかけて申し訳ないのですが、原因がわからないのがちょっと気になるので、出来れば再度の回答をお願いします。

投稿日時 - 2006-02-01 00:37:35

ANo.2

F1 の書式を #.# としてください。

投稿日時 - 2006-01-31 20:53:02

お礼

早速のご回答ありがとうございます。
このやり方ですと、B1,C1がブランクの時、F1にピリオドがひとつ残ってしまいます。お手数かけてすみません。

投稿日時 - 2006-01-31 22:03:45

ANo.1

musanさんの書いている通り、エクセルに打ち込んでみました。
例2の数式、F1に【=(38*B1)+(0.64*C1)】と普通に入力するとF1には1.9と表示されます。
なぜだろう・・・?

バージョンとかが関係あるのかな?
ちなみに私のは2003です。

投稿日時 - 2006-01-31 20:40:00

お礼

早速のご回答、ありがとうございます。
で、その時にB1,C1をブランクにしても、F1のセルに0.0が表示されたままになりませんか?
そうなると、バージョンの違いかな?ちなみにこちらはエクセル2000です。

投稿日時 - 2006-01-31 21:58:25

あなたにオススメの質問