• ベストアンサー

例えば、8月1日~8月31日の“~”中にある日(8月15日など)を抽出したいです!

エクセル2003を使っています。 一つのセルに、『8月1日~8月31日』などと入力しています。 オートフィルターを設定しておいて、オプションの中で、例えば“8月15日/を含む”にした場合に、 先程の『8月1日~8月31日』の行が表示されるようにしたいです。 オートフィルターでできますか?オートフィルターでできないなら、どのようにすればできるでしょうか? どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • s_yoshi_6
  • ベストアンサー率73% (1113/1519)
回答No.5

#3です。 >切り出した後に、B2からC2間に含まれる日付を検索できるやり方はありますか? >もちろんオートフィルターは使えないと思いますが・・・。 前の回答に書いていますが(#2さんも書いていらっしゃいますが)、開始日と終了日の隣のセルに求める日付が含まれているかどうかを判別する式を立てて、その列でオートフィルタをかける方法ではいけませんか。 #3で書いたことをもう少し詳しく書くと、 1)ワークシート上(例えばD1)に基準となる日付の入力欄を作る。 2)D2に=IF(AND(B2<=D$1,C2>=D$1),"○","")と入力して、以下適当な範囲まで(例えばD30まで)コピー。 以上で、D1に入力した日付に応じて、それが開始日と終了日の間に含まれる場合に○印が入るようになります。あとは、 3)D1:D30を範囲選択して、データ→フィルタ→オートフィルタ。 とすると、もしD2:D30の範囲に○印があれば、ドロップダウンリストの中に「○」と出てきますので、それを選択すると○印がある列だけが抽出されると思います。 もしおっしゃっていることを取り違えているようでしたら申し訳ありません。

gogodharma
質問者

お礼

再度のご回答ありがとうございます! やっとIF関数判定の式が理解できました。 もっと単純な日付の羅列の時ならば使えそうですが、今回は少々難しそうです。 やはり私が思っているような感じの検索はできないんだなぁと思えてきました。 がっくりですが、それが分かっただけ良かったです。 本当にありがとうございました!

gogodharma
質問者

補足

#3&5様 教えていただいた数式をちょっと改良し、データについては○が出る精度が上がるように入れ替えました。 セルの内容もちょこちょこと入力し直したりしました。 そのお陰で、一発で欲しいデータが抽出される訳ではないのですがかなり形になりました! 四苦八苦しましたが、教えていただかなければ出来ませんでした!! 補足内容を書く欄ではありますが、お礼をお伝えしたくて書いています。 これからもよろしくお願いします。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

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

A列にある日付をスタートとエンドに分解する質問ではなく、期間はある1セルに8月1日~8月31日のようにあるとしても、A列は日付が入っているのでしょう。 そして指定期間に属する行だけを選択したいという問題でしょう。 この質問のあいまいなところは、いつも月初ー月末なのか、たまたま思いつたのがそういう例なのか。大幅に答えが変わる。月で決められるならMonth(a1)で月を捉えられる。 Sheet3のA1に2005/7/1 Sheet3のB1に2205/7/31 A3:B8に 2005/7/23 山田 1 2005/6/23 上田 2005/5/13 下田 2005/7/13 河合 2 2005/6/30 近藤 2005/7/1 南 3 とあるとする。 C3に=IF(AND(A3>=$A$1,A3<=$B$1),MAX($C$1:C2)+1,"") といれて下方向に複写する。 結果は上記C列のとおり。 Sheet4に行って A3に=OFFSET(Sheet3!$A$3,MATCH(ROW()-2,Sheet3!$C$3:$C$8,0)-1,0) 下方向に式を複写 B3に=OFFSET(Sheet3!$A$3,MATCH(ROW()-2,Sheet3!$C$3:$C$8,0)-1,1) と入れて下方向に式を複写。 結果 Sheet4noA3:B5に 2005/7/23 山田 2005/7/13 河合 2005/7/1 南

gogodharma
質問者

お礼

ご回答ありがとうございます。 あいまいな質問ですみません。 #4さんの言われるように、いつも月初-月末ではありません。 実は、セル内には (例:イベント日)5月11日*6月12日*6月27日*7月1日~7月9日*8月31日 などと入力されています。イベントが細かく分かれているために、日付ばかりがびっしり入力されているシートなのです。 この例でいうと、オートフィルターのオプションで5月11日を含むにすると、検索に引っかかってきますが、7月3日などは、~に含まれる日にちの為検索に引っかかってきません。 これをどうにか引っかかるようにする方法があれば・・・!と思い質問しました。 ○月○日~○月◎日の間の日にちを認識させるようなダイレクトな数式って無いんだなぁと分かってきました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • s_yoshi_6
  • ベストアンサー率73% (1113/1519)
