プロが教える店舗&オフィスのセキュリティ対策術

例えばこんなデータなのですが、

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,"該当月ありません")

A 回答 (4件)

こんばんは!



=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,"該当月ありません")

でも可能ですね!
    • good
    • 8
この回答へのお礼

本当にほんとうに有難うございます。\(^O^)/
回答の説明もわかりやすくて、ほんとに助かりました。
実を言うと、今回の問題で2時間もパソコンと格闘して
しまったのです。もっと早く聞けばよかったです。

お礼日時:2002/07/24 13:01

日付によるオートフィルタの実例を挙げます。


テストデータ(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
などを入れ適当行数に複写しておく。
    • good
    • 4
この回答へのお礼

お礼が遅くなってすいませんでした。
回答ありがとうございます。大変参考になりました。
実を言うと、関数を使ってファイルをつくるのは自分
なのですが、個々のデータを実際に入力するのは、
別の人なのです。ほとんど、パソコン音痴な人が使って
データ入力してもらうので、入力セル以外は、シート保護
しています。シート保護するとオートフィルタは使えなくなって
しまうんですね。。。

お礼日時:2002/07/26 18:25

こんにちは。



普通に考えると、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,"該当月ありません")
    • good
    • 1
この回答へのお礼

お礼が遅くなってすいませんでした。
回答ありがとうございます。大変参考になりました。
実を言うと、関数を使ってファイルをつくるのは自分
なのですが、個々のデータを実際に入力するのは、
別の人なのです。ほとんど、パソコン音痴な人が使って
データ入力してもらうので、入力セル以外は、シート保護
しています。シート保護するとオートフィルタは使えなくなって
しまうんですね。。。関数例はホントに助かりました。
ありがとうございます。

お礼日時:2002/07/26 18:27

日付をIF関数内で使用するときには、DATE(年,月,日)で日付シリアル値に変換して指定する必要があります。



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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています