エクセル内で別シートから情報を読み込んで集計シートに反映させているのですが読み取り項目を15列100行から15列640行に増やしたら処理速度がとんでもなく遅くなってしまいました。今はいない人が作ったものをいじっただけだったのでよくわからずやってしまったところもありどうしたらいいのか教えてください。
列
B8:=VLOOKUP(操作画面!C6,INDIRECT("Sheet1!A10:DO100"),操作画面!E6,FALSE)
C8:=VLOOKUP(操作画面!C7,INDIRECT("Sheet1!A10:DO100"),操作画面!E7,FALSE)
D8:=VLOOKUP(操作画面!C8,INDIRECT("Sheet1!A10:DO100"),操作画面!E8,FALSE)
~
P8:=VLOOKUP(操作画面!C20,INDIRECT("Sheet1!A10:DO100"),操作画面!E20,FALSE)
行
B8:=VLOOKUP(操作画面!C6,INDIRECT("Sheet1!A10:DO100"),操作画面!E6,FALSE)
B9:=VLOOKUP(操作画面!C6,INDIRECT("Sheet2!A10:DO100"),操作画面!E6,FALSE)
B10:=VLOOKUP(操作画面!C6,INDIRECT("Sheet3!A10:DO100"),操作画面!E6,FALSE)
~
B683:=VLOOKUP(操作画面!$C$6,INDIRECT("Sheet676!A10:DO100"),操作画面!$E$6,FALSE)
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
突っ込みどころが多過ぎてどうしたものやら……
VLOOKUP関数自体が処理を重くする原因に繋がります。列の範囲が多い
場合は INDEX/MATCHに切り替える方が少しだけましです。
もっと処理を速くしたいなら 絶対一致検索自体を止めて データを昇順に
並び替えた上で近似値検索×2にした方が良いです。
次に INDIRECT関数は論外です。この関数は TODAYや RANDなどと同じ
で結果が常に揮発します。大量に入れると全く関係ないセルを編集しても
いちいち再計算がかかります。なので基本的には1つたりとも使わないの
がベストです。真っ先に見直すべきはここです。
INDIRECTや OFFSETは条件付き書式や入力規則以外では使わないものと
思っておいた方がいいくらいです。
その上で範囲をテーブル書式にして構造化参照にすれば無駄が省けます。
いちいち範囲を指定するのも無駄なので。
もっというならそもそも シートを大量に1ブックに入れるような作り方
からして見直すべきです。検索のデータは一元管理が基本中の基本です。
おそらく修正するのも難しいくらい重くなっているでしょうから まずは
自動計算を手動にしてから 数式を見直すのがいいかと思います。
No.3
- 回答日時:
これは、様式の同じデータシートをSheet1~Sheet676という名前で、同じbookに入れて、
❶そのbookの中に操作画面というシートを作ってあって、その操作画面というシートの(C列とE列に)、
❶-1 Sheet1~676のA列にある値の中で検索する名前をC列に、
❶-2 その検索できた名前のある行の中で引き出す数値などの値があるはずの列位置をE列にいれておいて
❷別途、質問文に記載されている数式があるシートも、同じbookにあって、そのシートのイメージが画像で
(この画像では、Sheet1~Sheet676があるようには見えないけれども)
6行目には Sheet1からの検索結果を横に並べて表示する
7行目には Sheet2からの検索結果を横に並べて表示する
8行目には Sheet3からの検索結果を横に並べて表示する
| |
676行目にはSheet671からの検索結果を横に並べて表示する
ということでしょうか。
試しに、800枚のシートのそれぞれに、10~100行×A~ET列に文字データを入れて、似たようなことをしてみました。
一応動きます。
ですが、800枚のシートのそれぞれに、10~100行×A~ET列に数式で値が出るようにしたら、処理時間がとんでもないことになりました。
これは、EXCELが自動的に全部のシートの全部の数式を再計算しなおしているからなので、
この自動的に再計算するのを止めてしまうと、処理時間が大幅に短縮されることもあります。
その方法は、 https://next.rikunabi.com/journal/20180401_s01/
ただ、目的によっては、別の方法の方がイイケースもあります。
もともと、Sheet1~~に数式がなくて、データの値だけが入っているようにしておけば、
操作画面というシートや、結果をだすためのシートのB8:P700に検索用の数式が入っていても、それほど処理時間は懸からないと思います。
もしも、Sheet1などのデータを他の処からコピーしてくるのであれば値だけを貼り付けるとか、データや数式を貼り付けた後でもそのシート全体をコピーしてから値の貼付をすれば、できます。
https://www.excelspeedup.com/ataiharituke/
なお、別件ですが、【結果を出すためのシート】がただの縦横表の様にみえます。 ということから想像すると、画面操作シートのC列やE列のデータのどちらかは何か規則性があるか、同じデータが続いているように思えます。
もしも、そうならば、操作画面シートの作り方を変更して、それに合わせて、【結果を出すためのシート】の数式も直すと、使いやすくなるかもしれません。(たぶん処理速度は実感に出るほどの差はでないけれど)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル 指定セル繰り返しマクロ 4 2022/06/06 17:08
- マウス・キーボード real vnc viewer で遠隔先で操作が出来ない。 2 2023/07/24 15:00
- Excel(エクセル) エクセル VBA実行中のApplication.ScreenUpdatingについて 3 2023/07/13 21:06
- YouTube youtubeは画面と操作パネルが別々に表示されていたのに画面上にかぶるように表示されるようになった 1 2022/05/08 10:04
- その他(パソコン・周辺機器) win11でオフィス11のエクセルについて 1 2022/07/31 19:52
- Safari(サファリ) インターネットの画面を左右に寄せて閲覧する方法を教えてください 1 2022/05/18 21:03
- Safari(サファリ) iPhoneのSafariで動画を全画面表示で見ている時、右上の音量調節バーを操作しようとするとコン 1 2022/09/30 21:10
- その他(OS) パソコン BIOS Utility から起動しない 1 2022/07/31 18:12
- iPad iPad で Apple Pencil を使いメモアプリで文字をキーボードから打ち込みたいのですが描 2 2022/10/05 20:49
- その他(暮らし・生活・行事) 画面割れしたんですけど、画面割れしたのが画面の下の方なのに、画面の上半分がタッチ操作出来ないんです。 1 2022/08/05 16:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】ファイル名の変更に...
-
Aというブックの1というシート...
-
エクセルで 例えば 伊藤と名前...
-
Excelで、決まった行を繰り返し...
-
エクセルの条件付き書式につい...
-
エクセルで「-0.0」と表示さ...
-
【マクロ】毎回、ファイル名が...
-
Excel元に戻す方法を教えてくだ...
-
【マクロ】シート名を取得する...
-
Excel2013のF6キー操作について
-
excel で二つのどちらかを選ぶ
-
Excelでの時間帯の入力
-
Excel 2019 のピボットテーブル...
-
【マクロ】フォルダからエクセ...
-
マクロの有効化するダイヤログ...
-
行数が不規則な一週間ごとの合...
-
エクセルで特定の範囲内から小...
-
ある列、或いは、ある行のセル...
-
シートAで横に並んだ項目→シー...
-
Excelが固まってしまった。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報
ちなみに列や行は毎回全部使うわけではなく5列10行といった毎回異なる使用をします。