フィルターしたい文字の検索

次のようなデータがあったとします。特定の列を、特定のデータだけで絞り込むには、オートフィルタが便利です。多くのExcelユーザーが愛用しているこのオートフィルターも、Excel 2010では拡張されました。



たとえば「住所」のオートフィルタ矢印ボタンをクリックすると、次のようなリストが表示されます。



[検索]というボックスが追加されています。ここに、任意の文字列を入力することで、下のリストに表示される候補を絞り込めるようになりました。




上図は"東京"で絞り込んだ結果です。[検索]ボックスに文字列を入力すると、基本的には「部分一致」と認識されるようです。たとえば、[検索]ボックスに"中"と入力すると、"中"を含む候補が表示されます。



そのまま[OK]ボタンをクリックすれば、フィルタが完了します。簡単になりましたね。




「名前」列を使って、もう少し詳細に見てみましょう。先に書いた通り、[検索]ボックスは基本的に「部分一致」と認識されます。では「○で始まる」や「×で終わる」と指定するには、どうしたらいいのでしょう。そんなときはワイルドカードを使います。「え?ワイルドカードって何?」という人は、自分で調べてください。ネットで検索すれば解説しているサイトが見つかるはずです。


ただ"田"だけを入力すると、これは「田を含む」と認識されます。

 
「田で始まる」と指定するには"田*"と入力します。
 

 
同様に「田で終わる」でしたら"*田"です。
 

 
「3文字の名前で、2文字目が田」は、"?田?"とします。
 

 
この[検索]ボックスは、数値を絞り込むことも可能です。
 

 
もちろん数値でも、ワイルドカードを使えます。
 

 
今までの[テキストフィルター]-[特定の値を含む]と似た機能ですので、これを多用していたユーザーには朗報でしょう。
 

 

 
ただし、数値データを対象にした[数値フィルター]では[特定の値を含む]が使えませんでしたので、数値を文字列のように絞り込むには、今回追加された[検索]ボックスが便利ですね。
 

 
この[検索]ボックスは、オートフィルタだけでなく、テーブルとピボットテーブルでも使用できます。
 
*や?を検索するには
 
データの中に「*」や「?」が含まれていて、これらの文字で絞り込むにはどうしたらいいでしょう。
 

 
普通に"*"や"?"を入力すると、ワイルドカードと認識されてしまいます。
 

 
Excelではこんなとき「~(チルダ)」を付けて指定します。これは、セルの検索や置換でも使えるテクニックです。
 

 
○○からを意味する「~」ではなく、半角の「~」です。「先頭から2文字目が"?"」は、"?~?*"とします。
 

 
最初の「?」はワイルドカードで、任意の1文字を表しています。次の「~?」は"?"という文字を指定したことになり、最後の「*」が「その後ろはどんな文字が何文字でも可」という意味になります。
 
ちょっとした不満
 
この機能、けっこう便利だと思います。できれば、正規表現とかAnd/Or指定ができたら、さらに強力だと思いますけど。
ただ、使っていて、ほんのちょっとだけ不満に感じた部分があります。Excel 2007から、オートフィルタで絞り込んでいるとき、オートフィルタ矢印ボタンにマウスポインタを合わせると、どんな条件で絞り込んでいるかがポップアップされるようになりました。
 

 
では、今回追加された[検索]ボックスを使って、「住所」が「中を含む」で絞り込んでみましょう。
 

 
ポップアップには「"横浜市中区, 東京都中央区, 東京都中野区"に等しい」条件で絞り込まれていると表示されます。確かにその通りなんですけど、私は「中を含む」で絞り込んだんです。少なくとも、そう意識して、それを目的に操作しました。確かに、その結果はポップアップされている通りなのですが、このポップアップ表示から、私が意図した「中を含む」という条件を導くことは難しいでしょう。
 
