Excel 数値のオートフィルタについて オートフィルタ機能はもっと改良が必要ですねコレ

Excel 一歩先へ

スポンサーリンク

こんにちは。
最近は、Excelの新バージョン・2019にはかなりの機能追加がされるってことで話題になっていますが、私にはそれをテストできる環境がないので、当サイトは通常運転でいきます。

通常運転って何かって、特に断りない限りExcelの全バージョン(特に2010~2016までのバージョン)に共通する事項を想定して記事を書くってこと。
古いバージョンと互換性がない機能とかには、可能な限り留意して書きますけどね。

さて今回の記事は、オートフィルタについて、不平不満に近いことを書いていく。

Excel オートフィルタ関係 難しいがかなり役立つコマンド

オートフィルタ 数値のフィルタリング

Excelのオートフィルタは、数値の扱いに関しての性能が、なんじゃこりゃな感じだ。

上図の表では、D列「返済総額」には50,000の数値が、E列「収支」には-10,000の数値が全て入っている。
書式設定によりちょっと見た目が違うが、縦には全て同じ数値が入っているのだ。

そして図では、D列「返済総額」について、オートフィルタのダイアログで「50000に等しい」の条件を指定したところまで示しているが、結果はどうなるか。

このとおり、フィルタ結果は1行しか残らない。
縦に全て同じ数値が入っているにも関わらずだ。経験がある方も多いだろう。

6行目だけは「50000」とカンマ区切りも何もなしで設定していたから、見た目通り「50000に等しい」条件で残ったということだ。

次に、カンマ区切りを追加して「50,000に等しい」条件でフィルタリングしてみる。

これの結果もまた、見た目がまんま「50,000」になっている行だけが抽出されることになる。

マイナス値を設定しているE列「収支」についても同様だ。
この列に「-10000に等しい」条件を設定してみよう。

結果はもう予想の通り

見た目がまんま「-10000」の行だけが抽出される。

次に、「△」記号を手で入力するのがとっても格好悪くて嫌なのだが、「△10,000に等しい」条件を指定してみる。

すると、やっぱり結果はこうなる。

要はオートフィルタってのが、基本的にはテキスト(文字列)をフィルタリングするための機能だってことなんだよね。

だから「50,000に等しい」条件を指定したら、文字列を検索するのと同様の要領で、見た目が「50,000」という文字列になってる行を探しフィルタリングするわけだ。

そしてオートフィルタでは、半角全角を区別しないフィルタリングってのもできない。
全角文字列「エクセル」でフィルタリングする条件指定をしたら、全角「エクセル」でフィルタリングするようにしかならない。

だから全角・半角両方の「エクセル」「エクセル」を指定したかったら個別に指定するしかない。

マジこの仕様は、何とかしてほしいところ。

解決方法らしきもの

で、話は戻って、オートフィルタでは数値のフィルタリングがイマイチ上手くいかないわけだけど、そんなこと言ってばかりもいられないだろう。

数値が50000に合致する行だけにフィルタリングしたいというのは、当然できなければならないことだ。

だからそのためにどうすれば良いかというと、

こんな感じで「50000以上であり且つ50000以下である」と指定すれば良い。
「以上であり以下でもある」ってのは即ち「等しい」ということで・・・。
まあこういう大小が絡む指定をすれば、数値を扱っていると明示指定できるってことね。

もちろんこの指定方法なら「-10000」みたいな負の数値でもOKだ。

まあこれでも十分面倒くさいんだけどね。
こんな「以上」「以下」の条件指定を2箇所も毎回やってられんという人も多いだろう。私もやりたくない。

ということで次回記事では、ちょっくら個人用マクロブックに、オートフィルタの使い勝手を改良するマクロを組み込んでみる。
というか今回はそれの前振りみたいなもんです。

Excel オートフィルタをもうちょっと改良するマクロ 個人用マクロブック用

スポンサーリンク