• ベストアンサー

累計の計算とその表示について

各セルに次のようなデータがあり、D列に累計を出してゆきます。   A B C   D 1 20 30 50  累計 2 10 20 30 3 どのセルにもデータなし(データはなくても行は必要です。) 4 15 25 35 累計を出してゆくとデータのないセルがにも累計が表示されます。書式のユーザー設定で非表示に出来ることは分かったのですが、この表を使うのは私だけではないので、関数を使って出来ればと思い、IF関数にandやorなどの組み合わせで考えましたができませんでした。どういうやり方がよいのでしょうか。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.5

    A   B   C   D   E 1  項目1 項目2 項目3 合 計 累 計 2   20   30   50   100   100 3   10   20   30   60   160 4 5   15   25   35   75   235 上のような表を想定すると、 D2セルには =IF(COUNT(A2:C2)>0,SUM(A2:C2),"") E2セルには =IF(COUNT(A2:C2)>0,SUM($D$2:D2),"") として、下にコピーします。 入力を厳しくチェックしても意味がないかもしれませんが、 D2を =IF(AND(A2="",B2="",C2=""),"",SUM(A2:C2)) のような式にしておくと 文字やスペースを入力するとSUMを計算してしまいます。

takkuni
質問者

お礼

知識がお粗末で絶対指定のところがピンと来ませんが、お陰様でご指摘の通りやってうまくいきました。 ありがとうございました。

その他の回答 (4)

  • jindon
  • ベストアンサー率43% (50/116)
回答No.4

ひょっとして"累計"ということは、D列の累計ですか? C列に数値がある最終行のD列に"累計"を表示 D1: =IF(ROW()=LARGE(IF($C$1:$C$500<>"",ROW($C$1:$C$500),""),1),SUM(A$1:C1),"") Ctl + Shift + Enter で確定 はずれているかも....

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

考えるとおりに式にして、D1セルに =IF(AND(A1="",B1="",C1=""),"",SUM(A1:C1)) D2以下にD1のセルの式を複写する。

takkuni
質問者

補足

済みません。あわてていたため質問を間違えました。 ご指摘頂いた方法で横方向(D列)の合計は求めており、問題ありません。質問は累計の方です。 E列に累計を求めていきたいのですが、普通にやると空白行にも累計額が表示されてしまいます。このデータがない空白行の累計の値を非表示にしたいということです。 if関数で0や””を使うと空白行の次の計算から累計額がリセットされてしまいます。#1さんや#2さんにもご迷惑をお掛けしましたが、引き続きお知恵拝借お願いします。

  • nitto3
  • ベストアンサー率21% (2656/12205)
回答No.2

必要がなければブランクにしてしまえばいいです。 セルに数字が入った時は計算するならいIF関数で出来ます、=IF(sum(a3:c3)=0,"",sum(a3:c3))かな。

  • beer55
  • ベストアンサー率33% (7/21)
回答No.1

お晩です。 配列数式です。 D1=IF(A1:C1<>"",SUM(A1:C1),"")と入力 Shiftキー+Ctrlキー+Enterキーを押して確定してください 配列数式については下記のURLを参照してください

参考URL:
http://pc21.nikkeibp.co.jp/special/hr/

