
数式の計算がかなり重くなったので、質問させていただきます。
{=SUM(IF(("日付条件"$R$6:$R$10000>=$A$148)*("日付条件"$R$6:$R$10000<=$A$149)*("検索条件1"$Q$6:$Q$10000=A151)*("検索条件2"$M$6:$M$10000>0),"合計範囲"$O$6:$O$10000,""))}
配列数式で上記のような数式が大量にセルにあります。
日付で範囲を指定し、検索条件1で合計させています。
DSUM関数で可能だと思いましたが、数式の条件をうまく指定出来ません。
A列に検索条件1のデータが30個程入力されています。
日付範囲のデータは適当なセルに入力してあります。
上記の数式をDSUM関数にした場合、どのような数式になるでしょうか?
ちなみにDSUM関数で処理した場合、動作は軽くなるでしょうか?
どなたかご教授ください。
No.1ベストアンサー
- 回答日時:
まず、"日付条件"、"検索条件1"、"検索条件2"、"合計範囲"
となっていますが、シート名のことでしょうか?
具体例など挙げてください
とりあえず回答してみます
=($R$6>=$A$148)*($R$6<=$A$149)*($Q$6=A151)*($M$6>0)*$O$6:$O$10000
を6行目の作業セルに貼り付け
10000行まで下へオートフィル
合計を出す。
計算速度はぜんぜん違います。
No.4
- 回答日時:
こんにちは。
>DSUMの使い勝手は思ったより悪いですね。
これらの関数が出現した理由はあるのですが、近年、あまり使われなくなってしまいました。SUMPRODUCTは、この場合は、配列を引数としますから、現在の数式と同じような問題が発生するはずです。
ここでは、SUMIF を利用するのか一番かと思います。
言い換えると、DSUM 関数のクライテリアになる数式を
=AND(R6>=$A$148,R6<=$A$149,Q6=$A$151,M6>0)
空いた列に、データの最後の行までコピーして、SUMIF の条件に、TRUE, FALSE の出ている列を代入して、計算してあげます。
=SUMIF(数式の範囲,TRUE,合計する範囲)
とすればよいと思います。VBAのユーザー定義関数を作ったとしても、配列数式よりも、10倍ぐらい計算は遅いです。
No.3
- 回答日時:
こんばんは。
ご質問の配列数式は、Excel2003でも、Excel 2007 でも、無理があります。
データがあちこちあると、数式をまとめにくくなりますが、DSUM を使うということは、フィールド行(タイトル行)が必要です。
M$6:$R$10000 これが、データの範囲なら、これに、その手前の行、つまり5行目にフィールド行を付けて、その範囲「M$5:$R$10000」を、「Database」という名前登録をしてください。
=DSUM(Database,"フィールド名",B1:B2) 'フィールド名は、任意
クライテリア部分は、1行目を空欄にするのがコツです。
クライテリア部分(B1:B2)は、
B1 は、空欄
B2 に 以下のような数式を入れます。
=AND(R6>=$A$148,R6<=$A$149,Q6=$A$151,M6>0)
A151 は、絶対参照にしてください。相対参照では、正しい答えが出ないはずです。この数式は、非常に微妙な部分がありますから、規則正しく入力しないと、うまく出せません。A151 の部分が、相対参照になるという根拠があるなら、この限りではありません。
なお、この種のものは、オートフィルタやフィルタオプションを使う方法もあるかと思います。
Wendy02さん
ご回答ありがとうございます。
ご指摘の通り作成して、動作確認できました。
DSUMの使い勝手は思ったより悪いですね。
SUMIFとSUMPRODUCTの計算スピード(使い方にもよると思いますが)
あまり変わらないものなのでしょうか?
No.2
- 回答日時:
No.1です
ちょっと修正
=($R$6>=$A$148)*($R$6<=$A$149)*($Q$6=A151)*($M$6>0)*$O$6
>上記のような数式が大量にセルにあります。
どのくらいあるのでしょう?
この回答への補足
ご回答ありがとうございます。
数式がわかりづらくてすみません。
sheet2にある数式でsheet1を参照しています。
"日付条件"、"検索条件1"、"検索条件2"、"合計範囲"
は検索条件です。
{=SUM(IF((sheet1!$R$6:$R$10000>=$A$148)*(sheet1!$R$6:$R$10000<=$A$149)*(sheet1!$Q$6:$Q$10000=A151)*(sheet1!$M$6:$M$10000>0),sheet1!$O$6:$O$10000,""))}
数式はこのような状態です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル 条件に合う日付に入力された時間数の合計したい 4 2022/06/17 22:18
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Excel(エクセル) 【!】Excel 2つの条件付き書式が反映されません。。 5 2023/07/14 16:47
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- Excel(エクセル) エクセルの関数で質問です。 3 2023/02/24 14:07
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- Excel(エクセル) 条件付書式 Sheet1からSheet2に転記した時の転記ミスを反映させたい 5 2022/05/21 09:52
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
エクセルの循環参照、?
-
【関数】同じ関数なのに、エラ...
-
【マクロ】列を折りたたみ非表...
-
【マクロ】【配列】3つのシー...
-
【マクロ】アクティブセルの時...
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】EXCELで読込したCSV...
-
【条件付き書式】シートの中で...
-
【マクロ】3行に上から下に並...
-
【マクロ】オートフィルターの...
-
【マクロ】A列にある、日付(本...
-
vba テキストボックスとリフト...
-
エクセル
-
【エクセル】期限アラートについて
-
Excel 複数のセルが一致すると...
-
【マクロ】WEBシステムから保存...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報