• ベストアンサー

空白セルを検索するときのスピードロスについて

エクセル2010を使っております。 VLOOKUP関数の検索スピードについて伺います。 1行から1000行までを検索対象範囲とすると、そのうちの500行から1000行までが空白だったとしても、1行から499行までを検索するときの倍の時間、メモリの負担がかかりますか? よろしくお願いいたします。

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

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

Excel2010で検証してみました。 A列とB列のすべての行にデータを入力し、VLOOKUP関数で列全体(100万行以上)を指定して、完全一致の引数の数式を1000個以上入力して検索したところ、検索値がある場合は、結果がすぐに表示されて、再計算時間に大きな差がみられませんでしたが、検索値がない場合、すなわち#N/Aエラーが表示されるときは、再計算にかなりの時間がかかりました。 このエラーが出る条件で、データ数を100行程度にしても、再計算時間に差がないことから、データ範囲を多く指定した数式が悪影響を及ぼしていると思われます。 同様に完全一致型のMATCH関数でも、データ範囲を大きく指定すると、#N/Aエラーが表示されるときは、再計算に時間がかかり、データそのものを削除しても違いはみられませんが、数式のデータ範囲を小さくすれば、瞬時に再計算されました。 これらのことから、完全一致の検索系の関数では、データ範囲を必要以上に大きくしないほうが無難なような気がします。 具体的な対応策は、テーブルの機能を利用して、項目名でその範囲を名前定義すれば(数式タブの「範囲から作成」で「上端行」にチェック)、その項目名を範囲として数式に使用するとデータの追加に対して自動的にデータ範囲が拡大されます。

qazxcvfr4
質問者

お礼

ありがとうございます。 検証させてしまってごめんなさい。 参考になりました。