- ベストアンサー
エクセルで別シートからの合計を表示させたい!簡単な方法はある?
- エクセルで1ファイルの中に12Sheet作成し、別Sheetで集計表示させたい。しかし、IF関数を使用すると非常に冗長な式になる。もっと簡単な方法はあるのか?
- エクセルで1ファイルの中に12Sheet作成し、別Sheetで集計表示させたい。しかし、IF関数を使用すると式が非常に冗長になるため、よりシンプルな方法を教えてほしい。
- エクセルで1ファイルの中に12Sheet作成し、別Sheetで集計表示させたい。しかし、IF関数を使用すると式が長くなりすぎる。もっと簡単な方法はないのか?
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
訂正。 =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) でも構いません。
その他の回答 (6)
- chayamati
- ベストアンサー率41% (260/624)
- hoso890723456
- ベストアンサー率5% (1/17)
合計用シートのセルに"="を入力して、個別シートの小計セルをクリックする。 これを12シート分実行。 合計用シートで12セルを合計する。
- bunjii
- ベストアンサー率43% (3589/8249)
回答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を返す必要があるのを見落としていました。
- bunjii
- ベストアンサー率43% (3589/8249)
提示の数式(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関数も不要と思います。
- chie65536(@chie65535)
- ベストアンサー率44% (8741/19839)
>もっと簡単にすることは可能でしょうか? 可能です。 まず 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) で済みます。
- yuki_0330
- ベストアンサー率16% (4/24)
表示させたい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関数の修正をしたい時に手間が増えるような気がします。 具体的な数値内容や表示方法がわからないのでこれぐらいのアドバイスしかできませんが・・・