• 締切済み

EXCEL:抽出・シートに分散させる方法2

いつもお世話になってます。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1430444 で質問させていただいた者です。 たくさんご回答をいただき、No.13の方の方法で何とか目的の物を作ることが出来たのですが、 計算式が多いためか、処理に時間がかかってしまい、困っています。 大変勝手なのですが、どなたかこれをマクロ化してはいただけないでしょうか・・。 よろしくお願いします。

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

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんばんは。 >複数条件で抽出して、指定したセルに貼り付けをすることにはどのようにしたらいいでしょうか? それは、私のマクロでは、第二検索値(Criteria2) に、入れて上げさえすれば可能です。 ただ、みなさんのマクロをお試しになったご様子がありませんね。また、印刷用で、という理由でシートにデータを振り分けしてしまうというのは、賛成できません。印刷用にするのは、テンポラリシートにして、印刷するときだけ、そのデータを出力したほうがよいです。いわゆるデータベースとしての使い方です。 >例えば 担当・商品名 (実際はもっと細かい振り分け方をしたい)ごとに一まとめにしたい(複数条件で抽出)場合はどのようにしたらいいのかと もし、それをこれ以上、細分化し、シート別に振り分けたら、それは管理的にも大変です。できれば、オートフィルタで、そのままの場所で選り分けたほうが簡単かもしれません。また、フィルタオプションを使用してもよいかもしれません。

Kaboo
質問者

お礼

印刷用として振り分けしたいのには、この元データから抽出した内容の他に、手動でも入力しなければならない項目があるからなのです。 他の仕事が入って来てしまってなかなか進められていませんが、 教えていただいた方法を試させて頂いてまた報告させて頂きます。 ありがとうございました。

  • fly_moon
  • ベストアンサー率20% (213/1046)
回答No.4

>複数条件で抽出して、指定したセルに貼り付けをすることにはどのようにしたらいいでしょうか? ?????どういうことですか????? この説明では複数条件で抽出しているようにみえないのですが。ただ、データの表示順序がまずは右に行き、2件になると又、下のはじめの位置(左)に行っただけに見えますが。

Kaboo
質問者

補足

説明足らずですみません・・。 リストの中から、まず担当者別にシート分けするのですが、 担当者ごとのシートは印刷用なので、罫線・書式などがあらかじめ設定されており、 項目ごとに振り分けなければならないセルが決まっています。 >複数条件で抽出して、指定したセルに貼り付けをすることにはどのようにしたらいいでしょうか? 例えば 担当・商品名 (実際はもっと細かい振り分け方をしたい)ごとに一まとめにしたい(複数条件で抽出)場合はどのようにしたらいいのかと お聞きしたつもりだったのですが、わかりにくかったようで申し訳ありませんでした。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 何人も、同じようなものを作っても意味がありませんが、一応、出来てしまいましたので、掲示しておきます。 現在のマクロは、積み上げ式にデータを増やしていくものではありませんが、修正は可能です。コピー先のデータは、一旦削除されます。このマクロの出力スピードは非常に速いはずです。 担当者のシートがない場合は、自動的に加えらてから、コピーされます。 '<標準モジュール> Sub PickupSort()  Dim Rng As Range  Dim UniqData As Range  Dim crt As Object  Dim i As Long, d As Long  i = 1  With ActiveSheet   Set Rng = .Range("A1", .Range("A65536").End(xlUp).Offset(, 3))   'ユニークデータの取得   Rng.Columns(2).AdvancedFilter Action:=xlFilterCopy, _     CopytoRange:=.Cells(1, 256), Unique:=True   Set UniqData = .Range(.Cells(1, 256), .Cells(1, 256).End(xlDown))   'オートフィルター   For Each crt In UniqData.Offset(1).Resize(UniqData.Rows.Count - 1)    Rng.AutoFilter Field:=2, Criteria1:=crt.Value    'シートのチェック    On Error Resume Next    d = Worksheets(crt.Value).Index    If Err() > 0 Then     Worksheets.Add After:=Sheets(Sheets.Count)     Worksheets(Sheets.Count).Name = crt.Value    End If    Err.Clear    On Error GoTo 0    'コピー先のデータを一旦消す    Worksheets(crt.Value).Cells.ClearContents    'データのコピー    Rng.Copy Worksheets(crt.Value).Range("A1")    '2列目削除    Worksheets(crt.Value).Columns(2).Delete    i = i + 1   Next crt  End With  UniqData.ClearContents  Rng.AutoFilter  Set Rng = Nothing: Set UniqData = Nothing End Sub

Kaboo
質問者

補足

