• 締切済み

入れ子式の関数(IF)を使って 「0」 を表示させない方法

パターン(1)⇒これならできます! --A-B-C-D-E-F 1-@-@-@-@-@ 2-@-@-@-@-@ 3-@-@-@-@-@ 4---------- 5-@-@-@-@-@ パターン(2)⇒行3のような飛び飛びのデータが入ると私の実力でできません --A-B-C-D-E-F 1-@-@-@-@-@ 2-@-@-@-@-@ 3----@-@-@- 4---------- 5-@-@-@-@-@ 上の表、わかりにくいと思いますが、F列にSUM関数でF1=IF(A1="","",SUM(A1:E1))とし、F1~F5まで連続コピーをして、A~Fまでが空白の行の合計を「0」表示させたくないのですが、パターン(2)のような場合、「A1="","",」のかわりにどの範囲を指定すれば、入れ子の関数を使って、F列に「0」表示させないことができるのでしょうか。 また簡単な違ったやり方はおありでしょうか。 説明がわかりにくいかもしれませんがよろしくお願いします。

みんなの回答

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

> F1=IF(A1="","",SUM(A1:E1))とし、F1~F5まで連続コピーをして、A~Fまでが空白の行の合計を「0」表示させたくないのですが =IF(A1="","",SUM(A1:E1)) ということはA1が空白なら空白に、そうでなければA1:E1の合計を表示という意味です。 A~Fまでが空白の行の合計を「0」表示させない式ではないですよ。 パターン(2)をみても何がなんだかわかりません。 ひょっとしてA~E列に一つでも空欄があれば何も表示させないということでしょうか? それならば =IF(COUNT(A1:E1)<5,"",SUM(A1:E1)) としてみてください。

mizuhogohe
質問者

お礼

=IF(COUNT(A1:E1)<5,"",SUM(A1:E1)) の使い道もありそうです。 知らなかったので、とても参考になりました。 ありがとうございました。

  • tadagenji
  • ベストアンサー率23% (508/2193)
回答No.2

無数な表現方法がありますが、 F1=IF(A1="","",SUM(A1:E1))を F1=IF(SUM(A1:E1)=0,"",SUM(A1:E1))ではいかが

mizuhogohe
質問者

お礼

ありがとうございました。 このやり方を知りかったです。 早速使わせていただきます。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 F列の範囲を選択→セルの書式設定→表示形式→ユーザ定義でG/標準;-G/標準;;@を設定すれば、IF関数は不要ですが如何でしょうか。

mizuhogohe
質問者

お礼

ありがとうございます。 このようなやり方知りませんでしたができました。 参考にさせていただきます。

