• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル 条件付きの合計を速くできないか)

エクセルで条件付きの合計を高速に計算する方法

このQ&Aのポイント
  • エクセルで条件付きの合計を求める際に、時間を短縮する方法を教えてください。
  • A列から最大99、B列から最大ZZ、C列から最大999までのデータで、D列の合計を求めたい場合、
  • SUMPRODUCT関数を使用して○、×、△の合計をそれぞれ求めることができます。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

一般的にSUMPRODUCT関数のような配列を扱う式やCOUNTIF関数などを多数のセルに入力した場合は、再計算に時間がかかります。 そもそも、すべての組み合わせの合計を表示する必要があるのでしょうか? 目的によりますが、それらのデータから何か計算をしたいような場合は、複雑な数式になるという欠点がありますが、補助列を使うのではなく、できれば1つの式にしたほうがメモリーの消費も少なくPCに負荷をかけません(特にエクセル2007で数万行に数式を入力するような場合)。 ちなみにエクセル2007をご使用ならSUMIFS関数を使えば、かなり改善されるのではないかと思われます。 ある程度の改善を期待したいなら、数式に使用するデータ範囲に名前を付けて、すべての数式を(セル参照ではなく)その名前で入力するようにしてみてください。 また、一覧を表示したいのであれば、ページフィールドにA列、行フィールドにB列、C列、データフィールドにD列、列フィールドにE列を配置するのが見やすい一覧リストが作成できます。

viyamin
質問者

お礼

回答ありがとうございます。 >>そもそも、すべての組み合わせの合計を表示する必要があるのでしょうか? おっしゃる通りなのですが、残念ながら元データがまずいため、 すべての組み合わせの結果と別のデータの結果を比較して、 どちらを採用するか判定しなければならない事情があります。 エクセルは2000ですが、データを加工して、sumif関数を 使ってみたら少し速くなった気がします。

その他の回答 (3)

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

最も計算速度の速い方法はできるだけ単純な計算で行うことです。高度な関数を使った場合にはどうしても遅くなります。そのためには多少の作業列を設けて対応することでしょう。 例えば次のようにします。 F1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(AND(A1<>"",B1<>"",C1>0),A1&B1&C1&E1,"") そこで結果の表示ですが例えばH1セルにA列データ、I1セルにB列データ、J1セルにC列データ、K1セルに○、L1セルに×、M1セルに△とそれぞれ入力します。 2行目以降には検索したいデータの組み合わせをH列からJ列に入力します。 K2セルには次の式を入力してM2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTA($H2:$J2)=3,SUMIF($F:$F,$H2&$I2&$J2&K$1,$D:$D),"") 最初の式の入力には多少時間がかかりますが、計算速度はかなり速くなると思いますね。

viyamin
質問者

お礼

回答ありがとうございます。 かなりの改善が見られました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

EXCEL2007ならCOUNTIFS関数の使用をお勧めします。 01でAで001から999のうち○の合計 =COUNTIFS(A:A,"01",B:B,"A",C:C,">=001",C:C,"<=999",D:D,"○") 01でBで001から999のうち○の合計 =COUNTIFS(A:A,"01",B:B,"B",C:C,">=001",C:C,"<=999",D:D,"○") 99でZZで001から999のうち○の合計 =COUNTIFS(A:A,"99",B:B,"ZZ",C:C,">=001",C:C,"<=999",D:D,"○") EXCEL2007以前ならピボットテーブルを使った方がよさそうですね。

viyamin
質問者

お礼

回答ありがとうございます。 エクセル2000になります。

noname#204879
noname#204879
回答No.1

》 …のデータが入っています データが入っている範囲の行数は?

viyamin
質問者

お礼

回答ありがとうございます。 エクセルに入る最大の行数になります。

関連するQ&A