• ベストアンサー

excelでの足し算

こんにちは。 excelで、複数シートで大量の足し算を行なっており、シートを開くのに すごく時間が掛かってしまいます。 足し算自体は、単純なものですが、sum関数を使った場合と、+(プラス) 記号を使った場合では、どちらの方が処理が速く終わるのでしょうか? また、 =A1+A2 と =sum(A1:A2) と =A1+A2+A3 と =sum(A1:A3) で処理速度の違いはあるでしょうか? ご存じの方がいらっしゃいましたらご教授ください。

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

Excel2010です。 行の和 =SUM(A1:A100) B列も同じで計算式を2つ入れた。 と =A1+A2+A3+A4+A5+A6+A7+A8+A9+A10+A11+A12+A13+A14+A15+A16+A17+A18+A19+A20+A21+A22+A23+A24+A25+A26+A27+A28+A29+A30+A31+A32+A33+A34+A35+A36+A37+A38+A39+A40+A41+A42+A43+A44+A45+A46+A47+A48+A49+A50+A51+A52+A53+A54+A55+A56+A57+A58+A59+A60+A61+A62+A63+A64+A65+A66+A67+A68+A69+A70+A71+A72+A73+A74+A75+A76+A77+A78+A79+A80+A81+A82+A83+A84+A85+A86+A87+A88+A89+A90+A91+A92+A93+A94+A95+A96+A97+A98+A99+A100 B列も同じで計算式を2つ入れた。 で、100万回の再計算を5回させて、時間を計りました。私の環境で、各回とも22~23秒で、ちがいは1秒以内で差はほとんどありませんでした。5回の計算とは別にやったとき17~18秒という結果が出た時もありました。 SUM関数と+でつないだ式の間には差はありませんでした。 列の和 =SUM(A1:CV1) 行2も同じで、計算式を2つ入れた。 と =A1+B1+C1+D1+E1+F1+G1+H1+I1+J1+K1+L1+M1+N1+O1+P1+Q1+R1+S1+T1+U1+V1+W1+X1+Y1+Z1+AA1+AB1+AC1+AD1+AE1+AF1+AG1+AH1+AI1+AJ1+AK1+AL1+AM1+AN1+AO1+AP1+AQ1+AR1+AS1+AT1+AU1+AV1+AW1+AX1+AY1+AZ1+BA1+BB1+BC1+BD1+BE1+BF1+BG1+BH1+BI1+BJ1+BK1+BL1+BM1+BN1+BO1+BP1+BQ1+BR1+BS1+BT1+BU1+BV1+BW1+BX1+BY1+BZ1+CA1+CB1+CC1+CD1+CE1+CF1+CG1+CH1+CI1+CJ1+CK1+CL1+CM1+CN1+CO1+CP1+CQ1+CR1+CS1+CT1+CU1+CV1 行2も同じで、計算式を2つ入れた。 で、100万回の再計算を5回させて、時間を計りました。私の環境で、各回とも17~18秒で、ちがいはは1秒以内で差はほとんどありませんでした。 SUM関数と+でつないだ式の間には差はありませんでした。 行の方がなぜ遅かったのかはわかりません。 SUM関数と+でつないだ式の間に差は見られませんでした。 また、Excel2003でも同様な結果でした。ただし、+でつなぐのは、30個までです。 時間計測VBA例 Sub test() For m = 1 To 5 t0 = Time For i = 1 To 1000 For j = 1 To 1000 Calculate Next Next t1 = Time Cells(m + 4, 5) = t1 - t0 Next End Sub

siragami2
質問者

お礼

わざわざ確認して頂きましてありがとうございました。 大変参考になりました。

その他の回答 (2)

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

SUM関数を使った方が早いですね。詳しくは次のURLを参考にしてはいかがでしょう。 http://msdn.microsoft.com/ja-jp/library/ff700515.aspx

siragami2
質問者

お礼

なるほど。参考になりました。ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

では試しに実際に,A1セルに 式1: =B1+C1+D1+ … CW1 という具合に100個のセルを足し算してみた場合と, たとえば 式2: =SUM(B1:CW1) という具合に100個のセルをまとめてSUMで合計する計算とで,掛かる時間を実測してみます。 すると式2の方が,式1の60%の時間で計算が終わるという結果になりました。 ただし。 だからと言って,たとえば 式3: =SUM(B1,C1,D1) だとか,ましてや 式4: =SUM(B1+C1+D1) のようにしたのでは全く高速化にならないので,注意してください。 式4は式1よりも(当然ですが)遅くなります。 式3は,単純には比較は難しいですが,式1とほぼ同じだけ時間が掛かります。

siragami2
質問者

お礼

わざわざ確認頂きましてありがとうございました。 同じsum関数を使うにも、関数に渡すパラメタによって演算速度に差が 生まれるのですね。 大変参考になりました。ありがとうございました。

