• 締切済み

エクセルのマクロで・・・再

エクセルの表で、日付の列を検索したいのですが・・・。 例えば A列に名前 B列に誕生日があるとして、ある期間の誕生日の人を検索したい。とします。 普通にやるならデータ→フィルタ→オートフィルタ→条件をいれて・・・・。となると思うんですが、これをボタン一つで、できるようにしたいんです。 さらに、データがシート1にあるとしたら、条件はシート2のA2とB2に入力した日の間となるようにしたいのです。 エクセルは2000を使用しています。 以前にも同じ様な内容で教えて頂いたのですが、条件の入れ方が少し違いまして・・・。 ごめんなさい。どなたか教えて下さい。

noname#2643
noname#2643

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

思考実験として考えてください。 言いたいことは、日付けも数も変らないと言うことです。 (1)Sheet1のA1:A5にテストデータとして 2002/1/30 2002/3/5 2002/5/3 2002/4/3 2002/6/12 といれてください。 A1:A5は書式は日付けになり、値は日付けシリアル値 37286 37320 37379 37349 37419 になります。(書式-セル-数値) (2)Sheet2のA2:B2に  2002/4/30 、2002/5/30 と入力してください。 値はやはり、日付けシリアル値として 37376 37406 になります。 (3)値になったものを見つめていれば、Sheet1の37286、 37320、37379、37349、37419の中から >37376、<37406 の数を 求めるのは、質問に値しないでしょう。 (4)Sheet1のA1:A5の書式を「日付け」且つ「1997/3/4 」をクリックして、西暦日付けに直し、下記を実行すると、「02/5/3」 が選べます。 Sub test03() Worksheets("sheet1").Select For i = 1 To 5 If Worksheets("sheet1").Cells(i, 1) > 37376 _ And Worksheets("sheet1").Cells(i, 1) < 37406 Then MsgBox Cells(i, 1) End If (5)以上から、上記のように考えられるためには、A1:A5とA2:B2 の内容が、日付け形式で入っていることがポイントです。 A2:B2などに、文字列として入っていると、関数などで、日付け形式に 戻すと易しくなります。文字列のまま考えると、2002/12/1(2桁月)と 2002/4/3(1桁月)などの比較する場合でややこしくなります。

noname#2643
質問者

お礼

回答ありがとうございます。 ちょっと、難しいですがお勉強になりました。 ありがとうございます。

