セルの書式の表示形式が標準である日付でオートフィルターしたいが?

Question 94.1   Previous Next
どうしても思い通りにならず困っていたところ、先生のホームページに出会い、ぜひご教示いただければと思い、メールさせていただきました。
HPの『Question93-1』でのご質問と同じ状況なのですが、データリストがあり、その日付(表示形式は日付でなくて、標準「090301」の表示)を入力し、その2つの期間内のデータをオートフィルターで抽出し、別のシートにコピーしたいと思ったのですが、なかなか思うように抽出ません。
ご教示いただけると幸いです。宜しくお願い致します。
Answer   Copyright (C) 2009.3.29 永井善王
参考にされたページは「日付をテキストボックスで指定してオートフィルターしたいが?」ですね。
そして、右図のようにフィルタしたいのですね。
結論から言いますと、オートフィルターは文字列の大小を判定できないと思いますよ。

数値の「090213」は数値の「090201」より大きいし、
「2009/2/13」という日付は「2009/2/1」以降であることは明白です。
しかし、文字列の「090213」は文字列の「090201」より大きいと思いがちですが、そんなルールがあるのでしょうか。

ちなみに右図のデータを、H列をキーとして並べ替えしてみると左図のメッセージが表示され、Excelが「
数値に見えるもの」として扱っていることがわかります。

これと同じ機能がオートフィルターにあれば、あなたが希望する抽出ができることになります。 しかし、そうした機能は今のところないと思われるので、不可能ではないでしょうか。


したがって、解決方法としては、
 (1) そのシートを別シートへコピーして日付に見えるテキストを数値に変換する
 (2) 変換後のシートでオートフィルターする
ことになるのでしょうか。 トライしてみて結果をお知らせください。

 

Excel VBA Macro