関連するQ&A

  • エクセルの足し算(多くの数)

    エクセルデーターで足し算したいのですが、 SUM関数は足し算できる数はきまっていますか? 40個くらいSUMの中に入れると、「多すぎます」と 表示されます。 たくさんの数を足し算したい場合はどのようにしたらよいでしょうか?みなさんの情報お待ちしています。 よろしくおねがいします。

  • シート間の足し算

    いつもお世話になります。 EXCEL2000の計算式で困っています。 複数のシートの同一セルの足し算をします。 連続したセルならSUM(Sheet1:Sheet5!A1)で いけると思いますが、Sheet1、Sheet4、Sheet5 のみを足す時の簡単な計算式が在りましたら 教えて下さい。 宜しくお願い致します。

  • EXCELで足し算できるのにSUMできない

    EXCELシートなのですが、+A+Bなど足し算だとちゃんと計算してくれるのに、+sum(A:B)だと式は正しいはずなのに、答えがゼロになってしまいます。 これはどのあたりを調整すればいいのでしょうか?

  • エクセルで条件付き足し算

    エクセルの使い方に関する質問です。 ある範囲にある複数のセルを足し算(もしくはSUM関数を使って合計)したいと思います。 そのとき、入っている数値が条件を満たしている(例えば0以上とか)セルの合計値を出す方法はあるでしょうか? マクロを使わずにすむ方法でお願いします。 <例> 1 -5 10 -5 20 31=0以上のものだけの合計値 ↑ この値の出し方

  • エクセルでの条件付足し算(関数)について

    エクセルで、次の条件付き足し算をする場合の関数を教えてください。 シート A1=100 A2=50 B1=10 B2=0 の時、Aの列の足し算の時は、100+50となりますが、今回、B列を参考にし、A列は、B列が0以上の場合は、足し、0以下の場合は足されないようにするには、どのような式にしたらよいでしょうか。 お願いします。

  • エクセルの足し算の関数について

    エクセルの足し算の設定について質問です。 とてもシンプルな計算式で、あるセルに、仮に =A + B + C という 足し算を設定しようとしています。 Aは、計算結果を入れようとしているセルと同じシートにある別のセルとイコールで結びます。 BとCは、他のシートにあるセルを参照しようとしています。 参照先のセルは、複数のセルを結合したもので、 =B1 + B3 + B5 + B7・・・・といったような少し長めの足し算が入っています。 これで計算結果を反映しようとすると、#VALUE! エラーとなってしまいます。参照先のシートの構成などはできれば変えたくありません。 どのように直せばいいのでしょうか? 詳しい方ご教示お願いいたします。

  • Excel VBAの SUM関数について質問です。

    Excel VBAの SUM関数について質問です。 SUM関数で合計の値を出す場合、 SUM(A1:A5)という関数で合計を出しますが SUM(sheet2.cells(1,1),sheet2.cells(5,1)) と言ったようにCellsで指定はできないのでしょうか? 複数の列にVBAのプログラムで合計の値を出したいのです。 WorksheetFunction.SumではSUM(A1:A5)のように 自動計算にならないと思うので・・・

  • エクセル97の足算でなぜか「/」が入ってしう・・・・。

    エクセル97を使用しています。 日報を編集するため毎日新しいシートを作成し当日の合計と前日のシートの合計を足算するため「=B11+'2'!E11」と関数を打ち込むと計算はしてくれるのですが「100/」のように数字のあとにスラッシュが表示されてしまいます。 なんとかけしたいのですがどうしても消えません。 不思議なことに同様の計算を同じシートの中でしているのですが他のところはスラッシュは入りません。 なんでもよいので考えられることがあったら教えてください。

  • エクセルの足し算について

    エクセルの足し算について質問をしたいのでよろしくお願いします。 A1からA15までに毎日の時間外労働時間(1)を60とか137とか307等と入力しました。A16に=SUM(A1:A15)という関数を入力し 合計を表示させました。 次にB1からB15までに毎日の時間外労働時間(2)を160とか107とか207等と入力しました。B16に=SUM(B1:B15)という関数を入力し 合計を表示させました。 次に、A17に=TEXT(A16/(60*24),"[h]時間mm分")と入力しA16の合計を、●●時間■■分というように表示しました。 次に、B17に=TEXT(B16/(60*24),"[h]時間mm分")と入力しB16の合計を、●●時間■■分というように表示しました。 ここまでは問題は無いと思うのですが、A17とB17を合計させて、C17に●●時間■■分という具合に表示させたく =A17+B17や=SUM(A17:B17)と記述したところ、#VALUEと表示されてしまいます。 また方法は忘れてしまったのですが、インターネットで検索したら出てきたのですが、そのようにやったところ0と表示されるような こともありました。 原因がわからずに困っております。 どなた様か、ご教示の程よろしくお願いします。

  • エクセルで困っています。

     エクセルのことで困っているので教えてください。  例えばですが、表を作って、セルA5にSUM関数を入れ、セルB5にドラッグでコピーすると、そのままA5の式の結果の数値(A1からA4の足し算の結果)がコピーされてしまいます。式自体は正しくコピーされているようで、その後B5セルを選択して「f2キー」を押し確定すると、正しい数値(B1からB5の足し算の結果)が出てきます。特に自分で変な操作をした覚えは無いんですが、保存しておいたいくつかのワークシートでこのようなことが起こります。これを解除するにはどのようにしたら良いのでしょうか?

専門家に質問してみよう