回答No.3

やり方としては#1さん、#2さんの方法でなさるとできると思いますので、ちょっと『8月1日~8月31日』を『8月1日』と『8月31日』に分ける方法について補足します。 A2に『8月1日~8月31日』、以下A列に期間が入力されているとして、 B2を『=DATEVALUE(LEFT(A2,FIND("~",A2,1)-1))』 C2を『=DATEVALUE(RIGHT(A2,LEN(A2)-FIND("~",A2,1)))』 として以下コピーとし、B列、C列の書式を「日付:○月×日」にしてやると、開始日と終了日が「○月×日」という日付形式で切り出せます。(ただしA列に「~」が必ず含まれているという前提ですので、もし含まれていないセルがあったら、別途処理が必要になります) あと(多分蛇足になると思いますが)、日の指定については、ワークシート上(例えばD1)に入力欄を作っておいて、D列に入力するIF関数の判定(例えば=IF(AND(B2<=D$1,C2>=D$1),"○","")など)に使うようにされた方が、数式に直接入力したりするより、指定日を変更する際の手間がかからないと思います。

gogodharma
質問者

お礼

ご回答ありがとうございます。 >A2に『8月1日~8月31日』、以下A列に期間が入力されているとして、 >B2を『=DATEVALUE(LEFT(A2,FIND("~",A2,1)-1))』 >C2を『=DATEVALUE(RIGHT(A2,LEN(A2)-FIND("~",A2,1)))』 と切り出した後に、B2からC2間に含まれる日付を検索できるやり方はありますか? もちろんオートフィルターは使えないと思いますが・・・。 どうぞよろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • syonep
  • ベストアンサー率26% (64/242)
回答No.2

オートフィルタでは、無理です。 実現する一つの方法として、 「○月○日~×月×日」というのを 「○月○日」「×月×日」と列をわけて、日付フィールドにしておき、上記でいう8月15日のような日付を入れるセルを表外につくり、「○月○日」「×月×日」の列の隣に、それぞれの値の間に8月15日が含まれるのかどうかを大小比較のif文でつくり、条件を満たすものだけ「1」とかを立てて、その値「1」でオートフィルタを掛ければ絞り込めます。 表計算を文書で説明するのは、難しいので、上記の文を参考に、やってみて下さい。

gogodharma
質問者

お礼

お礼が遅くなってすみません。 ご回答ありがとうございます。 ただ、検索する日は固定ではないので、〔8月15日だけ〕の日付を軸に大小比較するような数式では対応できそうにありません。 でも、数式を組み立てる時に色々な考え方があるなぁと分かりました。 何かの機会に試してみたいと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

ひとつのセルでは無理だと思いますよ。 開始日 終了日 8月1日 8月31日 なら 開始日 8月15日 以下 終了日 8月15日 以上 で検索できます。

gogodharma
質問者

お礼

