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

解決済みの質問

エクセルで別シートからの合計を表示させたいです。

1ファイルの中に12Sheet作成し、別Sheetで集計表示させたいのですが、IF関数で作成すると、次のようになります。もっと簡単にすることは可能でしょうか?お教えください。
=IF(E21=入力用フォーム!$I$5,SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$5,'16-7'!$Y$10:$Y$59),IF(E21=入力用フォーム!$I$6,SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$6,'16-7'!$Y$10:$Y$59),IF(E21=入力用フォーム!$I$7,SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$7,'16-7'!$Y$10:$Y$59),IF(E21=入力用フォーム!$I$7,SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$7,'16-7'!$Y$10:$Y$59),IF(E21=入力用フォーム!$I$8,SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$8,'16-7'!$Y$10:$Y$59),IF(E21=入力用フォーム!$I$9,SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$9,'16-7'!$Y$10:$Y$59),IF(E21=入力用フォーム!$I$10,SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$10,'16-7'!$Y$10:$Y$59),IF(E21=入力用フォーム!$I$11,SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$11,'16-7'!$Y$10:$Y$59),F(E21=入力用フォーム!$I$12,SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$12,'16-7'!$Y$10:$Y$59),0)))))))))

投稿日時 - 2017-04-05 10:49:56

QNo.9313604

困ってます

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

訂正。

=IF(COUNTIF(入力用フォーム!$I$5:$I$12,E21)>=0,SUMIF('16-7'!$C$10:$C$59,E21,'16-7'!$Y$10:$Y$59),0)

ではなく

=IF(COUNTIF(入力用フォーム!$I$5:$I$12,E21)>0,SUMIF('16-7'!$C$10:$C$59,E21,'16-7'!$Y$10:$Y$59),0)

でした。または

=IF(COUNTIF(入力用フォーム!$I$5:$I$12,E21)>=1,SUMIF('16-7'!$C$10:$C$59,E21,'16-7'!$Y$10:$Y$59),0)

でも構いません。

投稿日時 - 2017-04-05 11:37:56

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

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

回答(7)

ANo.7

ifの頭で改行してみました。
3つ目と4つ目のIF文が重複しています。
最後のif文のIが抜けています。

投稿日時 - 2017-04-09 16:31:14

合計用シートのセルに"="を入力して、個別シートの小計セルをクリックする。
これを12シート分実行。
合計用シートで12セルを合計する。

投稿日時 - 2017-04-06 04:53:27

ANo.5

回答No.4の数式に誤りがありましたので訂正します。

=SUMIF('16-7'!$C$10:$C$59,E21,'16-7'!$Y$10:$Y$59)

=IF(COUNTIF(入力用フォーム!$I$5:$I$10,E21),SUMIF('16-7'!$C$10:$C$59,E21,'16-7'!$Y$10:$Y$59),0)
E21と同じ値が入力用フォーム!$I$5:$I$10に見つからないとき0を返す必要があるのを見落としていました。

投稿日時 - 2017-04-05 15:43:18

ANo.4

提示の数式(IF関数の多重入れ子構造)を点検した結果では単純なSUMIF関数に置き換えできるように感じます。
=SUMIF('16-7'!$C$10:$C$59,E21,'16-7'!$Y$10:$Y$59)
理由、
=IF(E21=入力用フォーム!$I$5,SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$5,'16-7'!$Y$10:$Y$59),・・・・
IF関数でE21と比較している入力フォーム!$I$5とSUMIF関数で比較値となる入力用フォーム!$I$5が同じですからSUMIF関数の比較値をE21に置き換えて良いことになります。
E21と同じ値が'16-7'!$C$10:$C$59に見つからないときは0が返りますので、IF関数も不要と思います。

投稿日時 - 2017-04-05 14:19:04

ANo.2

>もっと簡単にすることは可能でしょうか?

可能です。

まず

IF(E21=入力用フォーム!$I$5,SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$5,'16-7'!$Y$10:$Y$59),~~

の部分ですが、E21と入力用フォーム!$I$5が同じ値なら、SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$5,'16-7'!$Y$10:$Y$59)を計算しています。つまり

IF(E21=入力用フォーム!$I$5,SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$5,'16-7'!$Y$10:$Y$59),~~



IF(E21=入力用フォーム!$I$5,SUMIF('16-7'!$C$10:$C$59,E21,'16-7'!$Y$10:$Y$59),~~

のように書き換えできます。

すると、これ以降のすべてのSUMIF関数は、すべて「SUMIF('16-7'!$C$10:$C$59,E21,'16-7'!$Y$10:$Y$59)」で済んでしまいます。

つまり「E21と同じ値が、入力用フォーム!$I$5~$I$12の中に1つ以上あれば、SUMIF('16-7'!$C$10:$C$59,E21,'16-7'!$Y$10:$Y$59)に、無ければ0にする」と言う式で済むようになります。つまり

=IF(COUNTIF(入力用フォーム!$I$5:$I$12,E21)>=0,SUMIF('16-7'!$C$10:$C$59,E21,'16-7'!$Y$10:$Y$59),0)

で済みます。

投稿日時 - 2017-04-05 11:35:11

ANo.1

表示させたいSUMIF関数をIF関数に全て入れ子にしないで、別シートにそれぞれセルに
=SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$5,'16-7'!$Y$10:$Y$59)
=SUMIF('16-7'!$C$10:$C$59,入力用フォーム!$I$6,'16-7'!$Y$10:$Y$59)
というようにしてあげた後にIF関数で表示させたいものを出すんじゃダメでしょうか?
一つのセルでIF関数に多くの入れ子を作ってしまうとSUMIF関数の修正をしたい時に手間が増えるような気がします。
具体的な数値内容や表示方法がわからないのでこれぐらいのアドバイスしかできませんが・・・

投稿日時 - 2017-04-05 11:08:14