• ベストアンサー

フィルタオプションの条件設定

フィルタにある条件をつけて抽出したデータの個数を 取得したいです。 A4のセルに04/12/10と有った場合は、 A6より下に有るデータから04/12/01-04/12/10のデータ個数を取りたく。 又、A4のセルに04/12/20と有った場合は、 A6より下に有るデータから04/12/11-04/12/20のデータ個数を取りたく。 又、A4のセルに04/12/31と有った場合は、 A6より下に有るデータから04/12/21-04/12/31のデータ個数を取りたいです。 フィルタオプションで設定できたら良いなと思いますが。無理でしたら、どの様にしたら、このようなデータの数量が取れるかアドバイスをお願いします。 なお2月の月末は28日の日と29日の日が有るので、 こちらも A6に05/02/28となっていたら 05/02/21-05/02/28のデータ個数で A6に08/02/29となっていたら08/02/21-08/02/29のデータ個数を取得できる設定をしたいです。 宜しくお願いします。

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

  • ベストアンサー
回答No.3

掲題の件に関して、ポイントは2つ 1)「A4」に入力した日付によって、範囲が求められる。   (「A4」に範囲終了日を設定するので、範囲開始日を求めること)    条件1:1ヶ月を3分割とした10日区切りの最初の日付を求める    条件2:ただし、31日の場合は30日区切りに含める 2)上記にて求められた検索条件にて、「A6」以下にある対象データ件数を算出   (「A6」以下とは、指定できないので範囲指定して対象データ件数を求めること)   (ここでは、「A6」から「A1000」と仮定する)    考察1:範囲開始日と範囲終了日の間にある件数を求める式は?        ->[範囲終了日迄のデータ件数] - [範囲開始日未満の件数] 1)の件に関しては、下記式にて求められる =DATE(YEAR(A4),MONTH(A4),CHOOSE(INT((DAY(A4)-1)/10)+1,1,11,21,21)) ->説明  ・CHOOSE(INT((DAY(A4)-1)/10)+1,1,11,21,21)   の、『INT((DAY(A4)-1)/10)+1』は、   「A4」の日付部分を評価し、月のどの区分かを判別する。   (1:1~10日、2:11~20日、3:21~30日、4:31日)   ※INT関数は、小数点以下を切り捨てる事に使用。ROUNDDOWN関数を使用するのも良い。   あとは、CHOOSE関数により、対象の日付となる数値を返す。  ・DATE関数により、数値データを日付シリアル値に変換する 2)上記にて、範囲開始日が求められたので、   範囲終了日迄の件数と範囲開始日迄の件数を算出する式を作成 [範囲終了日迄の件数を求める式] =COUNTIF(A6:A1000,"<=" & A4) [範囲開始日未満の件数を求める式] =COUNTIF(A6:A1000,"<" & DATE(YEAR(A4),MONTH(A4),CHOOSE(INT((DAY(A4)-1)/10)+1,1,11,21,21))) あとはご自由に 今回の件では使用しなかったですが、「A4」の日付から月の区分最終日を求める式は、 =CHOOSE(INT((DAY(A4)-1)/10)+1,DATE(YEAR(A4),MONTH(A4),10),DATE(YEAR(A4),MONTH(A4),20),DATE(YEAR(A4),MONTH(A4)+1,1)-1,DATE(YEAR(A4),MONTH(A4)+1,1)-1)

shinarin
質問者

お礼

ご丁寧な解説と式を有難うございます。 ほしかったデータがズバリ取れるようになりました。

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

その他の回答 (2)

  • tascany
  • ベストアンサー率48% (15/31)
回答No.2

「04/12/21-04/12/31のデータ個数」というのはつまり、A列(または他の列)が「日付」フィールドになってて、そのなかから所定の範囲に含まれる日付の個数をカウントせよ、ということでしょうか・・・? そういうことなら・・・。 1)オートフィルタを使う場合。 まずリストの外の適当なセルに、 =SUBTOTAL(3,$A$6:$A$100) をコピペしておきます(※A6:A100の範囲内で、空白でないセルの個数を求める)。 そのうえで、たとえば▼の(オプション)から、「04/12/21以上04/12/31以下」として条件を指定してやったうえでデータを抽出します。 そうすると、先ほどの関数が、オートフィルタで抽出したものだけの(空白でないセルの)個数を返してくれます。 ※SUBTOTAL関数では、引数「3」を「9」にかえてやれば、セルの個数ではなくその値の合計を求めてくれます。 2)オートフィルタを使わない場合。 A4に、抽出したい期間の最後の日付を入れるとして、適当なセルに、 =COUNTIF($A$6:$A$100,">="&DATE(YEAR($A$4),MONTH($A$4),ROUNDDOWN(DAY($A$4-2),-1)+1))-COUNTIF($A$6:$A$100,">"&$A$4) をコピペしておいてください。A4に期間の終了日を入力すれば、A6:A100の範囲内のセルの日付をチェックし、条件にあてはまるものの個数を返してくれます。

shinarin
質問者

お礼

ご丁寧に解説有難うございます。 今回はマクロに式を組み込んで自動的にデータを取り出したいので、手動操作が入れられないのがとってもネックでした。 今までは目で見て、範囲を選択してデータ数を求めていたので、この方法を参考にさせていただきます。 有難うございました。

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