ええ、わかっています。今回の[検索]ボックス機能は、候補を絞り込むための機能で、ワークシート上のリストを直接絞り込むための機能ではありません。ですから、仕様的に間違っていないと理解しています。間違ってはいませんが、ユーザーとしては「中を含む」で絞り込んだという経緯を、どこかで確認したいです。たとえば、もう一度オートフィルタ矢印ボタンをクリックしたら、前回の[検索]ボックスが残っているとか。
 
今のままでも十分満足ですが、強いて不満をあげるのなら、そこんとこ、どうにかできませんかね?って感じです。

ダウンロードしたブックには警告が出ます

Excel 2010では、Webサイトからダウンロードしたファイルや、メールに添付されてきたファイルを開くとき、警告が出るようになりました。




[編集を有効にする]ボタンをクリックしないと、このブックを編集できません。

ちょっと気になるのですが、この状態ではリボンが表示されません。もしかしたら、テクニカルプレビュー版だからでしょうか。ただし、別にリボンが使えないわけではなく、ただ隠れているだけです。Ctrl+F1キーを押すと、リボンが表示されます。




リボンを表示してみると、ほとんどのボタンが操作不能になっています。よく見ると、この警告には[保護されたビュー]の文字が。なるほど、ユーザーが編集を有効にするまでは、保護しているんですね。あと、もうひとつ気になったのですが、このようにダウンロードしたファイルを開くとき、一瞬Excel 2010のロゴ画面が表示されます。起動するときに表示されるアレです。もしかして、Excelをもうひとつ起動しているのでしょうか。




ビンゴですね。プロセスをチェックしてみると、コマンドラインに「/Embedding」が付いています。




ダウンロードしたファイルを開くときは、もうひとつのExcelを、内部でいわゆるビュワーとして起動し、まずそのビュワーで表示してくれるようです。ビュワーで表示しているだけですから、もちろん自動実行マクロなどは起動しません。確認しましたが、VBEのプロジェクトエクスプローラにも存在しませんでした。

[編集を有効にする]ボタンをクリックすると、このビュワーが終了し、本来のExcelで読み込まれます。




開くブックにマクロが含まれているときは、この後でマクロを無効にした旨の警告が表示されます。

ダウンロードしたファイルを開くとき[編集を有効にする]ボタンをクリックすると、Excel 2010は、そのファイルを記憶して、次回開くときには確認を出しません。このへんの仕組みは、マクロ入りブックを開くときの動作と同じです。詳しくは「2回目からはマクロの警告しません」を、ご覧ください。

なぜダウンロードされたファイルだと分かるのか

ちょっと、Excel 2010の話とは違いますが、開こうとしたファイルがダウンロードされたものだと、なぜ分かるのでしょうか。そういえば、Excelで開くときに限らず、ネットからダウンロードしたファイルを開こうとすると、よく次のようなメッセージが表示されます。




Excelではなく、Windowsのレベルで、そのファイルがダウンロードされたものだと認識しているようです。この仕組みは、Windows XPのSP2で追加されました。WebにあるファイルをIEでダウンロードしたり、メールの添付として送られてきたファイルなどには「ZoneId」という印が付けられます。エクスプローラなどでファイルを開くとき、そのファイルに「ZoneId」が記されていたら、上のような警告が表示されます。

この印は、ダウンロードしたファイルの「Zone.Identifier」という名前のストリームに書き込まれます。書き込まれる値は

[ZoneTransfer]
ZoneId=3

です。3がWebを表す数値らしいですが、ネットで検索したところ、他の数値は記録されないらしいです。とにかく、このストリームに「ZoneId」が記されていたら、開くときに警告が表示されるわけです。なお、NTFSのストリームに関しては「NTFSのストリームを利用する」を、ご覧ください。

「ZoneId」が記録されているかどうかは、ファイルのプロパティで確認することもできます。エクスプローラなどからファイルのプロパティを開いて、一番下に「このファイルは他のコンピュータから~」と書かれていたら、それはダウンロードしたファイルです。




その右にある[ブロックの解除]ボタンをクリックすると、ファイルのZone.Identifierストリームに記録された「ZoneId」が削除されます。もちろん「ZoneId」を削除してしまえば、ファイルを開くときの確認や警告は表示されなくなります。