ご回答ありがとうございます。 例えば 「Sheet 佐藤」を、 行1 顧客名(列A)  商品名(列C)  金額(列D)   顧客名(列G)  商品名(列I)  金額(列J) 行2 A社        バナナ     100       A社        リンゴ     200 行3 A社        バナナ     300 のように、複数条件で抽出して、指定したセルに貼り付けをすることにはどのようにしたらいいでしょうか?

  • fly_moon
  • ベストアンサー率20% (213/1046)
回答No.2

私も作ってみました。もう先にご返答あったのですが、作ってしまっていたのですいません。 'コピー開始====================================== Sub 担当者別シート作成() '設定開始------------------------------------------------------------------------- '担当者名の入っている列を指定 Const tantoCol As String = "B" 'コピーしたい列を,で区切って指定(担当者ごとのシートの列の順番) Const copyCol As String = "A,C,D" '-------------------------------------------------------------------------設定終了 Dim st As Worksheet Set st = ActiveSheet Dim r As Long Dim cc cc = Split(copyCol, ",") Dim tantosya As String Dim TantoSheet As Worksheet Dim tr As Long On Error GoTo NewSheet For r = 2 To st.Range("A65536").End(xlUp).Row tantosya = st.Range(tantoCol & r).Value Set TantoSheet = Sheets(tantosya) tr = TantoSheet.Range("A65536").End(xlUp).Offset(1).Row ' + 1 For i = LBound(cc) To UBound(cc) TantoSheet.Cells(tr, i + 1).Value = st.Range(cc(i) & r).Value Next Next Exit Sub NewSheet: Sheets.Add.Name = tantosya Set TantoSheet = Sheets(tantosya) For i = LBound(cc) To UBound(cc) TantoSheet.Cells(1, i + 1).Value = st.Range(cc(i) & "1").Value Next Resume Next End Sub 'コピー終了====================================== もし使っていただけるなら、設定開始から設定終了までを環境にあわせて設定してください。 注※データのあるシートをアクティブにしてから行ってください。 at121さん出過ぎたまねですいません。

Kaboo
質問者

補足

ご回答ありがとうございます。 例えば 「Sheet 佐藤」を、 行1 顧客名(列A)  商品名(列C)  金額(列D)   顧客名(列G)  商品名(列I)  金額(列J) 行2 A社        バナナ     100       A社        リンゴ     200 行3 A社        バナナ     300 のように、複数条件で抽出して、指定したセルに貼り付けをすることにはどのようにしたらいいでしょうか?

  • at121
  • ベストアンサー率41% (85/206)
回答No.1

アクティブの シート (リスト) 顧客名  担当者  商品名  金額 A社   佐藤   バナナ  100 を  B列 担当者で各項目を 担当者シートごとに振り分け    ・担当者シートが無いときは担当者シートを一番前に作成    ・担当者シートがあるときは 下に追加 Sheet 佐藤 顧客名  商品名  金額 A社   バナナ  100   ※・・ 日付の項目が無いのは・・  使えないかも・・        日付の項目を追加することを勧めます。 ↓ 標準モジュールにコピー ↓ Sub 担当者シート別に振り分け() Set リスト = ActiveSheet For Each 担当者 In リスト.Columns(2).SpecialCells(xlCellTypeConstants) If 担当者.Row <> 1 Then '見出し行はスキップ '既存の担当者シート が無い場合は 新しいシート作成 On Error Resume Next Application.DisplayAlerts = False Sheets(Trim(担当者.Value)).Select If Err Then Sheets.Add before:=Sheets(1) ActiveSheet.Name = Trim(担当者.Value) Range("A1:C1") = Split("顧客名/商品名/金額", "/") '見出し設定 End If Application.DisplayAlerts = True On Error GoTo 0 Set 置き場所 = Range("A65536").End(xlUp).Offset(1) 置き場所.Offset(0, 0) = 担当者.Offset(0, -1) '顧客名 置き場所.Offset(0, 1) = 担当者.Offset(0, 1) '商品名 置き場所.Offset(0, 2) = 担当者.Offset(0, 2) '金額 End If Next リスト.Select End Sub

Kaboo
質問者

補足

ご回答ありがとうございます。 例えば 「Sheet 佐藤」を、 行1 顧客名(列A)  商品名(列C)  金額(列D)   顧客名(列G)  商品名(列I)  金額(列J) 行2 A社        バナナ     100       A社        リンゴ     200 行3 A社        バナナ     300 のように、複数条件で抽出して、指定したセルに貼り付けをすることにはどのようにしたらいいでしょうか?