ご回答ありがとうございます。 お礼が遅くなってすみません。 日付の数式を入力したり、その他何かの方法でできないかなぁと思ったのですが、 ひとつのセルでは無理なのですね~。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • フィルタオプションの設定で空欄を抽出

    エクセルどなたか教えてください!! フィルタオプションの設定で空欄を抽出したいのですが(オートフィルタではありません) セルに条件は、なにを入力したらよいですか

  • エクセルで1-1などと入力すると自動的に1月1日となってしまいます

    表題の通りです。 エクセルで1-1などと入力して、次のセルに移動すると先ほど入力した1-1が自動的に1月1日となってしまいます。もちろん12-32以降ならそのまま表示されるのですが、それ以前はみな月日表示になってしまいます。 セルの書式設定を少しいじってみたのですが、先に設定してから入力しても反映されず、またすでに1月1日となっている所を標準に指定すると37622となってしまいます。 1-1なら1-1のままと、入力した通り記入できる方法がありましたらお教え下さい。エクセルは2002です。

  • オートフィルターによって、抽出したセルにだけペーストしたい。

    例えば、 5行ごとの世帯表があります。 A列には氏名が入力されています。 2人世帯は2行しか使いませんので、下3行は何も入力されていない行です。 つまり、10世帯分で100行あり、その中に合計38名分の氏名が入力されています。 列を挿入して、B列に新しい列を作りました。 この列に、別シートの同じ世帯員の生年月日が入力された列(ブランクの無い38行の38個のセル)を貼り付ける場合、どのように貼り付けるのでしょうか。 オートフィルターで、A列の空白セルを除いてから貼り付けたら、オートフィルター解除後、空白セルにも貼り付いてしまったので、ずれてしまいました。 オートフィルターで、省いた(隠した)セルに貼り付かないように貼り付けるにはどうすればいいのでしょうか。

  • EXCEL2003 オートフィルタ オプション 結果が不正

    EXCEL2003 で20 行 10 列の表を作成し、各行には 1 2 3 と数字を入力しておりますが 01 02 という数字も あるため 書式は文字列に設定しています。 これを「オートフィルタオプション」で 2 と等しくないで抽出 すると正しく機能せず すべての数値が表示されます。 セルには [文字列として保存されている数値]のエラーチェックが 働きセル左上が緑色三角マークがついています。 2 が入力されたセルの書式を 一旦[標準]に設定した上で、 再度 2 と入力し直し、また 書式を[文字列]に設定すると セル左上 緑色三角マークがなく、前述の「オートフィルタオプション」が 正しく機能するのですが、このセルの数値を 例えば 3 に変更したり、 セルをダブルクリックすると、エラーチェックが働きセル左上 緑色三角 マークが 表示されます。 結果、「オートフィルタオプション」の 等しくない 抽出が機能しません。 Excelのオプションで[文字列として保存されている数値]のエラーチェック を外しても、「オートフィルタオプション」は正しく機能しません。 「オートフィルタオプション」の 等しくない 抽出を使うには、どの ようにすれば良いか解決をご教示ください。 よろしくお願いします。

  • エクセル曜日11月31日、2月29~31日

    出勤表のようなものを作成しています。 M16に日付を表す1が入力されていて 16行目右方向にに2~31と入力されています。 印刷範囲外となるA11に西暦をA13に月を入力する事により 以下の関数が入っているM17に書式設定で曜日が表示されます。(17行目右方向に数式がコピーされています) =DATE($A$11,$A$13,M16) このままだと、31日がない月でも曜日が表示されてしまいます。 (翌月1日の曜日) 又、2月となると29日に3月1日の曜日が表示されてしまいます。 DATE(2005,11,31)というのは12月1日という事になるのですか? DATE(2005,11,31)⇒有り得ない⇒エラー値にはならないのですか? 2月29日~31日(できればうるう年を自動認識に)と 小の月の31日の曜日のセルを 空白にする関数を教えてください。

  • 1と入力で1月1日と表示

    シート1のセルA1に1と入力でシート2のセルA1に1月1日と表示また、シート1のセルA1に2と入力でシート2のセルA1に2月1日と表示、つまり1と入れたら1月1日、2と入れたら2月1日、3と入れたら3月1日、・・・・・12と入れたら12月1日と表示するには。よろしくお願いします。

  • エクセル特定の文字を含む行の抽出方法

    すいません!至急で困っております。 何千という行の中から、例えばヨドバシカメラという文字を含む行を抽出したい場合はどうすればいいでしょうか? ヨドバシカメラ~店という行なので、単純にオートフィルタでは抽出できません。 オートフィルタのオプションからもうまくいかず。。 すいませんが、何卒よろしくお願いいたします。

  • 【エクセル】入力すると、オートフィルタ自動適用?

    タイトルの件、質問いたします。 図1のように、まず、オートフィルタに、B2の項目が、【完了】の行は、表示されないように 設定します。OKをクリックすると、B2項目の状態が、完了となっている、行は 消え【隠れる】ます。 これを、完了と入力【リストから選ぶ】と、自動的に消える、隠れるようにしたい。 →オートフィルターオプションにて、選択をしなくても、入力した時点【リストから選択】で 消えるようにはできないでしょうか?? オートフィルターオプションをかけたままにしておき、上書きをしたら、消えるようにも 思いましたが、変わらずでした。 ご存知の方、いらっしゃいましたら、宜しくお願いします。 【エクセルバージョン】 2002、2003、2007

  • Excelで西暦の日付から「和暦のみ」を抽出する方法を教えてください。

    エクセル初心者です。 エクセルのオートフィルタを使って、「平成19年」「平成20年」「平成21年」ごとに表示させたいのですが…。 セルには以下のように日付が入力されているとします。   A      B      C 2007/3/14 2007/3/16 2008/3/18 2008/3/14 2009/3/16 2009/3/18 これを書式設定で「平成19年3月14日…」と和暦で表示してみても、オートフィルタでは日ごとになるだけで、「年ごと」にはなりません。 そこで、B列にA列のデータから和暦のみを抽出したらいいのではないかと考えたのですが…初心者ゆえにその方法を思いつくことができません。 西暦の日付から「和暦のみ」を抽出する事はできるのでしょうか?

  • エクセルで「1月1日」を「1/1」にするには?

    エクセルのセルに「1/1」と入力すると自動的に「1月1日」と変換されてしまいます。いろいろ設定などをしてためしてみたのですが、どうしてもセルに「1/1」と入力することができません。 どうすればよいのでしょうか?

専門家に質問してみよう