• ベストアンサー

エクセルの参照(コピー)でのゼロ表示について(その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が表示されます。 長い説明になってしまいましたが、あまりエクセルを使い込んでいないので判らないことだらけです。よろしくお願いします。

  • musan
  • お礼率95% (67/70)

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

  • ベストアンサー
  • NNAQ
  • ベストアンサー率56% (104/184)
回答No.3

>「やってみたこと」 =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 を計算。

musan
質問者

お礼

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

musan
質問者

補足

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

その他の回答 (6)

  • muushuke
  • ベストアンサー率39% (151/387)
回答No.7

#6です。 #3の方の考え方は間違いなどではありません。 やり方はいくつかあるということですね。 じつは前の方の回答をあまりよく読んでなかったのです。^^; 混乱させてしまったようですみません。 指定するセルの数が少なく、個別に指定するときは#3の方の回答のほうがスマートかもしれません。

musan
質問者

お礼

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

  • muushuke
  • ベストアンサー率39% (151/387)
回答No.6

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

musan
質問者

お礼

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

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.5

> やはり文字を入力すると######が表示されてしまいます。 > 原因がわからないのがちょっと気になるので、 原因は No.4さんの回答に説明されています。 >A5に例えば「あいうえお」と文字を入力しても、「あいうえお*5」が、計算できないのと同じで、「""*5」は計算できないので「######」(エラー)が表示されます。 =IF(ISNUMBER(A5),A5*5,"") としてみたらいかがでしょう? 式の意味は、  セルA5が数字なら、A5 * 5  それ以外なら、""

musan
質問者

お礼

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

  • NNAQ
  • ベストアンサー率56% (104/184)
回答No.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」の計算結果を表示します。 以上、ご理解いただけましたでしょうか?

musan
質問者

お礼

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

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.2

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

musan
質問者

お礼

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

  • lotte
  • ベストアンサー率20% (2/10)
回答No.1

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

musan
質問者

お礼

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

関連するQ&A

  • エクセル2000で算式結果を自動表示させる方法

    エクセル2000を使ってます。 入力例として以下の計算式(単純な足し算)があるとします。 A1セル【5】   B1セル 【5】 C1セル 【=A1+B1】 表示は【10】 A2セル【6】   B2セル 【5】 C2セル 【=A2+B2】 表示は【11】 A3セル【?】   B3セル 【?】 C3セル【=A3+B3】 表示は【??】 ここで、私はA3、B3に数値を入力してC2セルをC3セルにドラッグして C3セルの計算結果を表示させています。 ただ、友人からもらったエクセルではC3には何も表示が無く、 計算式も入っていないにもかかわらず、A3、B3に数値を入力 したと同時にC3の計算結果が表示されます。 入力だけで自動表示させる方法を教えていただけますか。

  • エクセルで数値をそのまま表示する方法

    エクセルで数値をコピーして表示しております。 (例:A1に入力された数値をB1に返す。B1セルに「=A1」と入力。) 小数点の桁を指定せず、A1に入力された通りに表示する方法はありますか? 例: A1のセルが630の場合は、そのまま「630」と表示。 A1のセルが0.055の場合は、そのまま「0.055」と表示。(0.056となってしまう) A1のセルが17.0の場合は、そのまま「17.0」と表示。(17となってしまう) セルの書式設定で可能でしょうか? よろしくお願いします。

  • エクセルでのセルの参照

    sheet1にデータが入力されています。 そしてsheet2ではそのsheet1に入っているデータを 抽出するsheetとして使用しています。 そこで、sheet2にある一つのセルに3と入力したら sheet1で使用しているA3、B3、C3、D3・・・ のセルのデータを、 4と入力したら A4、B4、C4、D4・・・ のセルのデータをsheet2のそれぞれのセルに引っぱってこれるように 関数を書きたいと考えています。 INDIRECTが機能的に近いのかなと考え、式を試してみたのですが なかなかうまくいきません。 また、4と入力したときにA5、B5、C5、D5を参照するというように 数値をいじったりできるであればそれも教えていただきたいです。 よろしくお願いいたします。

  • エクセル 数値が表示されたら、エラー表示

    エクセル2003です。 A1セルと、B1セルに数値を入力し、C1セルに答えが表示されるようにしています。 A1+B1の合計‥‥C1セル10以上と表示されたら、「10以下となるように」という警告文を表示したいです。 入力規則では、そのセルに入力する作業をして、初めてエラー表示となるため、 ただC1に表示されるパターンでは、入力規則が反応せず、困っています。 表示規則のような設定はあるのでしょうか?

  • エクセルのバグですか

    エクセルで数式を使っていて、一つのセルだけ異常な数値が出ます。 下記のような結果が出ますが、こういう現象はあるのでしょうか? 例) セル(内容) : 値(画面表示) A1(=SUM(B2:B79) :11.4000000000000000000000000000 A2(手入力 11.4) :11.4000000000000000000000000000 A3(=A1-A2) : △ 0.0000000000000142108547152020 ※ちなみに(B2:B79)も小数点以下は第一位までしか入力してません。

  • エクセルで、1.0が表示されない・・・

    エクセルで表を作りました。 データは3000ほどあります。 セルに入力する数値は1から6までの小数第一位までになっています。セルの書式設定によって、2と入力しても、2.0となるようにしてあります。 ごくまれに1.0というデータを入力しなければならず、1または1.0と入力するのですが、 「入力した数値は正しくありません。ユーザーの設定によって、入力できる数値が制限されています」 と出てしまいます。 このデータ表を作ったのが5年前で、当初、1.0は扱わないということで何か設定をしたような気もしますが、思い出せません。 これを解除したいのですが、解決できるでしょうか? これまで、「セルの書式設定」で、「数値」を他のものに変えるなど、何度もトライしてみましたがうまくいきませんでした。 小数の桁数表示は1としています。

  • excel 小数を含む数値を色付き表示させたい

    エクセル初心者です。 A列、B列に数値が入力さておりA列÷B列=C列と計算させます。 この時の答え(C列)が整数であればそのまま。小数が発生する場合はその値(セル)を色付きで表示させることは可能でしょうか? 例)    A   B   C    20   5    4 ←OK   30.3  10.1    3 ←OK    10   3  3.33 ←この部分 

  • 1つのセルの数字を複数のセルに1文字づつ表示したい

    こんばんは。 いつも勉強させていただいています。 下記について、ご教示いただければ幸いです。 K1セルには、最小で1桁から最大で9桁までの数値が入力されます。 それを A1からI1までに1つづつ表示させたいのです。 例1) K1 に 10105 と入力した場合 A1からD1まではブランク E1に1、F1に0、G1に1、H1に0、I1に5 例2) K1 に 101050235 と入力した場合 A1に1、B1に0、C1に1、D1に0、E1に5、F1に0、G1に2、H1に3、I1に5 なお、同じシートの他のセルには0を入力する場合があるため、「ゼロ値のセルにゼロを表示する」のチェックを外すことはできません。 私なりに考えたのは、K1セルの数値をL1に =TEXT(K1,"000000000")として文字にし、M1から右のセルに =MID($K$1,1,1) というように各桁を抜き出す方法だったのですが、10000 のように丸い数字をK1に入力すると 1 は表示できても 0 がブランクになってしまいます。 いい方法がありましたら、ぜひご教示下さい。 よろしくお願いいたします。

  • エクセルで参照させるとき

    ちょっと初心者的な質問ですみません。 エクセルデータをいじっているのですが たとえばセルにあるセルを参照させるとき =(ワークシート名)!B7と入力しますよね そのときに参照するセルに何も入力がないときは 「0」と表示されてしまいますよね このときにブランクに表示させる方法はないのでしょうか? 「0」表示だと資料として提出できないので困ってます。大量にあるのでいちいち消すのも大変です よろしくお願いいたします。

  • エクセルでメッセージの表示について

    エクセルで教えてください。 セル(A1)と(B1)に数値を入力すると あらかじめ数式を入力してあるセル (A2)、(B2)に数式結果が表示するようにしています。 その数式結果が(A2)>(B2)の場合 『数値の確認必要』とメッセージが出るようにしたいのですが、 可能でしょうか? 教えていただけたらと思います。

専門家に質問してみよう