関連するQ&A

  • 恋愛依存症とは???

    こんにちは!! いつもお世話になってます。。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=629254 http://oshiete1.goo.ne.jp/kotaeru.php3?q=630879 http://oshiete1.goo.ne.jp/kotaeru.php3?q=633725 http://oshiete1.goo.ne.jp/kotaeru.php3?q=644351 ↑↑↑↑↑ 今まで質問してきたものですが これを見て私は恋愛依存症だと思いますか?? 自分でもそうなのかな??と思ったりしますが どうなんでしょう?? そしてどうしたら恋愛依存症から立ち直ることが できますか?? やっぱり趣味とか見つけたり仕事に打ち込んだりするのが一番なんでしょうか?? 私は、今の彼のことで悩んでいますが、 なんとか立ち直りたいんです!! 今の自分がいやでいやで堪らないんです。。 彼だけのことを考えている自分が情けないんです。。 恋愛依存症になったことがある方、そうでなくても構いませんが何かいい方法はないでしょうか?? よろしくお願いします!!

  • 今の日本の選択  

    お世話になっております。 サリジェンヌです。 今、日本は重要な局面にいると思います。 今後の日本は弱者切り捨て型社会にすべきか、 国民皆を導いていくべきか皆様のご意見を伺いたく思います。また、前者の場合は、その方向に進んでいるように見えますが、後者の方向に針路変更したい場合はどうしたらよいとお考えでしょうか? 因みにサリジェンヌは後者派です(↓頑張ってきました(参考までに)) http://oshiete1.goo.ne.jp/kotaeru.php3?q=2254612 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2248694 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2245746 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2265951 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2265951 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2126838

  • [ No.964924 質問:EXCELで同じ内容の行を削除 ]について詳しく教えてください。

    エクセルで同じ内容のセルのある行を自動的に削除したく、No.964924の回答No.2を実行したいのですが、マクロがまったくわかりません。このマクロはどのように記録、実行するのでしょうか。 勉強不足で申し訳ありません。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=964924

  • Excel-VBAで、Loop処理させるセルの範囲を指定したい

    わたしが http://oshiete1.goo.ne.jp/kotaeru.php3?q=2222401 に示したマクロですと、 1行目から100列×100行の範囲を塗られてしまいますが、 【5行目から】、100列×100行を塗らせるように するには、どのように書き換えたらよいでしょうか。 よろしくお願い致します。

  • 「おいそりゃないだろう」の意味

    いつもお世話になっております。 「期待させておいて、おいそりゃないだろう!の弱さ」の中の「おいそりゃ」はどういう意味でしょうか。口語ですか。理解できなくて困っております。ご存知の方、ご指導を宜しくお願い致します。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=887392 (NO.10の方の発言)

  • ここの「に」はどういう意味なのでしょうか

    いつもお世話になっております。 ある助詞についてお聞きしたく思います。 「調理前のものに使うように感じるのは、材料名としてよく料理の本に書かれるからでしょう。」 どうして「ものに使う」になるのでしょうか。「ものと使う」か「ものとして使う」は使わないのでしょうか。 (http://oshiete1.goo.ne.jp/kotaeru.php3?q=1004082 No.5の方の回答の中で出てきた言葉) よろしくお願い致します。

  • enterでsubmitされない方法

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=101678 で、enterでsubmitされない方法が記載されているのですが、 No.3の回答に対して、もうすこし詳しく具体的に教えていただけないでしょうか? 当方、javaは、まったくわかりません。 よろしくお願いします。

  • この教えて!goo> 教育 > 歴史で

    No.711850の表示(掲示板)おかしくないですか? http://oshiete1.goo.ne.jp/kotaeru.php3?q=711850

  • DVD-RWの使用方法

    こん○○は! http://oshiete1.goo.ne.jp/kotaeru.php3?q=821942 http://oshiete1.goo.ne.jp/kotaeru.php3?q=822911 でお世話になってる者ですペコリ(o_ _)o)) 色々相談に乗ってもらって、やはり今度はDVD-RWで色々実験してみようと思ってるんですが、DVD-Rでフォーマットしてしまってメディアを無駄にしたりしてたのでDVD-RWで焼く為の注意点を伺いたいです。 何度でも(ってのは語弊ありますが)書き直せるみたいなんですが、消すのは今度こそフォーマットでいいですか?(もうすでに一度フォーマットしてしまってますが・・。) それとも別の方法で消さないといけないですか? こんな点、注意あるよって事を教えてほしいです。

  • FX取引会社

    過去ログ http://oshiete1.goo.ne.jp/kotaeru.php3?q=1994452 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1977614 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1964396 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2010314 に、目を通したんですが、結局どれにしたら良いのか悩んでいます。 一応、FXのことや取引会社の選び方など一通り勉強しましたが、それでも信用や使い勝手まではわかりませんので。。 宜しければ、お勧めの会社をあげていただけたら幸いです。 ※今、トレイダース証券では美味しいキャンペーン中みたいですね。 http://www.traderssec.com/ex/adver/kawase/anniv_cam/

専門家に質問してみよう