
お世話になっております。
今回、7000行~10000行程度のデータを集計するEXCELシートを作成しています。
元データは
取引先CD 社名 分類CD 分類名 売上 粗利 在庫
001 A社 001 A 1200 120 1440
001 A社 002 B 1000 100 1200
001 A社 003 C 2000 200 2400
001 A社 004 D 300 30 360
001 A社 005 E 1500 150 1800
001 A社 006 F 200 20 240
002 B社 002 B 5000 500 6000
002 B社 004 D 10 1 12
003 C社 006 F 2200 220 2640
005 E社 005 E 100 10 120
のように会社別・分類別の売上・利益・在庫データです。
通常であれば、集計表を作るにはSUMIF関数で十分なのですが、
実際のデータは数千行あり、また項目ももっと多岐にわたるため、
再計算に時間がかかってしまいます。
(Celeron1.2Ghz、メモリ512MB位のノートPCで再計算に2~3分要します)
SUMIF以外の方法で処理を軽くすることはできないでしょうか。
VBAを使って軽くなるのであればVBAでもかまいません。
ちなみに元データをいじることはできません。
(定型でシステムから出力されるデータであるため)
申し訳ありませんが、ご教示いただければ助かります。
No.3ベストアンサー
- 回答日時:
No1です。
もしデータが取引先CD 或いは 社名順ならば
=SUM(INDEX(E:E,MATCH("001",A:A)):INDEX(E:E,MATCH("001",A:A,FALSE)))
といった関数が使えます。
SUM関数ですが範囲をMACTH関数で指定するものです。
MATCH関数で、最後にFALSEを指定するかしないかで、最初の行と最後の行が指定できます。
昇順に並んでいる事が条件です。SUMIF関数とは違って配列を使用しないので、非常に軽くなります。
具体的な解決策をありがとうございます!
元データを貼り付ける手順をVBAで組んでいますので、
その時に取引先CD順にソートするようにしてみます。
ぜひ試してみたいと思います。
ありがとうございます!
No.5
- 回答日時:
こんばんは。
数千行程度で、そんなに遅くなるはずはないので、何か別の要因があるような気がしますが、もともと、そのようなために、データベース関数が昔作られました。データベース関数は、計算データの取得の仕方が違いますから、列をフルに使っても大丈夫なように作られています。ただ、使い方の細かな説明が、Microsoft サポートだけにしか出ていないような気がします。
なお、配列数式では、SUMIFよりは遅いはずです。
お恥ずかしい話、データベース関数は今まで使ったことがありません。
DSUMなどを試してみたいと思います。
ありがとうございます。
No.4
- 回答日時:
こういう
データが多量
仕事関係(即時性が要求される)
正確が要求される課題(関数、VBAは自作すると、データが多い場合、なかなかほぼ間違いないとはいえないものだ)
などの場合は、出来るなら、専用にプログラムが組まれている
ピボットテーブルを使うべきです。
たとえれば「カンナとのみ」(関数)と木工機械(特別ツール)とぐらいの差があると思います。道具を選ばないと。
ーー
VBAなら
会社+分類別にソートし(どれぐらい時間がかかるかな?)たら、他に、初めから終わりまで1通り読む時間で集計できます。
ロジックとしては、バッチ処理の定石なんですが、ここにコードを書くことは、課題丸投げのコードを作ってくださいに応じることになるので、省略します。
おっしゃる通り、道具は選ぶべきですが、
現状の使い方を考えると関数で組むことがベストかと思いました。
VBAで集計処理を入れることも検討してみたいと思います。
まだまだVBAは勉強中なので、今後の課題とさせていただきます。
ご回答ありがとうございました。
No.2
- 回答日時:
>会社別・分類別の売上・利益・在庫データです。
>通常であれば、集計表を作るにはSUMIF関数で十分なのですが、
>実際のデータは数千行あり、また項目ももっと多岐にわたるため
どのように集計しているのでしょう?
どのような式になっているのでしょう?
(SUMIF関数で出来ているのかな)
現状がわからないので
>SUMIF以外の方法で処理を軽くすることはできないでしょうか。
についての回答もしづらいですね
説明が悪くて申し訳ありません。
実際には元データは2シートあります。
当年と前年のデータです。
これらを合わせて複数のシートに集計したいのです。
シートは会社別となっており、
縦に分類、横に売上・粗利・在庫 がそれぞれ当年・前年と来る形です。
集計にはすべてSUMIFを使っておりますが、
1つのシートに1,000個以上のSUMIF関数が入っており、
さらにこのシートが会社別に複数あると、
すさまじい量の計算になります。
これを少しでも早くしたいのですが、
なにか良い方法はないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 会計ソフト・業務用ソフト Excelで売上げデータの中の任意の商品の合計を出したい 3 2023/01/18 18:19
- Excel(エクセル) エクセルで年月ごとの売り上げを集計する方法を教えてください 7 2022/06/01 17:06
- その他(Microsoft Office) ピボットテーブルへの集計フィールド挿入 1 2023/02/26 11:33
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Visual Basic(VBA) VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。 6 2023/06/25 11:37
- その他(IT・Webサービス) 高速処理可能な表計算ソフトについて ExcelやGoogleスプレッドシートのような表計算ソフトで、 2 2023/04/29 16:06
- Excel(エクセル) エクセル 条件に合う日付に入力された時間数の合計したい 4 2022/06/17 22:18
- 中途・キャリア 契約社員で在職中ですが、正社員目指して転職活動中です。 20代半ばの男です。 2社から内定を頂きまし 5 2022/04/29 13:39
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
何回やってもうまくいかないことは?
みなさんには、何回やってもうまくいかないことはありますか?
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
あなたの人生で一番ピンチに陥った瞬間は?
これまでの人生で今振り返ると「あの時、1番ピンチだったなぁ...」という瞬間はありますか?
-
今から楽しみな予定はありますか?
いよいよ2025年が始まりました。皆さんには、今から楽しみにしている予定はありますか?
-
SUMIFに変わる(代用)数式を教えてください
Windows 7
-
Excel関数,SUMIFの代わりになるもの
Excel(エクセル)
-
【Excel】 SUMPRODUCT関数の高速化
Excel(エクセル)
-
-
4
特定のシートのみ再計算させない方法は?
Excel(エクセル)
-
5
INDIRECT関数の代替方法は?
Excel(エクセル)
-
6
2003にSUMIFSがなくて困っています。
Excel(エクセル)
-
7
ExcelのVBAでGoToの代わりに…
Excel(エクセル)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
10
SUMIF関数で、「ブランク以外を合計」を指定したい
その他(Microsoft Office)
-
11
ApplicationとWorksheetFunctionの違い
Visual Basic(VBA)
-
12
リンク先のファイルを開かなくても、値が読み込めるようにできますか?(SUMIFSを使ってます)
Excel(エクセル)
-
13
条件に一致する最終行の値をエクセル関数で抽出する方法
Excel(エクセル)
-
14
Countifよりも早く重複数をカウントする方法ありますか?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
バーコードリーダーの読込デー...
-
メモ帳(テキストデータ)をExc...
-
ユーザーフォームのテキストボ...
-
【エクセル】測定時間がバラバ...
-
カンマからスラッシュに
-
リングバッファって何ですか
-
ブレーカー落ちで壊れたりしな...
-
データ取得時のエラーに関して
-
この行は既に別のテーブルに属...
-
プログラミング python pandas ...
-
アクセス2000で画像データ...
-
二分探索の平均探索回数
-
エクセルで2つの時系列のデー...
-
CSVデータ(5.8MB)を高速読み...
-
VBA 空白セルを削除ではない方...
-
Excel VBAでのオートフィルター...
-
EXCELVBAでSQLserverからデータ...
-
チェックサムとCRC
-
ExcelVBAでデータ不一致のもの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
VBA 空白セルを削除ではない方...
-
メモ帳(テキストデータ)をExc...
-
配列でデータが入っている要素...
-
ブレーカー落ちで壊れたりしな...
-
特定のデータの抽出方法を教え...
-
EXCELVBAでSQLserverからデータ...
-
エクセルで2つの時系列のデー...
-
VBAを使ってOutlookメール本文...
-
Accessで該当データにフラグを...
-
この行は既に別のテーブルに属...
-
[C言語] コメント文字列を無視...
-
ユーザーフォームのテキストボ...
-
二分探索の平均探索回数
-
Excel VBAでのオートフィルター...
-
多量のSUMIF式を軽くしたい
-
カンマからスラッシュに
-
CString型の文字列連結について
-
C# でDataTableの更新を高速化...
おすすめ情報