関連するQ&A

  • エクセルのマクロで・・・?

    エクセルの表で、日付の列を検索したいのですが・・・。 例えば A列に名前 B列に誕生日があるとして、ある期間の誕生日の人を検索したい。とします。 普通にやるならデータ→フィルタ→オートフィルタ→条件をいれて・・・・。となると思うんですが、これをボタン一つで、できるようにしたいんです。 さらに、条件は特定のセルに調べたい期間を入力するようにしたいのです。 エクセルは2000です。 わかりにくい説明で申し訳ないのですが、宜しくお願いします。

  • ★エクセルマクロコード教えていただけますでしょうか

    マクロのコードを組みたいと考えておりますが、 ほとんど初心者のため、お詳しい方の力を貸していただきたい次第でございます。 m(__)m ○オートフィルターーでデータをソートし、そのソートごとのシートを自動作成。  その後、そのシートを各フォルダに保存したい。 あるデスクトップ上にあるエクセルシート「管理DB」の「sheet1」にある管理データ A列(グループa~e)、B列(登録日)、C列(ステータス)によって構成されているシートで、 1.A列「グループ」「a」でオートフィルター 2.その中でB列、「登録日」が「2012年9月」以前のものをオートフィルター 3.その中で、さらに「ステータス」が「在庫中」のものをオートフィルター 4.3段階のオートフィルター後にできた結果を、別のエクセルシートとして作成。 5.そのエクセルシートをデスクトップにある「フォルダX本部」に保存。 1~5の一連の作業をグループがなくなるまで繰り返したいと考えています。 1.A列「グループ」「b」でオートフィルター 2.その中でB列、「登録日」が「2012年9月」以前のものをオートフィルター 3.その中で、さらに「ステータス」が「在庫中」のものをオートフィルター 4.3段階のオートフィルター後にできた結果を、別のエクセルシートとして作成。 5.そのエクセルシートをデスクトップにある「フォルダY本部」に保存。 ※一連の作業の中で、グループ名と、シートの保存先が変わる以外、この作業の繰り返し。 以上の作業を実行するマクロを組むことは可能でしょうか。 また、マクロのコードを教えていただけると幸いです。 マクロについてお詳しい方、何卒よろしくお願いいたします。

  • エクセルのマクロで、こまっています。

    エクセル2000のマクロで、こんな作業をしたいのですが、 基本設定:「シート1」       グラフ(上半期)と、その元になる表(上半期)がある。       表は、月ごとの(シート3の)フラグ別で集計されている。      「シート2」       シート1と同じ内容で、下半期分がある。      「シート3」       シート1、2の元になる表があり、A列に日付、B列以降にフラグが数個あり、       コメントが続く。 希望動作:マクロを実行すると、シート3の表を、      実行日の年度の上半期、下半期、B列以降のフラグで、      フィルタをかけ、ヒットする件数をシート1、2に送る。 これだけのことなんですが、解らないことがあって止まっています。  (1)、今日の日付を取得し、その年度の上半期(4/1~9/30)    下半期(10/1~3/31)を取得する。    A列の日付は、(2002/11/15 18:45)という形式です。  (2)、フィルタをかけた後、ヒットした件数を取得する関数。 よろしくお願いします。

  • エクセルで検索窓のようなものを作る

    エクセルのシートにテキストボックスとコマンドボタンを配置してシート上のデータを検索することは可能でしょうか?今現在はB列に、複数の文字データが入力してあるので、オートフィルタのオプションから「を含む」で検索してます。 イメージとしては、オートフィルタのオプションから「を含む」を選んでから検索しなくても予めシートに用意してあるテキストボックスに検索したい文字を入れてボタンを押すと、オートフィルタで検索したときと同じような結果が得られるようにしたいと思ってます。 例)    A    B    C     -------------- 1     血液型      2      A 3      B 4      O 5      AB 上のような表があったとして、テキストボックスにAと入力してボタンを押すとB2とB5が表示されるようにしたと思ってます。いい方法があればご教示願います。

  • エクセルのデーター抽出で悩んでおります、皆様のお知恵をお貸しください。

    エクセルのデータ抽出で悩んでおります、皆様のお知恵をお貸しください。 データベースとして作ってある表で、”列A”に入っている日付以上(形式2009/11/27)、”列B”に入ってる日付以下と言う条件で、”列D”から”列R”に入っている日付データを探し、”列C”に入れるという事をしたいのですが、出来るだけ簡単な方法があればお教え下さい。 〔列A2009/11/27〕 〔列B2011/1/27〕 〔列CXXXX/XX/XX〕 〔列D~Rは日付データ〕 列Aに入っている日付以上、列Bに入っている日付以下という条件で、列D~列Rに入っている日付データの中から条件に合致するデータを探し、空白の”列C”に合致したデータを入れるというができますでしょうか。 (あくまでもデータベースとして表が出来ているので、並べ替えてオートフィルタ機能を使うという事はできません。)

  • エクセルのマクロを知りたい

    エクセルで,たくさんのデータが入力された【シートa】があります。 新しく【シートb】を作成して,そこに空白の表(1)~(10)までを作成します。 (ちなみに表(1)は1行から始まり100行まで,表(2)は101行から始まり200行まで・・・・といった感じです) 【シートb】の表(1)には,【シートa】でA列に「1」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。同様に,表(2)には,【シートa】でA列に「2」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。・・・というのを表(10)まで続けます。 上記のような命令をボタン一つで操作できるようなマクロを教えて欲しいのです。 お願いします。

  • エクセルで3つの条件で検索したい場合

    エクセルで3つの条件で検索したい場合、どうすればいいですか? オートフィルター オプション 抽出条件の指定 「  」を含む 「  」を含む で、3つ目の条件を入れる項目がありません。 例えばシートに 列 A B C D E F とあり、 「A」を含む 「B」を含む 「C」を含む という三つの条件で抽出したい場合、どのようにオートフィルター オプションを使えばいいのでしょうか? ▼マークのフィルターをクリックして 外したい項目のチェックボックスを外せば、A,B,Cを抽出できることはわかってますが 今回は例なだけで、実際はもっと複雑なデータなので、 「オートフィルター オプション」「抽出条件の指定」のやり方が知りたいです。

  • いつもありがとうございます。エクセル2003でVBAのマクロを組もうと

    いつもありがとうございます。エクセル2003でVBAのマクロを組もうとしてしています。 今日の日付と入金予定日を参照して期限オーバーしている行を収集しようとしています。 Sheet1     A    B    C     D   (列) 1   売上日  顧客名  商品名  入金予定日 2 平成22年1月4日 A商店  ○○  平成22年2月10日 3 平成22年1月4日 B商店 ○○ 平成22年2月15日 ・ ・ ・ ・ Sheet2 任意のセル(D3)に =NOW()で表示させています。 オートフィルターで今日の日付を入力し収集すれば、いいところですがVBAでオートフィルターをコントロールをしたいと考えております。よろしくお願いします

  • エクセルで複数のシートにまたがるデータを一枚にまとめる方法

    よろしくお願いします。 エクセルのシートが3シートあり、 シート1、シート2には従業員の名前、出勤日、売上高が一覧になっています。シート1、2の違いは月別となっています。 簡単に表にすると a,b,cという従業員がいた場合、 A列 B列 C列 a 4/1 3000 b 4/1 2000 a 4/2 4000 c 4/2 5000 b 4/3 2000 といったイメージなのですが・・・ それを今はそれぞれ月ごとに 人別にオートフィルターで検索し シート3に貼り付け人別の売上表にまとめています。 この場合だとシート1が4月シート2が5月の売上表だった場合、 シート3にaさんの4月5月の売上を一覧表にしています。 例では3人ですが、実際は人数が20人ほどいて、月別のシートも今後増えていきます。 シート3に検索条件aと入力したら シート2、3からVLOOKで値が抽出できるかとも試してみたのですが、 VLOOKは一番最上段のデータのみを抽出してしまうので断念しました。 今後の作業の効率化を考えると少しでも省略化したことを行いたいのですが・・・ なにかよいアドバイスがありましたらいただけると幸いです。

  • 検索・抽出・貼り付けのマクロ

    シート1のデータをオートフィルターかけて検索し抽出したものを、A列、B列、D列、F列をシート2の、A列、B列、C列、D列に貼り付けるマクロを教えて頂けますでしょうか? 一週間位悩んでいます。

専門家に質問してみよう