- ベストアンサー
エクセルについて教えてください
エクセルのデータをある項目毎にシート分けたいのですが、 何かいい方法ありませんか? エクセルデータを取引先毎にシートを分けていたのですが、 数百件の取引先をシート別に分けるのが相当な負担なのです。 (取引先約700件、全件数13万件) 例 取引先 取引先名 菓子名 金額 1234567 明治 チョコ 132 1234567 明治 チョコ 148 1234567 明治 クッキー 132 7656211 ロッテ チョコ 148 7656211 ロッテ ガム 105 7656211 ロッテ ガム 105 ※エクセルは2007です。 よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
方法はあります、簡単です。 でも700ものシートを作ってそのあとどうしたいの? 印刷するだけなら 取引先別の様式のシートをひとつ作ってすべての取引先を1取引先別に転記して印刷すればいい。 >取引先約700件、全件数13万件 Excel2007になってこの条件が可能だからと700ものシートに13万件ものデータを分配するのは「非効率」「稚拙」と感じます。 >エクセルデータを取引先毎にシートを分けていたのですが、 そのあとどう使うの? 例えばある取引先が見たければ700のシートタブの中から選ぶわけでしょう? それならば取引先一覧シートの目的の取引先を選ぶと(取引先コードを入力する、一覧でダブルクリックするなど)したら、そのデータが見れるようにしたらいいのではないでしょうか。 必要な時に必要な取引先のデータが取り出せるようにするべきではないでしょうか。 そのあとある取引先についての分析なりが必要なら、そのデータをブックに保存すればいい。 マクロが難しければオートフィルターでも同じようなことができます。 オートフィルターをマクロで制御することもできます。 同じデータを2重に作るのではなく。同じデータの見せ方が違う。という風に考えるべきです。(元データに変更があったらもう一度分配マクロを起動して待たなきゃならない、今必要でもない取引先のために) Excelにもデータベース的な機能があります。 データベースというものが必要になったのは「データの一元化」が大きな目的です。 同じデータを幾種類ももつと大変です。極力同じデータを持たずに多様な見せ方を実現するためのデータベースなのです。 自分のしたいことをもう一度深く考えてください。Excelは「結構使えます」深い要求にも答えられると思います(それなりの”やる気”と"時間”は必要かもしれませんが)
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
データ数の多いものを省力化したい時は、プログラム(この件ではエクセルVBA)しかないでしょう。 しかしこんな(会社別にしても)多量のデータをシート別に分けてどうするのかな。エクセルでやる課題を超えているのでは。分けることで不便にもなる面が出る。合計や件数や加工・集約データがほしいなら別の方法があるのでは。意図とか目的は語らず、自分の発想の路線で質問しているような質問が多いが、その路線そのものを熟練者に相談すると目からウロコということもありえる。 ーーーー VBAでやるなら (1)会社コード列でソートし、会社コードの切れ目を捉え、直前の切れ目行から今回の切れ目までをコピーして、新たなシートを挿入して張り付ける。会社数だけプログラムで繰り返し。 (2)会社コード列の切れ目のコードでフィルタを掛けて、出てきた結果を新シートに貼り付ける。会社数だけ繰り返し。 こんなところかな。 VBAの作成経験はありますか。業務にエクセルを使う(本当はエクセルハそういうものに向いてないと思うが)なら、VBAが使えることは必須だと思う。 勉強してください。 上記のような、こういう方法論はエクセルなど知らなくてもおもいつくはず。そういう点は考えてみたのかな。丸投げでは。
- 135ok
- ベストアンサー率34% (26/75)
No.3です。 シート1のデータを名前ボックスで名前をつけておくと、簡単に作業が行えます。 たとえば、次の通り名前をつけたとして A~D列のデータを表1 F列のデータを表2 リスト範囲 表1 検索条件範囲 表2 抽出範囲 sheet2!$A$1
- 135ok
- ベストアンサー率34% (26/75)
- Trick--o--
- ベストアンサー率20% (413/2034)
VBAで 連想配列(Dictionaryオブジェクト)で 「ある項目」名をキー(添え字)にして一旦格納し キーと同名の(もしくは、キーに関連付けられた名前の)シートに書き出す Dictionaryを使わないのなら 「ある項目」名と同名(もしくは以下略)のシートを探し シートが存在すれば書き出し 存在しなければシートを作ってデータを書き出す 後者のほうが直感的にできるかな。
- korapisi
- ベストアンサー率45% (16/35)
人力でやるなら取引先をキーにしてソートし、切り出していく方法でしょうか。 分割してしまうと逆にやりにくい場合もあるので、(単価の一括変更とか)オートフィルタで見たい部分だけ見るという手もあると思います。