[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『リストで選択した複数条件からフィルタをコピペ』(にしんがハチ)
すみません、初心者でよくわからないのでご教授ください。Excel2007、WindowsVistaです。97-2003 ワークシートで保存しています。
まず"入力"シートがあります。データがこのように入っています。
担当 月 カテゴリ 顧客名 商品名 売上 粗利 山田 11月 カテゴリ1 **社 *** *** *** 田中 12月 カテゴリ5 **社 *** *** *** 野村 11月 カテゴリ2 **社 *** *** *** 佐藤 10月 カテゴリ8 **社 *** *** ***
※四半期ごとに新規シートを使い、案件数は最高で360件程度です。
次に"閲覧"シートのA7に「担当」のプルダウンリスト、B7に「月」のプルダウンリストを作ります。 (担当は6名、月は12カ月です)
そしてその下のA9からF162に至るまで、
_________商品名_売上_粗利_ カテゴリ1__________ (20行くらい) ______________ _合計___________ カテゴリ2__________ (20行くらい) ______________ _合計___________ カテゴリ3__________ (20行くらい) ______________ _合計___________ カテゴリ4__________ ・ ・ ・ という感じで、「どの担当が○月にそれぞれどんな商品を売って、それぞれ合計がどうなっているか」というのがわかるような一覧表を 「カテゴリ8」まで作りたいのですが、下記のようなフローしか思いつきません。
"入力"シートで「担当」「1月」「カテゴリ1」でフィルタをかけ、コピペする ↓ これを12月のカテゴリ8まで繰り返し!?
ただ、これだと600通り近くできてしまうので、たぶん無理です・・・ 何か良い式をどうかお教えください。 よろしくお願いいたします。
>四半期ごとに新規シートを使い、案件数は最高で360件程度 1ヶ月当たり 120件 担当 × カテゴリー = 48 で割ると 2.5 平均3行ほどですが。 担当、月、カテゴリーの3つを(この優先順位で)キーにして並び替えすれば簡単になります。 (NB)
もしくはピポットテーブルを使ってみるのはいかがでしょう? 担当者&月をプルダウンするのもやってくれますし。 (リベンジ!)
>NB様
すみません、それが、担当ごとの1ヶ月のデータは3ヶ月目までどんどん蓄積されるような運用ルールでして。。。 4月に20件処理→5月に20件(計40件)→6月に20件(計60件)という感じです。
また、担当によってカテゴリの累積データ数が全然違う、ということもあり。 佐藤さんはカテゴリ1が25件、カテゴリ2は1件、・・・ 田中さんはカテゴリ1が10件、カテゴリ2は20件・・・といった具合です。 なので余裕を見て20行〜25行用意しています。ひじょ〜に見づらい表になる仕様です。
並び替えというのはフィルタでしょうか? やりたいのは、フィルタをかけたものをカテゴリごとに表に貼りつけて行くようなことなんです。 理由は・・・ 「何年も前からこの表のこの書式を使っていたからこの形で見たい!」と言われてしまったからです。 なので、見づらくていいんです。
>リベンジ!様 フィルタもピボットもあるのだから、と私も思います。 ですがどうか表にうまいことフィルタをかけたものを転載する方法をお教えいただければと。。 If Range("A7")="佐藤" AND Range("B7")="10月" Then Worksheets("入力").Range("B5").AutoFilter Field:=3, Criteria1:="佐藤" Worksheets("入力").Range("B5").AutoFilter Field:=5, Criteria1:="10月" Worksheets("入力").Range("B5").AutoFilter Field:=7, Criteria1:="カテゴリ1"
end_row = Worksheets("入力シート").Range("G" & Rows.Count).End(xlUp).Row Worksheets("閲覧").Range("M5:P43").ClearContents Worksheets("入力").Range("J6:M" & end_row).Copy Sheets("閲覧").Select Range("A9").Select Selection.PasteSpecial paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Worksheets("入力シート").Activate ActiveSheet.ShowAllData
Else 〜
↑
自分はペーペーなので、これを繰り返す方法しか思いつきません。 年の瀬に申し訳ありませんが、何卒よろしくお願いします。
すみません(にしんがハチ) 今あるものをコピってきたのでいろいろとセル番号やシート名が狂ってますが無視してください・・・
並び替えというのは 「データ」タブの「並べ替えとフィルタ」グループにある「並べ替え」です。 データをコピーして目的のシートに貼り付け、カテゴリごとに並べ替えをします。 そのあと「データの集計」をおこなってはいかがでしょうか? 「データ」タブの「アウトライン」グループにある「小計」を実行すると、カテゴリごとに合計(小計)がでます。 やりかたの詳しくは よねさんのWordとExcelの小部屋:Excel2007(エクセル2007)基本講座:データの集計(小計) http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-syukei.html をどうぞ。 自動化したいなら、これを自動マクロで記録すればOKですよ。 (すずめ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.