Excel (エクセル) 学習室 / KENZO30

Excel(エクセル)学習室 HOME


エクセル中級 仮番3-2-1

中級・特別編トップへ

   中 級 仮番 3-2-1(暫定番号)

Excelの基礎

  検索条件とバージョンによる検索結果の違いについて

 

 

検索条件とバージョンによる検索結果の違いについて

バージョンによる検索結果の相違

Criteria(クライテリア)の検索条件をワークシート上へ作る場合、エクセルのバージョンによって仕様?が異なることが判明しました。フィルターオプション特別編11参照)を使う場合も、全く同じ取り扱いになりますので注意してください。
多くの方がエクセル97、2000、2002、2003のどれかを使っていると思いますが、2002と他のバージョンは仕様?が異なるようです。(ちょとだけ、エクセルの管理人 atiboh さんの情報提供により判明)

 

 

完全一致のデータを求める場合

エクセル97、2000、2003

まず、ちょっと間違いやすいミスから紹介します。
下図は、エクセル2003で DSUM関数を使って担当者「塚田」の契約数計を求める意図で作ったものですが、意図した答えが求められていません。


図では、答えが61となっています。
意図した答えは、15+18で33なのです。図の61は、「塚田」、「塚田山」、「塚田下」の契約数を合計したものになっています。

 


(画像:Win XP&Excel2003)

なぜ「塚田」のみを集計しないのでしょうか?それは、Criteriaの条件を単純に、「塚田」としたことにあります。エクセルのヘルプを読むと、リストのデータを抽出する注意点として次のように書かれています。

検索条件として文字列を入力すると、その文字列ではじまるデータがすべて検索されます。たとえば、検索条件として「岡」と入力すると、"岡本"、"岡田"、"岡崎" などが検索されます。指定した文字列に完全に一致するデータだけを検索するには、「="=文字列"」という数式を入力します。

よってこの場合、担当者「塚田」の契約数計を求めるには、Criteriaの条件を「="=塚田"」とすべきなのです。

次図は、このヘルプに基づき正解を求めたものです。


このように、Criteriaの条件を
="=塚田"」とすれば、正しい答えを求めることができます。15+18で33が求められています。

セルに ="=塚田" と入力すると、表記は図のように =塚田 になります。数式バーには、="=塚田" と表示されます。注意してください。

(画像:Win XP&Excel2003)

このように、Criteriaの条件をヘルプのとおりに設定すれば正解を求めることができます。エクセル97、2000、2003でも同じです。また、フィルターオプションを使う場合も共通ですから同じように設定します。

 

エクセル2002の場合

さて、問題はエクセル2002です。2002では、はじめにミスとして紹介した「塚田」で検索しても、きちんと担当者「塚田」のみの契約数計を求めるのです。他のバージョンと異なり、「="=文字列"」とする必要がないのです。


左図は、エクセル2002で検証した結果です。
「塚田」で検索しても、15+18で33が求められています。

 

 

(画像:Win 2000&Excel2002)

では、2002のヘルプにはどのように書かれているかというと、全く他のバージョンと同じように、完全一致のデータを求めるには「="=文字列"」で検索するように記載されています。つまり、ヘルプの記載と実際とが異なるというわけです。これをバグと呼ぶべきかどうか?仕様?と呼ぶべきか判断しかねます。
ただし、2002でも「="=文字列"」で検索することは可能です。

 

 

検索文字列ではじまるすべてのデータを求める場合

この問題は、もうひとつの問題を抱えています。
はじめにミスとして紹介したとおり、エクセル97、2000、2003では、検索条件「塚田」で塚田ではじまるすべてのデータを検索します。ワイルドカードの「*」(アスタリスク)を使う必要がありません。
ところが、エクセル2002では、下図のように必ずワイルドカードを使わないと求めることができません。(ワイルドカードについて ワンポイント編 編集NO2 Q7 参照)


左図では、ワイルドカードの「*」(アスタリスク)を使って、「塚田」、「塚田山」、「塚田下」の契約数を求めています。

 



(画像:Win 2000&Excel2002)

なお、この場合もエクセル97、2000、2003で、ワイルドカードの「*」(アスタリスク)を使えば、同じ結果を求めることができます。

 

 

問題点の整理

これ等の問題は、バージョンによって検索条件による検索結果に違いが出るため、検索条件の作り方に注意すればよいというだけではありません。企業によっては、バージョンを混在して使用しているところもあります。このような場合、同じ結果が求められないケースが出てくるのです。

  • エクセル2002で「="=文字列"」とせず、「文字列」のみで完全一致のデータを求めたファイルを、エクセル97、2000、2003で使用する場合

  • エクセル97、2000、2003でワイルドカードを使わず「文字列」のみで文字列ではじまるすべてのデータを検索したファイルを、エクセル2002で使用する場合

この2つのケースでは、同じ結果を求めることができません。注意が必要です。

さらに、バージョンを混在して使用するには、注意しなければならないことがあります。エクセルは仕様によって、下位のバージョンで作成したファイルを開く時、再計算して開きますが、上位のバージョンで作成したファイルは自動的に再計算をしないで開くのです。再計算キー「F9」を押しても再計算しません。つまり、2002で作ったファイルは、97や2000では再計算しないで開くため、ここで取り上げている問題点に気が付かないことがあるのです。ただ、データを再入力すると再計算しますので、確かめてください。

 

 

問題を回避するための対策

では、これ等の問題を回避するにはどうすればいいでしょうか。

  • 完全一致のデータを求める場合
    バージョンを問わず、「="=文字列"」で検索するようにする。

  • 検索文字列ではじまるすべてのデータを求める場合
    これもバージョンを問わず、ワイルドカードの「*」(アスタリスク)を使う。

こうすれば、バージョンを混在して使用しても問題は起こりません。すでに、使っているファイルがあれば、このように修正することをお勧めします。

 

 

   先頭へ戻る   

 

中級・特別編トップへ

Excel(エクセル)学習室 HOME


KENZO30 内容の無断転載は、禁止しています