関連するQ&A

  • 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関数により取り出した数値を計算する方法

    エクセル関数です。2つの数字の変化が A列  B列 100    1 103    1 109    1 120    1 105    -1 102    -1 120    1 123    -1 ・    ・ の時に,以下の2つの条件を満たす式を作る。(1)B列の数字を3行ずつ見てゆく。3行目までずっと1が続き,数字が変わらなければ(-1が出なければ)3行目のA列の数値(109)を取り出す。(2)数字を取り出してから次の3行目までの間でB列の数字が変わったとき(1→-1,-1→1)には,変わった行のA列の数値(105)を取り出す。次はB7なので120,次はB8なので123…と数字を取り出す度にリセットして,新たに3行の中から新しい数字を取り出す。 (頂いた回答) 3列使います。C4=IF((B3=B2)*(B4=B3)*(SUM(C$2:C3)=0)=1,1,0)。D4=IF(B4<>B3,1,0) E4=A4*(C4+D4)。 リセットする毎に,リセットした時点のA列の数字から取り出したA列の数字を引き算したいのですが,良い関数が思いつきません。

  • エクセルのMATCH関数について

    エクセルのMATCH関数についての質問ですが、どうしてもエラーが表示され悩んでいます。どうか教えていただければと思います。 たとえば下記のような場合なぜかエラーが発生してしまいますがどうしてでしょうか?      A列   B列   C列   D列   E列   F列 1行              A     B    A+B  戻り値 2行    2.0        1.0    1.2   2.2   2 3行    2.2        0.9    1.1   2.0   1 4行    2.4        1.1    1.3   2.4   #N/A 5行    2.6        1.0    1.4   2.4   3 使用している関数は、 E列2行 =C2+D2  F列2行 =MATCH(E2,$A2:$A5,0) E列3行 =C3+D3  F列3行 =MATCH(E3,$A2:$A5,0) E列4行 =C4+D4  F列4行 =MATCH(E4,$A2:$A5,0) E列5行 =C5+D5  F列5行 =MATCH(E5,$A2:$A5,0) です。ここでどうしても、F列4行にエラー値(#N/A)が発生してしまいます。どうしてでしょうか? E列4行とE列5行は同じ値にもかかわらず戻り値が違うのはどうしてでしょうか? また、不思議なことにE列4行に手入力で2.4の値を入力した場合は戻り値は3となり、正しい値を表示します。どうしてでしょうか? 以上、よろしくお願いします。

  • この場合の関数を教えてください。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が間違い)どの様にして良いか解りません。 どなたか教えてください。宜しくお願いいたします。 (見にくい表で申し訳ありません)

  • if関数について

    if関数についてどなたか教えてください。 ある二つの名簿があって、二つの名簿を照合して名寄せをしたいのですが、たとえば、A列の1行目から10行目まで、同じくB列の1行目から10行目まで氏名が入っているとします。A列とB列に同じ名前が入っていれば、C列に○印をつけるように関数を設定したいのです。自分なりに考えて、次のようにif関数を設定しました。・・・がうまく表示されません。エラーは出ませんので、関数としては成り立っていると思うのですが、○印が表示されません。どなたか間違いを指摘いただけませんでしょうか? C1のセルに次の関数を設定して、C10までコピーをしました。 if(A1=$B$1:$B$10,”○”,””) よろしくお願いいたします。

  • 複数条件のIFの入れ子の方法

    Excel2010です。 複数グループの判定条件を入れ子で記述したいのですがうまくいきません。 1グループでは次のようにできました。 =IF(OR(A5=1,B5=1,C5=1,D5=,1),A10,0) A5からD5のうちどれかが1ならA10に表示されているテキストを表示せよ。 2グループでは次のように記述しましたがうまくいきません。 =IF(OR(A5=1,B5=1,C5=1,D5=,1),A10,IF(OR(E5=1,F5=1,G5=1,H5=,1),A15,0) ) これが5グループまで続きます。とりあえず1グループずつ確認しているのですが2グループでうまくいきません。教えてください。

  • 関数式

    下記表の()内の数字を関数式で表示させる方法はありますでしょうか? city   A  B  C  D  E tokyo 1200 1300 1400 (C)(1300) osaka 2800 2300 2200 (A)(2300) kyoto 3500 4000 3400 (B)(4000) ============================== total 7500 7600 7000 D列 tokyoの行で一番数字の大きい名前(A,B,C)を表示したい。(この場合はCが出てくる) E列 total数字の一番大きい人(この場合はB)の各数字を表示したい。 解りずらい説明で申し訳ないのですが、、、どなたか解る方、方法をご伝授ください。

  • エクセル IF関数 初心者です。。

    A    B   C  D Aさん 9:00  1  9:00 Bさん 10:00 2  9:30 Cさん 11:00 3  10:00 Dさん 12:00 4  10:30 Eさん 9:00  1  9:00 A列氏名 B列時間 C列 B列IF関数 9:00からは1、10時からは2、 11からは3・・・ D列はC列のVLOOKUP関数 1=9:00、2=9:30、3=10:00・・・ そこでお聞きしたいのですが・・ A    B   C  D Aさん 9:00  1  9:00 Bさん 10:00 3  10:00 Cさん 11:00 4  10:30 Dさん 12:00 5  11:00 Eさん 9:00  2  9:30 IF関数を用いて IF(B1>=0.375),1,if(B1>=0.416666666666667),2,IF(B1>=0.458333333333333),3・・・ Eさんが2になるような数式がわかりません。 よろしくお願いします。。

  • エクセルのIF関数について

    エクセルのIF関数について質問をさせて頂きます。 現在、下記のような条件で抽出できる式を考えているのですが、 中々思うような式が思い浮かびません。 例えば、     A列  B列  C列  D列 1行目  111 2行目  222 3行目  333 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999 上記のようなシートがあったとして、     A列  B列  C列  D列 1行目  111       999 2行目  222       333 3行目  333   ○   123   × 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999   ○ 上記のように、例として C列の1行目に「999」と入力した場合、A列の9行目に「999」の数字があるので、その横のB列に「○」 C列の2行目に「333」と入力した場合、A列の3行目に「333」の数字があるので、その横のB列に「○」 C列の3行目に「123」と入力した場合、どこにも該当番号がないので、入力したC列の横、即ちD列の3行目に「×」を表示 要は、A列のどこかに該当数字があった場合にはその数字の横(B列)に「○」、どこにも該当数字が無い時には、入力した数字の横、D列に「×」を表示するような数式を考えています。 IF関数を使えばできるような気がするのですが、色々と試してみても中々うまくいきません。 下手な説明で分かり辛いかもしれませんが、どなたかご存知の方がいましたら、ご教授の程頂ければ幸いです。 どうぞ宜しくお願い致します。

  • エクセルで集計

    エクセルでの合計について教えていただきたいのです。 A1~A10000まで日付が、B1~B10000まで数値が入力されています。 B列の数値を50行ごとに合計し、C列に表示する方法。 現在は、sum関数で手作業です。 簡単に表示できる方法を教えてください。 また、C列に合計のある行をD列(D1・D2・D3・・・)、E列(E1・E2・E3・・・)、F列(F1・F2・F3・・・)に並べたいのです。(50行ごとに間引いて表示するような感じです) 現在は、=C50・=C100・=C150のように手作業です。 もっと多量のデータが入力されたシートもあります。また、100行ごと150行ごとなど合計行が違う場合もあります。 エクセル初心者です。 よろしくお願いいたします。

専門家に質問してみよう