• ベストアンサー

IF関数についてです

エクセル初心者です。 わかりづらかったらすいません。 たとえば A1*B1の結果をF1へ。 C1+D1+E1の結果をG1へ。 で、F1+G1の結果をH1へ。 という表を作っています。 で、結果が0の時に空白を返したいので、それぞれを IF(A*B=0、””、A*B)として、 IF(C1+D1+E1=0、””、C1+D1+E1)としています。 最後にF1+G1の結果も0、もしくは空白の時に空白を 返したいのですがどのように数式を入れればよいのでしょうか。 自分なりにいれてみましたがエラーがでてしまいます。 よろしくお願いいたします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

例えばH1セルに次の式を入力しているとします。 =IF(F1+G1=0,"",F1+G1) この式でエラーが出るというのはF1セルやG1セルに数値以外の文字列などが入力されている場合です。 空のセルに見かけ上なっていてもスペースなどが入っている場合にもエラーが表示されます。 そこでそれらの問題を無くすためには上の式を次の式にすることです。 =IF(SUM(F1:G1)=0,"",SUM(F1:G1)) この場合にはセルに文字列が入力されていたとしてもエラー表示となることはありません。 G1セルへの入力の式も次のような式にした方が間違いがないでしょう。 =IF(SUM(C1:E1)=0,"",SUM(C1:E1)) また、F1セルへの入力の式もスペースが含まれている場合や文字列などが入力されている場合にはエラーが表示されますね。 通常はそんなことの無いようにデータ入力の段階で注意しますので =IF(A1*B1=0,"",A1*B1) の式で良いのですがスペースなどが含まれるセルが想定される場合に、エラーの表示を無くすためには例えば次のようにします。 =IF(COUNT(A1:B1)<>2,"",IF(A1*B1=0,"",A1*B1)) この式の意味はA1とB1のセルに数値が入力されていなければ(COUNT関数が2以外の場合は)、空のセルにし、またA1とB1を掛けた値が0ならば空白のセルとします。そうでない場合にはA1とB1セルの値を掛けた値を表示しなさいということです。

High-Life
質問者

お礼

 ありがとうございました。 早速試してみます。

その他の回答 (2)

  • KEIS050162
  • ベストアンサー率47% (890/1879)
回答No.2

条件式を入れても解決出来そうですが、面倒なので、もしすべてのセルの計算結果についても、0を空白と表示するということでよろしいのであれば、 オプションメニュー⇒表示タグ⇒ゼロ値のチェックを外すをやってみてください。 こうすれば、その他の計算式に、いちいちIF文を使わなくても良いです。 例: IF(A1*B1=0,"",A1*B1) を 単に A1*B1 とする。 ご参考に。

High-Life
質問者

お礼

ありがとうございます。 早速試してみます。

  • erimochic
  • ベストアンサー率14% (51/363)
回答No.1

F1またはG1が空白(つまり0)だとエラーになりませんか? なのでH1に私が次のようにやったところうまくいったのでどうでしょうか? =IF(F1<>"",IF(G1<>"",F1+G1,""),"")

High-Life
質問者

お礼

早速試してみます。 ありがとうございました。

