- ベストアンサー
エクセルのデータを別ファイルに抜き出すには?
内容なんですが、Aというエクセルファイルのsheet1にお客さんと注文数があるのですが、Bというエクセルファイルにsheet1からsheet100までレイアウトを作り個別にお客さんの注文数を集計したいと思っています。 毎月のことなので手間のかからないやり方はあるのでしょうか? うまく説明できてませんが良いやり方があれば教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
補足を見ますと1Sheetにつき3列(2列?)しか使わないようですが、各店毎に1Sheetというのは必須の仕様なのでしょうか?? そうでないならば、ピボットテーブルがまさにこういう処理をするための機能で、 行フィールド:商品名 列フィールド:店舗名 データアイテム:枚数 集計方法:合計 とすれば、ご要望と同様の情報が得られると思います。 あえて関数でやる場合は、 元データが "A.xls"ファイル "Sheet1"シート 2~10000行目 にあって、 B列:店名 D列:商品名 E列:枚数(文字列でなく数値で入っているものとする) であり、 集計用シートの A1セル:店名 A列4行目~:商品名 とすれば、 集計用シートのB4セルに =SUM(([A.xls]Sheet1!$B$2:$B$10000=$A$1)*([A.xls]Sheet1!$D$2:$D$10000=$A4)*[A.xls]Sheet1!$E$2:$E$10000) を配列数式として入力(Ctrl+Shift+Enter)して商品名の数だけフィルすればOKですが、商品の種類が多い場合には相当重たい処理になりそうです。
その他の回答 (3)
#3です。 関数でやる方法についての補足です。 #3で挙げた比較演算と算術演算を組み合わせた式よりも、 =SUM(IF([A.xls]Sheet1!$B$2:$B$10000=$A$1,IF([A.xls]Sheet1!$D$2:$D$10000=$A4,[A.xls]Sheet1!$E$2:$E$10000,0),0)) のように、素朴にIF関数をネストさせた方が若干処理が軽くなると思います。(IF関数は枝を計算しないようなので) 厳密に検証したわけではないので、気休め程度にお考え下さい。
- imogasi
- ベストアンサー率27% (4737/17069)
Sheet1には最小でも注文者名、注文品、注文数がある。 それをSheet2以下の別シートに分けたいのでしょうね、 「何別に」分けたいのでしょうか。得意先別や品物別・日付別など考えられますが。 質問するときは、読む人がどう解釈するか十分考えて表現しましょう。 回答ですが、関数でできなくもないが、関数は「抜き出しが不得手です(私はimogasi方式と称してたくさん回答してますが) 。式が複雑になります。それだけ動きが重くなります。 本質問はVBA向きだと思うのですが、VBAのプログラムの経験はありますか。 レポート(報告書)など以外の、ビジネスの問題をエクセルで処理しようとするとVBAがどうしても必要になるというのが経験から、私の持論です。
補足
下で書き忘れましたが、sheetにはお店の名前を入れ 商品名:枚数の集計です。 それと、sheet2となっているのですがデーターは支店から送られてきて、本社でまとめると言う形なので、本社で作った別ファイルのレイアウトに数字を抜き出したいと言うことなんです。 関数は抜き出しが不得意なんですか・・・ファイルが7Mあるので重くなるのは厳しいですね。VBAなんですが、まったく使えません。本を見ながら試したことはありますが書かれてる通りにしかできず答えていただけても理解は難しいと思います。 A001+商品名+枚数を別のエクセルファイルにまとめたいだけなんですけどね。
- banker_U
- ベストアンサー率21% (17/78)
もう少し質問を具体的にしてください。 ファイルAのSheet1に入っているのは、 お客さんと注文数 だけですか? 推測ですが日付や商品名とかもあり、それもファイルBに反映させたいんじゃないんですか? sheet1からsheet100というのは、 顧客ごとにシートを作ると言うことですか? それで、各シートに注文数(の合計?)を入れるだけならそんな形のデータに意味があるとは思えません。 元ファイルの内容とやりたいレイアウトの内容をもう少し公開しないと回答のしようが無いです。
補足
反映させたいのは商品名と数量だけです 日付もありますが日付は関係ありません A001 A店 11月1日 商品名A 100枚 A002 B店 11月1日 商品名B 500枚 A001 A店 11月5日 商品名A 200枚 A003 C店 11月5日 商品名C 100枚 これらがsheet1に何千行と入っている ものを別のエクセルファイルに1ヶ月分 の枚数の集計をお店ごとにsheetを分け て集計したいと思っています。 ちなみに、各シートに注文数(の合計?) を入れるだけならそんな形のデータに意 味があるとは思えません。とありますが 私には意味があるから質問してるのです。
お礼
ありがとうございます!イメージがつかめてきましたので、参考にさせてもらいます。また何かありましたらお力お貸しください^^