• 締切済み

EXCEL:オートフィルタで

いつもお世話になってます。 月末の集計と売上計画表を作るのにどうしてもやりたい事があるのですが、どうやったらいいものか困っています。 いい方法がありましたら教えて下さい。 Sheet元データとSheet伊藤~Sheet山田(印刷用でもともと形作られています)があり、 Sheet元データには 列A~Z 行2~300 程度のデータが入っています。 これにオートフィルタをかけて、抽出されたデータをコピー→任意のシート・セルに貼り付けたいと思います。 抽出/コピーしたい列は、 A(カテゴリー):1 2 C(担当者):伊藤 佐藤 鈴木 田中 山田 E(商品名):文字列 G(単価1):数値 H(単価2):数値 I(合計金額):数値 K(売上月):日付 で、まず、 (担当者)伊藤/(売上月)今月/(カテゴリー)1/(単価1)空白以外のセル でフィルターをかけて抽出されたデータを、 Sheet伊藤の指定したセル(商品名をC5~C20、単価1をD5~D20、合計金額をE5~E20)に貼り付け、 (担当者)伊藤/(売上月)翌月/(カテゴリー)1/(単価1)空白以外のセル Sheet伊藤の指定したセル(商品名をG5~G20、単価1をH5~H20、合計金額をI5~I20)に貼り付け、 (担当者)伊藤/(売上月)次四半期/(カテゴリー)1/(単価1)空白以外のセル Sheet伊藤の指定したセル(商品名をK5~K20、単価1をL5~L20、合計金額をM5~M20)に貼り付け、 ・・・といった具合に、抽出&コピー貼り付けをSheet伊藤~山田まで繰り返します。 (売上月)の項目は、 例えば「今月」が「4月」だった場合、「翌月」は「5月」「6月」、「次四半期」は「7月」「8月」「9月」の データを抽出したいのですが、こちらも一発で抽出するにはどうしたらいいでしょうか。 かなりわかりにくい説明だとは思いますが、 よろしくお願いします。

  • Kaboo
  • お礼率31% (19/61)

みんなの回答

  • suzusan7
  • ベストアンサー率64% (22/34)
回答No.5

こんにちわぁ 私の回答の方はもう一度確認願いたいのですが。 まず、一点目についてですが、 数式の中のドルマークがはずれていませんか? それで下にコピーしたことによって参照している範囲が 移動していませんか? それであれば5行目といいながらも実はG列は違う行を 参照しているという可能性が高いように思えるのですが・・・・ 二点目ですが、 indirectで参照しているセルは参照できるセルでしょうか? たとえば、シート名が実は違っているとか、 あるいは参照先はセルの結合がされているとか・・・ これができれば、 どこかのセルに担当者、月、カテゴリーを設定するだけで 各シートに一発で集計できるんですけどねぇ。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

>抽出範囲:「A1」は何を指しているのでしょうか? 現在開いているシートの抽出データの開始位置(左上)です。 すみません。設定を一箇所間違えてました。 D(売上月):=">=2005/4/1" E(売上月):="<=2005/4/30" としてください。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

各シートの検索条件範囲のシートを作成 A(カテゴリー):1 B(担当者):伊藤 C(単価1):">0" D(売上月):2005/4/1 E(売上月):2005/4/30 抽出したいシートで「データ」「フィルタ」「フィルタオプションの設定」 抽出先を「指定した範囲」にして リスト範囲:「元データの範囲」 検索条件範囲:「上記の検索条件範囲」 抽出範囲:「A1」 で抽出できます。 翌月、次四半期はD,E列の日付を変更するか、 別に条件用の範囲を指定してください。 ※範囲の1行目には必ず元データの項目名が必要です。 ※複数行に条件を設定した場合はOR条件で抽出されます。

Kaboo
質問者

お礼

ご回答ありがとうございます。 すみません。。抽出範囲:「A1」は何を指しているのでしょうか? A列が消えただけで抽出されませんでした。。

  • suzusan7
  • ベストアンサー率64% (22/34)
回答No.2