関連するQ&A

  • エクセルのROUND処理について教えて下さい。IF関数で条件指定

    詳しい方、教えて下さい!! エクセルで見積書を作成していて、素人ながら一応数式を入力して金額 が算出できるようにしています。その中で、ROUND処理をIF関数で条件 を指定した中で異なる桁数の数字に行いたいのですが、どうすればよい か分からず試行錯誤しています。 つまり、    A  B  C   D     E    F    G 1  1.0 式 空白 106,300 80% 85,000  85,000 2 89.0 m 1,900 169,100 80%  1,500 133,500 というデータで、 Cのセルには=IF(OR(A1=1,A1="",F1=""),"",ROUND(F1/E1,-2)) Dのセルには=IF(OR(A1="",E1=""),"",IF(A1=1,ROUND(F1/E1,-2),A1*C1)) Gのセルには=A1*F1 の数式の結果がそれぞれ入っています。 見積として客先に提出するため、Aのセルが1の場合はCのセルを空白に してDのセルにのみ数式の結果が出るようにしたいのです。 が、F1のセル(5桁)とF2のセル(4桁)のように数値の桁数が違う場合 に、四捨五入を行う桁数をそれぞれにF1=-2、F2=-1とする方法が分から ず困っています。桁数が違う場合には手入力で四捨五入の桁数を変えれ ばよいのでしょうが、それだと手間がかかる上に桁数の変更を忘れてし まうことがあり、間違いのもとなので、間違いにくい方法で数式を組み たいのです。 詳しい方、解決方法があれば回答お願い致します。

  • 【関数】エクセルでの時間の計算

    いつもお世話になっております。 エクセルでの時間の計算に関する質問です。 下記のような30行ぐらいの表があり、A,B,C,D列は手打ち、E,F,G列は関数が入力されています。 この場合D2は空白ですが、両方に15ずつ入力されている場合もあります。  A  B  C D    E     F        G 8:00 8:30 30 _ =(B2-A2)*24 =(C2+D2)/60 =IF(E2=F2,"〇","×") 結果、判定をしたいG列が〇になったり×になったりしますが、それがなぜなのか教えてください。

  • エクセルでIFとANDを使った関数について教えて下さい

    A B C D E F G 1 1 2 3 結果 2/3 2/4 2/5 2 2/3 2/4 2/5 合格 0 0 1 3 上記のような表を作成しようとしています。条件が、 D1が「合格」で、 C2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じなら「1」、 違うなら「0」、 B2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じで尚且つ、 C2が「空欄」なら「1」、違うなら「0」、 A2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じで尚且つ、 C2が「空欄」で、B2が「空欄」なら「1」、違うなら「0」 を返しなさい。 という関数を作りたいのですが、上手くいきません。 IFとANDを使えばいいと思うのですが、どのように組み合わせれば 良いでしょうか。 真を返す、優先順位は、C2、B2、A2、のセルです。 C2に日付が入ってるときはB2とA2に日付が入っていても カウントされないように(偽が入るように)したいのです。 ちなみに、最初は、 =IF($D2="合格",IF($C2=E$1,1,IF($B2=E$1,1,IF($A2=E$1,1,0))),0) と、入れてましたが、これだと、C2に日付が入った時にC2だけカウント したいのに、B2もA2もカウントされてしまいます。 どうか、良きアドバイスをお願いします!!

  • エクセル2007で%の平均値を求めたいのですが、うまくできません。

    エクセル2007で%の平均値を求めたいのですが、うまくできません。 AVERAGEやIFをいろいろ組み合わせてみたのですが、どうしても分からないので教えてください。   A   B    C    D    E    F    G   H 1 目標  6.44%  4.50%  3.77%  5.15%  2.66%  2.79%  式を入れたいセル 2 実績  5.07%  6.00%  4.85%                 A2~G2の平均値 A1~G1は、=(F3/G6)みたいな数式が入っていて、%で表示されています。 B2~G2は、最初は空欄で毎月B、C、D、E、Fと一つずつ%が入っていきます。 上記で、H1のセルに、下記の様な結果を表示できる式を入れたいのですが、何かいい方法はないでしょうか? ・B2~G2が空白の時はB1~G1の平均値 ・B2にだけ数字が入っていてC2~G2が空白の時はB1の数字 ・B2~C2に数字が入っていてD2~G2が空白の時はB1~C1の平均値 ・B2~D2に数字が入っていてE2~G2が空白の時はB1~D1の平均値 ・B2~E2に数字が入っていてF2~G2が空白の時はB1~E1の平均値 ・B2~F2に数字が入っていてG2だけが空白の時はB1~F1の平均値 ・B2~G2全てに数字が入っている時はB1~G1の平均値 どうかよろしくお願いします。

  • IF関数で可能でしょうか?

    例) A1  B1 ・・・F1 3 5 20 (1)A1<B1なら、C1/D1、でなければC1/E1 (2)C1/D1がF1なら○、でなければ×   C1/E1がF1なら○、でなければ× とG1に表示したいです。 また、エラー表示を避ける為ISERROR等ありますが、そちらもご教授していただけたら 助かります。 エクセル初心者でわかりにくい説明ですいません。

  • Excel関数と数式

    教えて下さい Excel2003で1ヶ月の表を作って使用量と残数を計算させようとしているのですが、上手く行きません下記に表の内容を記載しますので、簡単な計算方法を教えて下さい。 1日~30日   A  B  C  D  E  F  G  H  I  J  K  L  M 1 朝 10 11 14                    15 2 夕 15 22 18                     10 3 入   20 4 残    4  8                     3 残=B2-C1 M4=D2-M1 M4セルに休み(空白セル)を除いた数式を組みたいのです、IF関数を使ったのですが、上手く行きません。 何卒、ご指導宜しくお願いします。

  • EXCELのIF関数の入れ子について

    すみませんよろしくお願いします。 EXCELでセル(A1)~(L1)までに不特定の文字列が入力されており、(M1)に「もし(L1)が入力されていたら(L1)の値を表示、もし(L1)がブランクなら(K1)の値を表示、もし(K1)がブランクなら(J1)の値を表示、もし(J1)がブランクなら(I1)の値を表示・・・・」といった具合で関数を作成したいのです。また、(A1)~(L1)のセルで穴あき状態で入力されていた場合は最も(L1)寄りのセルを表示させたいです。 EXCEL2003のIF関数だと、 =IF(L2="",IF(K2="",IF(J2="",IF(I2="",IF(H2="",IF(G2="",IF(F2="",IF(E2="","",E2),F2),G2),H2),I2),J2),K2),L2) で最後の(A1)までの入れ子を作ることができせん。 EXCEL2007を使用すると、 =IF(L2="",IF(K2="",IF(J2="",IF(I2="",IF(H2="",IF(G2="",IF(F2="",IF(E2="",IF(D2="",IF(C2="",IF(B2="",IF(A2="","",A2),B2),C2),D2),E2),F2),G2),H2),I2),J2),K2),L2) と作成できます。 EXCEL2003で作成するいい方法はありますでしょうか? ご指南の程よろしくお願いします。

  • この場合の関数を教えてください。IF関数とCOUNTIF関数?

      A      B    C  D  F  G 1 12300 2 9800 3 14500 上記の様な表($a$1:$d$3) がある時、 B1 ◎      D1 △   F1◎     C2◎         F2△ B3△      D3◎ F1 に◎を入れた時に、 もし、A列の値が10000より大きいなら(注)、範囲$a$1:$d$3の◎の数を数え結果をG1に2と表示させたいです。(F2に△と入れたら2と表示) (注) 1行目は、12300(A1)なので1行目はカウントの範囲。 2行目は、9800で10000より小さいのでカウントの範囲から外れる。 3行目は、14500はカウントの範囲。 2行目の◎(C2)はカウントされないようにするには、 G1にどのようなCOUNTIFの関数を入れればよいのでしょうか? いつも教えているので、考えたのですが? =IF(A1>10000,COUNTIF($B$1:$D$3,F1),"0")では、間違いとは気づいたのですが? (A1>10000が間違い)どの様にして良いか解りません。 どなたか教えてください。宜しくお願いいたします。 (見にくい表で申し訳ありません)

  • RANK関数について

    エクセルでこんな感じの表があります。 A1■B1■C1■D1■E1■F1■G1■H1 12■13■23■66■93■89■72■29 ランク関数をつかってそれぞれの順位を出したいのですがうまくいきません。 数式には=RANK(A1,A1,C1,E1,G1,0)と入力してあります。範囲を指定する際にA1,C1,E1,G1のような、連続していないセルを指定しては、計算できないものなのでしょうか? どなたかご教授ください

  • if関数の書式ですが

    ロータスで使用していたif関数をエクセルに置き換えたいのですが、ロータスの@はエクセルで=は判ります。 以下の2つの書式で D4やH3の前についている+は何かの意味があるのでしょうか? 無くても良いような気がするのですが よろしくお願い致します @if(+D4+E4=0," ",D4*E4) @if(F4+G4=0," ",+H3+F4-G4)

専門家に質問してみよう