関連するQ&A

  • 入力がないのにユーザー定義で定義した文字列が常に表示されてしまう。

    入力がないのにユーザー定義で定義した文字列が常に表示されてしまう。 VLOOKUP関数とIF関数を組み合わせて「=IF(A1="","",VLOOKUP(A1,D2:C5,2,FALSE))」という関数を入力しています。 念のため申し上げますと、 VLOOKUP関数で「D2:C5」の表からデータを検索し、そのデータに該当した行の指定列からデータを取り出しているわけです。 IF関数は、「#N/A」エラーを表示させたくないためです。 この計算式を入力しているセルの書式設定を、ユーザー定義で、「"○""○""○""○""○""○""○"@」としたのですが、 A1セルに入力が無く入力の無いはずのセルに「○○○○○」が常に表示されてしまいます。 どこが間違っているのでしょうか? お知恵を拝借させてください。

  • 累計を出していきたいのですが…

    エクセルのA列に次のようにデータが入っています。  1  2  3  □  4   5  □  □  6  7  続く…(□は空欄を表す) B列にA列データの累計を出していきたいのですが、 A列のセルが空欄の場合は、B列のセルも空欄にしたいのです。 関数・数式をどのように組み合わせればエラーを出すことなく処理出来るでしょうか?

  • エクセルで小計の累計

    エクセル2007で、10行毎の小計行の下に累計行、その下に10行毎の小計行、その下に累計行 というように累計をだしていきたいと思っています。 途中の数行(小計行、累計行も含んだ)を削除することが多く、そうすると、数式がエラーになって 計算できなくなってしまいます。 N行おき 小計 累計 という感じで検索して MOD関数やROW関数を使ってみましたが、途中の行を削除するとうまくできません 途中の行を削除しても数式がエラーになることなく答えがでるようには無理でしょうか... 詳しい方どうか教えてください よろしくお願いします。 B列には項目C列には計算したい数字がはいっています 3行目から12行目までデータがはいっていて、 C列の13行目:3行目から12行目までの小計 C列の14行目:累計 C列の3行目から12行目までの合計 15列目から24行目までデータがはいっていて、 C列の25行目:15行目から24行目までの小計 C列の26行目:累計 C列の14行目+C列の25行目 26行目以降も100行目くらいまでデータと小計、累計のデータがあるのですが   A、  B、   C 3 NO.1、りんご、10 4 NO.2、みかん、11 ・ ・ ・ 12 NO.10、ばなな、10 13 小計       37 14 累計       37 15 NO.1、りんご、3 16 NO.2、みかん、10 ・ ・ ・ 24 NO.10、ばなな、10 25 小計       40 26 累計       77 ・ ・ ・ 15から26行目を削除するとその次の累計の行がエラーになってしいます マクロとかそういったものを使わないと無理でしょうか... もしできたらすごく助かります。同じようなシートが何枚もあるので..

  • Excelでの累計

    C列に、=SUM($B$1:B1) の式です。(下へ続く) 上記の式で、A列は上から下へ日付が続きます。 毎日の累計を出すのですが、入力する数字が無い時は、その日は、 c列に累計を表示したくない場合は、どのようなIF関数になるのでしょうか? また、一年分、日付のみ最初に作成すると、一年先まで、入力終了時点での累計が表示されてしまいます。 このような場合、例えば、数日後まで、入力を終えて、その数日後は、c列は、表示しないIF関数はあるのでしょうか? ご存知の方、よろしくお願いします。

  • EXCELの関数について教えてください。

    EXCELの関数について教えてください。 A列のセルに「18:00 」or 「18:30」 or「19:00」 or「19:30」と入力するとB列のセルに「8:00」と表示され、「17:30」と入力すると「7:00」と表示される方法を教えてください。 セルの書式の表示形式は「文字列」ではなく「時刻」に設定したいです。 多分IF関数をつかうを使うのではないかと思うのですが、書式が「時刻」のためかうまくいきません。 よろしくお願いします。

  • ユーザー定義で定義した文字列が常に表示されてしまう(再質問)

    ユーザー定義で定義した文字列が常に表示されてしまう(再質問) 前回質問で、当方の説明がうまくできませんでしたので、 改めてこちらにて質問させて頂きます。 ご回答くださった方には、この場を借りてお詫びいたします。 まず、やろうとしていることですが、例文にて説明します。 「A1:1」「B1:お茶」「C1:数値入力セル」「D1:結果出力セル」 「A2:2」「B2:食事」「C2:数値入力セル」「D2:結果出力セル」 「A3:3」「B3:買物」「C3:数値入力セル」「D3:結果出力セル」 このようなリストがあります。 VLOOKUP関数を使って、 C列の「数値入力セル」に、A列の「1.2.3」のどれかの数値が入力されると C列の結果出力セルには、入力された数字によって 「C1:お茶or食事or買物」 「C2:お茶or食事or買物」 「C3:お茶or食事or買物」 と、表示させたいわけですが、 さらに、C列には「書式設定のユーザー定義」で、値が入力されると入力された値と一緒に 「C1」には「新宿で」と・・・したがって出力結果は「新宿で お茶or食事or買物」 「C2」には「渋谷で」と・・・したがって出力結果は「渋谷で お茶or食事or買物」 「C3」には「池袋で」と・・・したがって出力結果は「池袋で お茶or食事or買物」 このような組み合わせを各セルに表示させたいと思っているわけです。 「D1」セルに入力した数式は「=IF(C1="","",VLOOKUP(C1,A1:B3,2,FALSE))」 「D2」セルに入力した数式は「=IF(C2="","",VLOOKUP(C2,A1:B3,2,FALSE))」 「D3」セルに入力した数式は「=IF(C3="","",VLOOKUP(C3,A1:B3,2,FALSE))」 「D1」セルの「書式設定のユーザー定義」は「"新""宿""で"@」 「D2」セルの「書式設定のユーザー定義」は「"渋""谷""で"@」 「D3」セルの「書式設定のユーザー定義」は「"池""袋""で"@」 以上、このようにしたところ 「C1」「C2」「C3」の各セルに入力が無いのに、 「D1」「D2」「D3」の各セルには、常に「○○で」が表示されてしまいます。 以上ですが、よろしくお願いいたします。

  • エクセルでの入力作業

    エクセルの表で、複数行、複数列のデータ入力を行う場合、 列違いや行違いのミス入力を防ぐため、入力するセルを基準に列や行を確認できるようなことがしたいのですが。 要するに、表をものさしを当てて欄を確認しながらデータ入力できるようなことがしたいのです。 関数の組み合わせや、条件書式等でそのようなことはできないでしょうか?

  • エクセルの関数を使ってランキングをつけています

    ある表を元に、ランキングをつけています 元になる表は B列 C列 D列 E列 担当者名 本日売上 今月累計 先月累計 Aさん 10000円 100000円 90000円 Bさん 9000円 90000円 80000円 Cさん 8000円 80000円 70000円 ~続く という風になっています ランキングの表は S4セルに「10」と入力し、書式設定で上位10位までを表示としています R列 S列 T列 順位 担当者 今月累計 1 Aさん 100000 2 Bさん 90000 3 Cさん 80000 4 5 6 7 8 9 10 となっています それぞれのセルに関数が入っていて、 R列には、=IF($S$4>=ROWS(R$7:R7),ROWS(R$7:R7),\"\") S列には、=IF($R7<=$S$4,OFFSET($B$3,MATCH(T7,$D$4:$D$54,0),0),\"\") T列には、=IF(R7<=$S$4,LARGE($D$4:$D$54,$R7),\"\") となっています これで今まではうまくいっていたんですが、 同じ数値がある場合に、ランキングの表に 同じ名前の人が2つ表示されたりしてしまいます。 原因を調べているのですが、わからなくて、 さらにIF関数を入れて何かしら指示をしなければいけないのかなと 思っているのですが、、すみません、 急いでいるので意味のわからない文章になっているかもしれませんが、 どなたか「これでは?」というひらめきがありましたら お手数ですがご指導お願い致します。

  • Excel フィルタした値をセルに表示する関数

    図のような表をつくり、表にはテーブル書式を設定しています。 B列で社名でフィルターをかけると、C列、D列の数値の集計は、SUBTOTAL関数(109)で行っており、フィルターをかけた最終行にその集計数値が表示されます(下部画像のようになる)。 ついでに、B列の最終行に、フィルターをかけた値(ここでは文字列の"あいう会社")を表示させたいのですが、どの関数を使えばよいのかわかりません。 フィルターに使った文字列を抽出する関数、 あるいはフィルタした値は常にB列の上から2行目にくるので、 これを参照してB列の最終行のセルに表示させる方法 はあるでしょうか?

  • エクセルのif文関数の複数条件時の記述について

    こんにちは。 エクセルのif文関数についての質問です。 添付画像にあるように、データがあるとします。 このエクセルは、ABCの行それぞれのデータに対応して、 A行、B行、C行それぞれのデータのうち、ひとつでも1000を超えるデータがあれば 判定のセルに1を表示するというものです。 この場合、今まではH4のセルに =IF((OR(C4>1000,D4>1000,E4>1000,F4>1000)),1,0) と入力していました。 今までは例のようにデータの列が4つほどなので問題なかったのですが、 データの列が60列となり、上記のようなIF文では処理できなくなってしまいました。 (条件が30個を超えるとエクセルからエラーがでます) この場合上記のIF文をもっと簡潔に、 列が増えても問題ないような関数に置き換えるには どのような関数を入力すればいいでしょうか。 皆様よろしくお願いします。

専門家に質問してみよう