こんにちわぁ。 さて、一点目のうまく検索がいっていないのではいか? という点ですが、セルP7以降に#NUM!が出ているのであれば 5行目は該当しないデータということです。 (シートを見てるわけではないので間違っていたらごめんなさい) たとえば、元データの"伊藤"の後ろにスペースがあったりしても該当しません。 どの条件で該当していないかを見るためには、数式の   (Sheet元データ!$C$2:$C$300="伊藤")*   (month(Sheet元データ!$K$2:$K$300)=4)*   (Sheet元データ!$A$2:$A$300=1)*   (Sheet元データ!$G$2:$G$300<>"") の項目を順番に削除してみてはいかがでしょうか? もしくはif文で   =if(Sheet元データ!$C$5="伊藤",true,false) という感じで順番に5行目のどの項目が該当していないかを 確認してみてください。 2点目のindirectですが、 C5、C6に#REF!が出るのであれば、参照がうまくいっていないということです。 こちらで確認した分では(Excel2000ですが)問題なくいくようです。 これもindirectをはずして  ="Sheet元データ!E" & $P5 と入力してまずセルの番地が表示されるか確認してください。 セルの番地が出るのであれば、それをindirectを使うことで 参照ができるはずですから。 手間かもしれませんが、こちらではシートをみていないので 何が原因なのかはわからないものですから。 原因がわかれば対処方法もあると思うのですが・・・

Kaboo
質問者

お礼

ご回答ありがとうございます。 1点目ですが、 順番に削除してみながら確認してたら、何かの拍子(何の拍子?)に「5」と出ました。。。 そして試しに、元データの方で、2行目を行コピーして6~8行目に貼り付けてみましたが、 「6」「7」「8」は表示されません。行丸ごとコピーなので検索条件に合ってないというわけではないと思うのですが・・。 2点目は、 ="Sheet元データ!E" & $P5 と入れてみたら Sheet元データ!E2 と表示されるのですが、 =indirect("Sheet元データ!E" & $P5) に直すとまた「#REF!」となってしまいます。 Excelは2003です。

  • suzusan7
  • ベストアンサー率64% (22/34)
回答No.1

こんにちわぁ やりたい事はSheet元データにあるデータのうち 担当者、売上月、カテゴリー、単価1の該当するデータを抜き出し、 それらを別の印刷用のシートに表示するってことですよね。 それであればオートフィルターより配列関数を 使用したほうが、作業はしやすいと思います。 伊藤さんの4、5、6月、カテゴリー1、単価が空白以外の場合で考えるものとします。 作業列を使用するほうが効率がいいと思いますので、 PQR列の5~20行を作業列とします。 Sheet伊藤のセルP5に次式を入力します。 =Small(if((Sheet元データ!$C$2:$C$300="伊藤")*(month(Sheet元データ!$K$2:$K$300)=4)* (Sheet元データ!$A$2:$A$300=1)*(Sheet元データ!$G$2:$G$300<>""),row($A$2:$A$300),""),row()-4) 最後に確定する時にCtrlキーととShiftキーを押しながらEnterキーを押して確定してください。 (これが配列関数の使い方です。入力後は式の前後に{ }のかっこが追加されます。) これはC列で伊藤、K列の月が4、A列が1、G列がブランクでない行の行番号を 表示する関数です。 これをP20までコピーしてください。 セルQ5にもコピーし、4月を5月に変更して、同様にR5にコピーして6月に変更して 下にコピーします。 これで、行番号が表示されるばずです。 (該当するものがなければNUM!というエラーがでますので、適当にエラー処理を しておいてくださいね。) 次にセルC5に次式を入力します。 =indirect("Sheet元データ!E" & $P5) そうするとSheet元データのデータが表示されます。 5月ならQ5、6月ならR5にし、 単価1ならEをGに、合計金額ならIにして必要なだけコピーすれば お望みの表ができると思います。 ただ、配列関数を使用しているので、数によっては 少し動作が鈍くなるかもしれません。 それに我慢できないようでしたら、 マクロですかねぇ? 組み方にもよりますが、30行前後でできるのではないかと思います。

Kaboo
質問者

補足

ご回答ありがとうございます。 Sheet伊藤のセルP5に =Small(if((Sheet元データ!$C$2:$C$300="伊藤")*(month(Sheet元データ!$K$2:$K$300)=4)* (Sheet元データ!$A$2:$A$300=1)*(Sheet元データ!$G$2:$G$300<>""),row($A$2:$A$300),""),row()-4) と入力して下へコピーしてみたところ、 P5に「2」P6に「3」、P7以降は「#NUM!」と表示されました。 元データを見ると、条件に合うデータは2行目と3行目と5行目があります。。。 これは上手く検索されてないということでしょうか。 どうすればいいのでしょうか。。 それから、セルC5に =indirect("Sheet元データ!E" & $P5) と入力したところ、C5とC6に「#REF!」、C7以降は「#NUM!」と出ました。 申し訳ありませんが、引き続きアドバイスいただけると助かります。

