解決済みの質問
質問:No.320809
すぐに回答ほしいです
お気に入り投稿に追加する (0人が追加しました)
回答数4
閲覧数5187
エクセルで特定の列にある日付データの中から、指定した日付範囲を抽出する方法を教えてください
例えばこんなデータなのですが、

2002/07/01 99 25 36
2002/07/05 55 33 25
2002/08/01 80 20 51

日付の入っている列を検索して、2002/07/01から2002/07/31
の範囲ならば、その行のデータを別のシートに抽出したいのですが、
日付の範囲は関数でどうすればよいのか分かりません。ACCESSなら
between 9999/99/99 and 9999/99/99って感じで簡単にできるの
ですが。。。エクセルの関数だとIF関数の論理式にAND関数を使って
>=2002/07/01
<=2002/07/31
と入力したので、2002/07/05ならば、いずれもTRUEなので、値を返して
くれると考えたのですが、なぜかダメでした。
(↓こういう入力をしました)
=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")
投稿日時 - 2002-07-23 20:37:53
質問者が選んだベストアンサー
回答:No.2
こんばんは!

=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

おしいですね(^^;
日付をそのまま入力してしまうと数式上では
 2002/7/31 → 2002÷7÷31 になってしまいます。
ダブルクォーテーションで括って(文字列)入力して
それを数値化しましょう!

=IF(AND(Sheet2!A1>="2002/7/1"*1,Sheet2!A1<="2002/7/31"*1),Sheet2!A1,"該当月ありません")

文字列 ="10" に対して 乗算 *1 としても数式が
なり立ち文字列の数字が数値化されます。="10"*1

------------余談--------------------------
ご質問の条件例の場合特例で 2002/7でればOKなので

=IF(TEXT(Sheet2!A1,"yyyym")="20027",Sheet2!A1,"該当月ありません")

でも可能ですね!
投稿日時 - 2002-07-23 21:08:31
この回答を支持する
(現在0人が支持しています)
お礼
本当にほんとうに有難うございます。\(^O^)/
回答の説明もわかりやすくて、ほんとに助かりました。
実を言うと、今回の問題で2時間もパソコンと格闘して
しまったのです。もっと早く聞けばよかったです。
投稿日時 - 2002-07-24 13:01:26
この質問は役に立ちましたか?
6人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答
回答:No.1
日付をIF関数内で使用するときには、DATE(年,月,日)で日付シリアル値に変換して指定する必要があります。

=IF(AND(Sheet2!A1>=DATE(2002,7,1),Sheet2!A1<=DATE(2002,7,31)),Sheet2!A1,"該当月ありません")
投稿日時 - 2002-07-23 20:47:41
この回答を支持する
(現在1人が支持しています)
回答:No.4
日付によるオートフィルタの実例を挙げます。
テストデータ(A1からB13)
日付     場所
2002/2/21   福島
2002/2/25   仙台
2002/3/25   青森
2002/4/15   秋田
2002/4/16   函館
2002/5/1   盛岡
2002/3/18   宇都宮
2002/3/15   大宮
2002/1/21   浦和
2002/2/3    池袋
2002/3/26   新宿
2002/4/1    品川
条件(E1からF2)
日付      日付
>2002/3/25<2002/4/16
結果(D9からE15)
日付     場所
2002/4/15    秋田
2002/3/26    新宿
2002/4/1    品川 
操作
データ-フィルタ-フィルタオプションの設定-指定した範囲
リスト範囲    $A$1:$B$37
検索条件範囲   $E$1:$F$2
抽出範囲    $D$9:$E$18
OK
直接別シートSheet2の範囲を指定できないので
Sheet2のA1とB1に
=Sheet1!D9、=Sheet1!E9
などを入れ適当行数に複写しておく。
投稿日時 - 2002-07-24 09:44:52
この回答を支持する
(現在0人が支持しています)
お礼
お礼が遅くなってすいませんでした。
回答ありがとうございます。大変参考になりました。
実を言うと、関数を使ってファイルをつくるのは自分
なのですが、個々のデータを実際に入力するのは、
別の人なのです。ほとんど、パソコン音痴な人が使って
データ入力してもらうので、入力セル以外は、シート保護
しています。シート保護するとオートフィルタは使えなくなって
しまうんですね。。。
投稿日時 - 2002-07-26 18:25:59
回答:No.3
こんにちは。

普通に考えると、1行目にタイトル行(フィールド名)を入れてから、

1.メニューのデータ-フィルタ-オートフィルタ
2.日付データの▼でオプションを選択
3.2002/7/1 以上 AND 2002/7/31 以下でフィルタ
4.コピーして好きな所に貼り付け

で良いように思います。

他の方の回答で解決してるでしょうけど、関数例も、もうひとつ。

=IF(AND(A1>=DATEVALUE("2002/7/1"),A1<=DATEVALUE("2002/7/31")),A1,"該当月ありません")
投稿日時 - 2002-07-23 23:07:01
この回答を支持する
(現在0人が支持しています)
お礼
お礼が遅くなってすいませんでした。
回答ありがとうございます。大変参考になりました。
実を言うと、関数を使ってファイルをつくるのは自分
なのですが、個々のデータを実際に入力するのは、
別の人なのです。ほとんど、パソコン音痴な人が使って
データ入力してもらうので、入力セル以外は、シート保護
しています。シート保護するとオートフィルタは使えなくなって
しまうんですね。。。関数例はホントに助かりました。
ありがとうございます。
投稿日時 - 2002-07-26 18:27:13
もっと聞いてみる
関連するQ&Aはこちら
どちらの方が処理が速いのでしょうか? WHERE column BETWEEN '2000-01-01' AND '2007-01-01' WHERE column >= '2000-01-01' ...
日付が9999.99.99 99:99:99となるのはウィルスでしょうか。対策はありますか。 ...
java初心者ですが、関係演算子で> < >= <=の使いわけがあまり分からないんですが、どうやって使いわければよいのでしょうか? ...
この他の関連するQ&Aをキーワードで探す
ソフトウェアのサブカテゴリ
カテゴリ:Office系ソフト
RSS
カテゴリ:Office系ソフト
PR
-PR-