条件付き書式が微妙に変わった

条件付き書式が微妙に変わってます。

負の値がプロットされるデータバー

たとえば下図のような表で「増減」に対する条件付き書式を設定します。セルにデータバーだけを表示するやり方は、Excel 2007のレビュー「空のセルにデータバーを表示する方法」を、ご覧ください。





データバーを選択します。





実行すると次のようになります。





なんか普通で、どこが変わったの的に感じますが、実はExcel 2007では次のようになりました。





条件付き書式の設定画面で、最小値を手動で設定しても、マイナスの値もプラスと同じようにプロットされます。まぁ、これはこれで、このように表示したいケースもあるでしょう。





Excel 2010の[書式ルールの編集]ダイアログボックスには、データバーを設定しているとき[負の値と軸]ボタンが追加されました。





クリックすると、マイナスの値をプロットするための設定項目が表示されます。一部(てか、ほとんど)表示が英語のままなのは、テクニカルプレビュー版だからでしょうね。ここでは、マイナスの値用バーの色とか、0の位置に表示する軸などを設定できます。





たとえば、軸をセルの中心にすると、次のようになります。





まぁ、条件付き書式のデータバーをよく使う人で、マイナスの値をこのようにプロットしたかった方には朗報でしょう。
よかったですね。

最小値の自動判定が変わった

次のようなデータを例にします。





まず、Excel 2007で設定してみましょう。





別に、これでもいいんですけど、もしこれが100点満点のテストだとしたら、田中さんの82点って評価低すぎませんか?これは、データバーの最小値を自動取得するとき、Excel 2007では「範囲に含まれる最小値」が採用されているからです。もし、データバーの長さを100点満点で表すのなら、最小値を自分で設定しなければなりません。詳しくは「データバーの長さを変更する方法」を、ご覧ください。

Excel 2010では、上に書いたように、データバーでマイナスの値をプロットできるようになりました。それに伴って、最小値の自動判定も変わっています。





Excel 2010では、選択範囲にマイナスの数値が存在しないときは、最小値を0にします。もしマイナスの数値が存在した場合は、最も小さい数値を最小値とします。

ここまで書いて、ふと疑問が生じました。Excel 2007でデータバーを設定したブックを、Excel 2010で開いたらどうなるのでしょう。さっそく、やってみました。





Excel 2007の通りに表示されました。では、別のセルに同じ数値を入力して、同じデータバーを新たに設定してみましょう。









この仕様変更って、かなり問題があるように思います。Excel 2007で作成したブックにデータバーが設定されていたとき、そのブックをExcel 2010で開いても、Excel 2007仕様のデータバーが表示されます。Excelのバージョンが変わっても、データバーは同じように表示されるわけです。これは、いいですね。

しかし、そのブックに新しいデータを入力して、Excel 2010で条件付き書式のデータバーを設定したら、Excel 2010の新しい仕様で表示されます。セル内の数値は同じであっても、データバーの結果が異なってしまいます。ビギナーは、この違いの原因に気づくでしょうか。最初に設定されていたデータバーは「Excel 2007で設定されていた」ということを、ユーザーは覚えておかなければならないのでしょうか。おそらく、ビギナーは混乱して「データバーの長さが違います!私のEXSELは壊れてしまったのでしょうか?それともウィルスですか?Windowsを再インストールしても直りません!バグですか?」などと、Q&Aサイトに投稿することでしょう。

もちろん、違いを見つけることは可能です。条件付き書式のルールを確認すると、次のように違います。

【Excel 2007で設定したデータバー】




【Excel 2010で設定したデータバー】




実は、Excel 2010のデータバーでは、最小値と最大値の設定に[自動]という項目が追加されています。Excel 2007で設定したデータバーも、最小値と最大値を[自動]にすれば、新しい仕様でデータバーが表示されます。しかし、何かあるとすぐにバグだとかウィルスだとか疑うビギナーが、こんな設定に気づくとは思えません。