関連するQ&A

  • EXCEL関数

    お世話になります。 現在、EXCEL関数で悩んでおります。 例えば       売上ランク   数量  単価 商品A    B       20    300 商品B    C       10    520 商品C    A       72    430 商品D    A       53    290 商品E    B       31    330 をEXCELに入力をしているとします。 このデータをABCランク毎に集計し、売上金額を自動計算したいと考えています。 SUMIFでは個々の数量や単価の集計はできますが、どのようにすればランク毎の売上金額を計算できますでしょうか? 決算時期に近付いており、膨大なデータを効率的に集計したいので、ご存じの方がいらっしゃいましたらご教授ください。 ※データからAランクだけを抽出し、その数量と金額の合計を出したいです。 よろしくお願いいたします。

  • excel2003のオートフィルタについて。

    ある列にセルの書式設定が日付で1月1日から12月31日まではいっているデータを指定した期間だけ抽出をしたいのですが、 先日までは問題なく抽出できていたのですが本日、急に抽出ができなくなってしまいました。 検索条件としては、(例)1月1日,以上,1月20日,以下,ANDで抽出していました。 文字列にすると抽出は可能なんですが日付で抽出を行わないと膨大なデータであるため検索が困難になります。 範囲を指定せずに1項目だけの日付の抽出はできます。 先日までは上記条件で抽出できていたので何か設定が変わってしまったのでしょうか?原因が解らず困っています。 ご教授お願いいたします。

  • (Excel)オートフィルターで表示した列同士の掛け算!!

    あるエクセルデータにオートフィルターをかけ、 ある特性をもったデータだけを抽出しました。 抽出結果のこのデータの中で、 ある列とある列との掛け算をした合計を出したいのですが、 どなたかご存じないでしょうか・・・・ たとえば、こんな感じです。 1.ディズニーランドの入園者別消費金額のExcelデータがある。 2.お客の年齢が書いてあるB列にオートフィルターをかけ、20代の若者だけを抽出。 3.抽出したうえで、彼らが使った金額(C列)に、何%を飲み物に使ったか(D列)という係数をかけて、飲み物に使った金額を出し、これを全員分(抽出されているすべての行分)合計し、20代の若者への飲み物の販売でディズニーランドに入った売上高を算出する。  という感じです。 早く終わらせなければならない処理ですが、 かなり煮詰まっています。助けてください・・・。

  • オートフィルタ後のデータから空白セルを数えたい

    はじめまして、 Excel2002(SP3)で、オートフィルタで抽出したデータから空白セルだけを数えたいのですが、subtotal(3)"countA"だと空白以外のセルしか数えられず、"Countblank"は抽出外のデータからも空白セルを拾ってきてしてしまうため、なかなかうまくいきません。 なにか良い方法はあるでしょうか?

  • エクセルで複数シートを一覧表にするには?

    教えてください。エクセルで複数シートを自動で別のシートに転記したいのですが、 やり方がわかりません。 各シートの空白部分を除いてデーターがある分だけを取り出して、金額に数式を入れて 合計金額を追加したいのですが・・・・・。 下記のような感じでできますか? 宜しくお願いいたします。    Sheet1     商品名  単価  数量        ****   000  000        ****    00   00   Sheet2     商品名  単価  数量        ****   000  000        ****    00   00   Sheet3     商品名  単価  数量        ****   000  000        ****    00   00 をSheet4に   シート名 商品名  単価  数量  金額   Sheet1  ****   000  000  0000(単価×数量)          ****    00   00  0000(単価×数量)                    合計金額  000   Sheet2 商品名  単価  数量  金額         ****   000  000  0000(単価×数量)         ****    00   00  0000(単価×数量)                   合計金額  000    Sheet3 商品名  単価  数量  金額         ****   000  000  0000(単価×数量)         ****    00   00  0000(単価×数量)                   合計金額  000

  • Excel2010 フィルタで抽出できない

    Excel2010(WindowsXP)のフィルタ機能で抽出できない場合があるようなのですが そういうものでしょうか? 以下のような10000行以上の重複しない14桁のデータで 10000行目の前後に空白セルがある場合 フィルタでB列の「10000000010003」以降のデータが抽出できません。 左からA列、B列 a b 1 (空白セル) 2 10000000000002 3 10000000000003 4 10000000000004 5 10000000000005 (この間も連続データ) 9997 10000000009997 9998 10000000009998 9999 10000000009999 10000 10000000010000 10001 10000000010001 10002 10000000010002 10003 10000000010003 10004 10000000010004 10005 10000000010005 10006 10000000010006 10007 (空白セル) 10008 10000000010008 10009 10000000010009 10010 10000000010010 ---

  • 【Excel】串刺し計算オートフィルの結果が不正

    Excelで、月毎に各店の売上の合計を出そうとしています。 例えば4月のブックで、A店・B店…E店の各店5つのシートと、全店の合計のシート、全部で6つのシートがあるとします。 そしてそれぞれのシートは、縦方向に日付、横方向に商品名が並ぶ表形式になっています。 ここで、各シートは行数・列数、そして配置が全く同じですので、合計のシートにその日その商品の全店の売上を、所謂串刺し計算で出すことができます。 例えばB2のセル…日付は1日、商品名はaで、 売上はA店、B店…の順に 500、600、700、800、900 となっています。 すると合計のシートのセルB2に、5店の売り上げを串刺し計算すると、 合計は3,500になると思います。 では、B3のセル、日付は2日で商品名は同じくaです。 売上は1,000、900、800、700、600です。 合計のシートのセルB3に串刺し計算すると、4,000円になる筈です。 また、C2のセル、日付は同じく1日で、商品名はbとします。 売上は300、500、700、900、1,000です。 合計のシートのセルC2に串刺し計算すると、3,400円になりますね。 でもここで、オートフィルという便利な機能があります。 合計のシートで、オートフィルを行うことによって、全店の各日・各商品毎の合計を一気に計算することができます。 串刺し計算した結果も、ちゃんと連続データで出てくる筈です。 それが…4月のブックでそれをやると、表示される計算結果が不正になるのです。 即ち、上記の例から、合計シートのセルB2から縦方向にオートフィルしても、横方向にオートフィルしても、全て3,500と表示されてしまうのです。 ただ、数式だけはちゃんとなっているのですが… 合計シートのセルB2には =SUM(A店:E店!B2) と数式が入っています。 では、B3には =SUM(A店:E店!B3) C2には =SUM(A店:E店!C2) と入っているんです。 なのに計算結果が不正になっている… 1ヶ所のセルに入っている数式をコピーして、他のセルにペーストしても、数式だけは正しいのに計算結果は正しくありません。 逆に、各セル1ヶ所1ヶ所串刺し計算すると、計算結果が正常に出てきます。 つまり数式をコピーすると不正扱いされるということです。 今、4月のブックでこの現象が起きています。 過去の月のブックでは、同じ操作を行って、計算結果は正常に出たのですが… 何故、今に限ってこうなるのでしょうか… Excel2010で、この現象が起きています。OSはWin7です。 また、問題のシートは全て、2003以前のバージョンで作るようなブック形式です。 何方か教えて頂けますでしょうか? 不足がありましたら補足します。

  • エクセルで、オートフィルターに多数の条件をいれたい

    表題のように、エクセルで、日付、商品名、分類、数量、単価、金額・・・などの情報を、横並びにして、その一つ一つのデータが縦に1000行強あるようなシートの構成において、オートフィルタを使ってある条件にあったもののみを抽出したいのですが、条件が二つまでならオートフィルタのオプションで選べますが、ランダムな条件を4つ、あるいは6つという風にたくさん入れたい場合、どうすればいいでしょう?データとしてはピボットで解決できて集計もできますが、ピボットだと最初のデータと見た目が全然違ってしまうのであとに続く処理にはふさわしくないのです。 関数を使って、あるシートから多数の条件にかなったものを抽出するにはどうすればいいでしょうか?よろしくお願いします。

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

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

  • エクセルで条件に合うものを別シートに抽出(関数)

    希望日    りんご   ばなな   みかん   担当   配達チェック 6月1日      2             1     山田 6月3日             4      2     佐藤       6月1日      3                   山田      済 6月2日             1            佐藤  6月2日                    2     山田 というデータがsheet1に入力されています。 <条件>  ・担当 山田のもの  ・6月2日以前(このデータでは1日と2日)  ・配達チェックが済でないもの(空白です) この条件を満たすものをsheet2に抽出したいのです。 希望日    りんご   ばなな   みかん   担当   配達チェック 6月1日      2              1     山田 6月2日                    2     山田 とsheet2に表示させるには関数でできますか? できれば、セル参照でA1セルに6月2日、B1に山田と入力すると抽出されるととても便利なのですが・・・。 皆様のお知恵を拝借させてください!!

専門家に質問してみよう