こんばんは。 データ個数というのが B列にあって、その合計値を求める、ということでしょうか? そうだとしたら・・ 開始日を表示するセルを作業用セルとして用意します。 作業用セルを F1 として、 F1に、次の数式を入れてください。 ------------------------------------------------- =IF(DAY(A4)<21,A4-9,DATE(YEAR(A4),MONTH(A4),21)) ------------------------------------------------- データが A6:B50 にあって、データ個数を表示するセルをB4とすると、 B4に、以下の数式をCTRLキーとSHIFTキーを押しながらENTERで確定して配列数式にしてください。 -------------------------------------------------------------- =SUM(IF($A$6:$A$50>=$F$1,IF($A$6:$A$50<=$A$4,$B$6:$B$50,0),0)) --------------------------------------------------------------

shinarin
質問者

補足

アドバイス有難うございます。 ほしいデータは、有る期間内のデータ数量で それが月に3回有り、変る事がネックでした。 年の瀬お忙しい中ありがとうございました。

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

関連するQ&A

  • Excelのフィルタオプションについて

    いつもお世話になります。 Excel2010 Windows7で作業をしています。 1000行、10列程度のデータからフィルタオプションを利用し、条件を2つ設定してデータを抽出しています。 抽出は同一シートで行っています。 抽出自体は問題なく行えるのですが、抽出した行から下のセルが空白になってしまいます。セルが挿入されているような気配はなく、空白のセルで上書きされているような雰囲気です。 抽出したデータをさらに参照して、他のセルに代入する、などの操作もしているので、できれば抽出する行の下にも計算式などを入力したいのですが、これは操作が悪いのでしょうか。それとも仕様なのでしょうか。 参照しているデータには特に空白セルはありません。 条件については唯一のものではなく、同じ値のものが複数存在しますが、2つの条件を設定することで唯一のデータを選択することができます。 抽出したいのは1行です。 よろしくご教授ください。

  • フィルタオプションの設定での検索条件について

    仕事で作業月日と作業内容をエクセルにて管理しています。そして過去のデーターをフィルタオプションの設定をマクロの記録活用で抽出、別シートに作った表に反映させ印刷しています。過去のデーターを抽出する検索条件を>=作業月日としていますが、出来れば別シートで作業月日を入力し抽出検索条件に飛んでくるようにしたいのですが、うまくいきません。例えばA1に作業月日B1に検索条件とし、>=(A1)と入力すると文字でしか認識しないのです。月日として認識する方法を教えて下さい。

  • エクセルでフィルタオプション

    質問します。 エクセルでフィルタオプションを使って、ある表のデータを抽出します。 抽出先が、“選択範囲内”を選んで抽出する。 しかし、本当に見たいデータは、その条件で抽出されなかったデータA(下記式参照)が見たい場合 どうすればいいか。   allデータ    -B データ        =Aデータ (原データすべて)-(抽出されたデータ):(抽出されなかったデータ)            抽出条件を満たすデータ : 抽出条件を満たさないデータ             条件設定簡単   : 条件設定複雑             特に必要としない : 本当に見たいデータ

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

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

  • EXCELのフィルタオプションで

    EXCELでフィルタオプション(AdvancedFilter)を使ったデータの抽出がしたいのですが、 空白以外のセルを抽出するには、検索条件範囲に何と書き込めばいいのでしょうか? オートフィルタのように「<>」と書き込んでもだめでした。(空白セル「=」は出来たのに) お願いします。

  • フィルタオプションの設定

    「フィルタオプションの設定」で、リストから商品がバスタオルでかつ金額が15000以上40000以下のデータを抽出したいのです。 通常なら、検索条件は1行に入力すると思いますが、それを2行に分けて入力する抽出方法はありませんか?

  • Excel フィルターオプションの設定について

    Excel2010を使っています。 データ表からデータを抽出するのにフィルターの「フィルターオプション」を使っています。 データ範囲の外側に抽出条件を入力するのですが、数値の範囲の条件の記述方法がわかりません。 条件に「>=50」や「<=200」は正常に抽出するのですが、50から200の範囲のデータを抽出するのに条件の書き方がわかりません。 「>=50」と「<=200」の2つを条件にするとすべてのデータが抽出されます。 教えてください。 宜しくお願いします。

  • EXCELのオートフィルタオプション

    オートフィルタオプションを使って表の中からデータを抽出するように設定したいと思っています。 抽出条件で日付を選択したいのですが、「と等しい」に設定するとデータが抽出されますが、「以上」や「より大きい」などを設定するとデータが抽出されません。 ○月○日から△月△日までの期間から抽出、というような設定をしたいのですが、どのようにしたらよいのでしょうか?ぜひ教えてください、お願いします。

  • EXCEL フィルタオプションについて

     添付のデータから、別シートに 店名がA商店で かつ 単価修正や数量修正がないデータのみを抽出して金額の合計額をもとめたいのですが、フィルタオプションを使った場合、2つの項目で絞り込むことは出来ません。  SUMIFS関数を用いても A商店 かつ 単価修正・数量修正がないデータを抽出して合計額を算出出来ません。  EXCELの達人がおられたら、解決策お教えください。

  • エクセルのフィルターのオプションに関する質問

    例えば、エクセルのデータ件数(エクセルの行数)が100件あり、A列にA,B,C,D,E,F,Gというデータが100件のデータの中に任意に存在するとします。 A列が、CもしくはFのデータのみ抽出したい場合、フィルターのオートフィルターオプションで”Cと等しい” ”Fと等しい” という2つの条件をORで設定することによってできます。(ORで設定できるのは2つの条件まで) A列が、AもしくはCもしくはFの3つのデータのみ抽出したい場合、何かいい方法はあるでしょうか? よろしくお願いします。

専門家に質問してみよう