Excel 2010で新しいデータバーを追加し、保存して閉じます。そのブックを今度はExcel 2007で開いてみましょう。Microsoftお得意の"共同作業"で、こうしたケースは日常茶飯事のはずです。





ありゃりゃ・・・(^^;

アイコンを個別に指定できる

条件付き書式のアイコンセットも、設定項目が増えています。









Excel 2007のアイコンセットは、その名の通りセットされたアイコンを指定するしかできませんでした。矢印とフェイスマークを混在することは不可能だったんです。まぁ、それでも別に不自由は感じていませんでした。そもそも、ほとんど使いませんし(ry

Excel 2010では、個々のアイコンを別々に設定できます。特定のアイコンだけ表示させないこともできますし、すべてのアイコンを消すことも可能です。なら、初めから設定しなければいいんですけど(笑)。

使い勝手はもうひとつ「スクリーンショット」

[挿入]タブに追加された[スクリーンショット]ボタンは、他アプリケーションの画面をキャプチャして、ワークシートに貼り付ける機能です。[スクリーンショット]ボタンをクリックすると、現在起動しているアプリケーションのうち、最小化していないアプリケーションの画面がギャラリーとして表示されます。
















アイコンをクリックすると、クリックしたアプリケーションの全体画面が、アクティブセルに貼り付きます。



















ギャラリーではなく[画面の領域]をクリックすると、他アプリケーションの画面に切り替わり、任意の範囲をドラッグすると、ドラッグした範囲だけがアクティブセルに貼り付きます。


















上の画面は、Excel 2010と同時に起動していたWord 2010の画面です。画面の一部をドラッグして選択しています。














マウスのボタンを放すと、選択した範囲が画像としてアクティブセルに貼り付きます。

この[スクリーンショット]機能は、どうも使い勝手がよくありません。たとえば、次のような不満を感じます。
  1. ギャラリーには、最小化しているアプリケーションが表示されない

    複数のアプリケーションを使っているとき、タスクバーのボタンをクリックしたり、Ctrl+Tabキーで切り替える操作が一般的です。そのとき、そのアプリケーションが「最小化(アイコン化)しているかどうか」を意識することはありません。Microsoftは今まで、長いWindowsの歴史の中で、そうした感覚をユーザーに与えてきました。「それは、意識しないでいいんだよ」と。それが、ここにきて「スクリーンショットを使うときは、最小化(アイコン化)しているかどうかを意識してね」と言われてもね。まぁ、画面をキャプチャするという機能ですから、最小化の画面をギャラリーの対象外としたことは、仕組み的には理解できます。理解できますが、使い勝手が悪いことには違いありません。

  2. [画面の領域]でキャプチャできるアプリケーションを選択できない

    Excel以外で複数のアプリケーションを起動しているとき、[スクリーンショット]-[画面の領域]を実行すると、あるアプリケーションに切り替わり、画面をキャプチャできるようになります。切り替わるアプリケーションは、ギャラリーの左上に表示されているアプリケーションです。では、どんなアプリケーションが左上に表示されるのでしょうか。任意の範囲をキャプチャするには、まず、キャプチャしたいアプリケーションがギャラリーの左上に表示されるようにしなければなりません。それ、Windowsの操作に不慣れなビギナーにできますか?[画面の領域]を実行した後で、操作対象のアプリケーションを切り替えられないのは、とても不便です。

  3. Excel自身をキャプチャすることができない

    なんつっても、不便なのはこれですね。Excelの画面もキャプチャできたら、かなり便利なんですけど。どうして、その機能を追加しなかったのでしょう。技術的には可能だと思うんですけどね。
[PrintScrn]キーを押して、表示されている画面をクリップボードにコピーし、ペイントに貼り付ける…という操作を考えれば、[スクリーンショット]はかなり便利だと思います。しかし、インターネットには、もっともっと便利で使いやすい高機能キャプチャソフトが星の数ほど登録されています。ちなみに、私のお薦めはWinShotです。そうした便利なフリーソフトを使っている者からすると、[スクリーンショット]機能は「なんじゃ、こりゃ?」としか感じません。