• ベストアンサー

ExcelのVBAで、グループ化以外を集計したい

Excelで各シートのデータを集計する際に、 不要なデータを各シート内でグループ化して隠しています。 最終的にグループ化されていない各シートのデータを別のシートで集計したいのですが、 グループ化後に表示行全体を選択し、コピーペーストすると、 グループ化されているデータもコピーされてしまいます。 これをマクロを使って、表示されているデータのみ集計できるようにしたいのですが、 可能でしょうか? マクロの記録を使用しながら、コード書けるレベルで、 そもそも、グループ化のデータもついてきてしまうので、マクロの記録もできません。 ご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

>グループ化して隠しています をもう少し具体的に説明してほしかった。 ーーー 値だけの代入だが、同一シートの下部セル範囲に出している(注意) Sub Macro3() d = Range("A65536").End(xlUp).Row MsgBox d c = Range("Z2").End(xlToLeft).Column Range("A1:D" & d).SpecialCells(xlCellTypeVisible).Select r =d+5 For Each cl In Selection Cells(r, cl.Column) = cl If cl.Column = c Then r = r + 1 End If Next End Sub これをテスト的に実行してみて、良く考え、別シートの場合や、元シートが複数ある場合について勉強のこと。 >マクロの記録もできません これも編集ージャンプーセル選択ー可視セルのマクロの記録が役立つのだ。 ーー 「グループ化」というのが最適方法なのか、疑問あり。 もっとやりたいことを(質問者は方法を書かず)文章化して、別に関数ででも(集計結果だけで良いのなら)出来ないか、質問しては。 VBAでというのも、背伸びしすぎではないか。 こういうシートが多数あるや非表示セルの扱いなどVBAの勉強が、進んでからの課題と思う。

iwatobi7
質問者

お礼

ご回答ありがとうございました。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

worksheets("シート名").range("表範囲全体").specialcells(xlcelltypevisible).copy _  destination:=worksheets("Sheet2").range("A1") のように。 #参考 表範囲を選択する Ctrl+Gを押す 現れたダイアログでセル選択をクリックする 現れたダイアログで可視セルにマークしてOKする コピーする 貼り付ける。

iwatobi7
質問者

お礼

ご回答ありがとうございました。 可視セル このすばらしい機能を知らずにいました。 簡潔な回答をいただきわかりやすく、助かりました。 ありがとうございました。

関連するQ&A

  • エクセルのグループごとに集計をした表の並べ替え

    エクセルで入力した表を、データ→集計を使ってグループごとに小計を出しました。 そこで、次にこの小計の数値を基準として並べ替えをおこないたいのですが、どうやればいいのかわかりません。小計のみを表示して、他のシートにコピーすると、データ全てがコピーされてしまいます。 私が欲しいのは、各グループの小計のみが表示されている表なのですが、そういうことはできないのでしょうか?ご教授願います。

  • VBAのグループ化について

    VBAのグループ化について教えてほしいことがあります。 複数の行をグループ化していくVBAのコードがあるのですが、集計行を詳細データの上に表示させたいと思っています。 ただ作業がいくつものブックにわかれているので、一回一回コードを走らす前に、[アウトライン]-[詳細データの下]のチェックを外していくことになるのですが、これを手動でなく、VBAの方でできないでしょうか? 「できねーよ、バーカ」などの返信でも構いませんので、よろしくお願いします。

  • excelでのデータ集計

    エクセルで、合計を出すために、データ集計を使いました。 それを別のシートにコピーすると、集計された行だけを貼り付けたいのに、集計もとの、合計の行以外の行もコピーされてしまします。 集計した行だけを抽出し別シートにコピーしたいのですが、できますか?

  • 複数シートに振り分けたデータをそれぞれ集計したい

    こんにちは。 商品コード 名称  金額      業者 100    PC1  10,000  ア 110    PC2  10,000  ア 200    PC3  20,000  イ 300    PC4  30,000  イ 上記のようなデータがシート1にあるとして、業者毎に他のシートにデータを転送するまでは何とか無事にマクロを組むことが出来ました。 この後、業者毎に分けたそれぞれのシートの最終行で金額の集計をしたいのです。 例えばシート2の業者アのデータであれば↓ 商品コード 名称  金額      業者 100    PC1  10,000  ア 110    PC2  10,000  ア 総計          20,000   同じようにシート3の業者イのデータ、シート4の業者ウのデータ・・・を集計したいのですが、どの様なマクロを組めばそれぞれのシートの最終行で集計が表示されるのでしょうか? ちなみに、商品数、業者数とも変動するため、固定値が入れられません。 本やインターネット等でいろいろ調べてみたのですが、分かりませんでした。 お分かりになる方がいらっしゃいましたら、どうかご教示ください。 宜しくお願い致します。

  • エクセルの集計について

    エクセルの集計について エクセルでのデータ集計でこのパターンが多いのですが、手作業でやると非常に稼動がかかりなんとか関数を使ってできないかと思いますが、考えても思い浮かびませんでした。 どなたかお知恵をお貸しください。 添付ファイルの「Sheet1」のA列の順番を入れ替えて「Sheet2」のようにしたいです。 (実際はもっと項目が多く、A列の項目も「Sheet1」と「Sheet2」は完全一致ではありません) できるかわかりませんが、「Sheet1」のA列から「Sheet2」のA列の項目を検索し、その行の数値を 「Sheet2」に入力するという関数があれば教えていただきたいです。 「Sheet1」は毎月データが変わるので、新しいデータをコピー&ペーストすれば「Sheet2」が完成するように関数を設定しておきたいです。 うまくやりたいことが説明できているか不安ですが、よろしくお願いします。

  • Excel VBA 集計方法

    1つのファイルに2つのシートがあります。 集計結果を反映するシートと元データのシートで別れています。 <元データシート> 品番 品名    バージョン  数量 11 ABC Soft      2000 4 22 XYS Beta 2003 3 23 HU22 hyoukaban 2000 4 45 298 Software 1998 7 22 XYS Beta 2003 11 25 XYS Beta 2008 3 <集計結果シート> 品名 バージョン 数量 XYS Beta 2008 3 XYS Beta 2003 14 298 Software 1998 7 ABC Soft 2000 4 HU22 hyoukaban 2000 4 ※表がずれていると思います。 バージョンは4桁の数字です。 マクロを実行して、自動的に元データの情報を集計して 集計結果シートに反映したいと思います。 (1)品番は一意の番号です (2)同じ品名ごとに並べて、同じ品名が見つかった場合はバージョンの新しいものが上になるようにしたいです。 (3)品番は集計結果シートには反映していません。 集計結果シートのような結果にするには、どのようなマクロを書けば いいのか悩んでいます。 サンプルコード等参考になるものがございましたら、お教えください。

  • エクセルの集計について

    エクセルの集計について エクセルでのデータ集計でこのパターンが多いのですが、手作業でやると非常に稼動がかかりなんとか関数を使ってできないかと思いますが、考えても思い浮かびませんでした。 どなたかお知恵をお貸しください。 添付ファイルの「Sheet1」のA列の順番を入れ替えて「Sheet2」のようにしたいです。 (実際はもっと項目が多く、A列の項目も「Sheet1」と「Sheet2」は完全一致ではありません) できるかわかりませんが、「Sheet1」のA列から「Sheet2」のA列の項目を検索し、その行の数値を 「Sheet2」に入力するという関数があれば教えていただきたいです。 「Sheet1」は毎月データが変わるので、新しいデータをコピー&ペーストすれば「Sheet2」が完成するように関数を設定しておきたいです。 添付ファイルが1つしか設定できないようなので、「Sheet1」「Sheet2」を仮想的に1つのシートにさせていただきました。 うまくやりたいことが説明できているか不安ですが、よろしくお願いします。

  • データの集計をして、Excelのブックに保存する処理

    1500人分のデータ(有給残日数・振休未消化日数・時間外)を所属別に集計して、 内訳と所属の合計値を所属別にブックを作成して保存し、それに全体の平均値を出したシートを追加して、 グラフを作成し、該当所属長にメールで送信するという作業が毎月あり、 かなりの時間をかけてコピー・ペーストしながら手作業でやっております (なんせ50箇所もあるため、50個のブックに分けるのが大変です。) この一連の作業を、なんとか自動化できないものでしょうか? Excelのマクロを今勉強中で、操作しながら記録するのと、少し改変することができる程度で、詳しい知識はもちあわせておりません。 Accessも、クエリはあつかえますが、SQLとかはわかりませんし、こちらも詳しい知識はもちあわせておりません。 データとしては、 本部コード・所属コード・所属名 ・社員番号・氏  名・時間外対象フラグ・有給残・振休日数・時間外  999900 ・ 999999 ・××支店・777777 ・磯野並平・      Y   ・  10  ・   3  ・  5.5  ・  ・  ・ ××支店のブック  シート1・・・データシート:××支店 所属者のデータ・最終行に合計表示  シート2・・・全体の平均値:××支店の平均値(時間外の合計÷時間外対象者の数)(有給残の合計÷人数の合計)(未消化日数の数÷人数の合計)                ○○支店の平均値 同上   【全支店共通】  シート3・・・グラフ【全支店共通】 といったかんじにしたいのです。 シート2は、グラフを作成するためのものなので、グラフさえできれば、なくてもかまわないです。 Accessを使って、本部コードごとに集計して、Excelにエクスポートをして、その後はマクロでグラフを作成するのがいいのかなと思いますが、本部ごとのデータをそれぞれ分けてエクスポートすることが可能かどうか、マクロでグラフを作成するほうほうがわかりません。 Excelですべてできるものでしょうか? Access大辞典やExcelのマクロの本を買い、インターネットで調べたりいろいろしておりますが、結局どのようにしたらいいのかという根本的なところがわかりませんので、困っております。 どうかお知恵をお貸しください。 よろしくお願いいたします。

  • EXCEL VBA 別シートへデータ集計

    お世話になります。 EXCEL VBAを使って下記のことを実現したいです。 [やりたいこと] [データ]シートに社員情報が4人分入っています。(本当は可変です) [データ]シートに"集計"というボタンを作ってクリックするとVBAが動いて[集計]という シートにデータを集計したいのです。この[集計]シートのフォームが少し変わっていて一人に つき3行使用します。次の人はまた3行、また次の人は3行と繰り返していきたいのです。 上記やりたい事を画像にもしてみました。 上記動作を実現するVBAコードをどなたかご教授いただけませんでしょうか? 何卒よろしくお願い致します。 環境 EXCEL 2017 Win7

  • VBAでの行集計

    VBAでの行集計 いつもお世話になっております 今 マクロでの行集計で困っております。 お力をお貸し下さい m(__)m したいことは B列最終セルを見つけ出し 列の合計を出す 合計を右横最終セルまでコピーする 最終はR列までです そこで下記のマクロで合計は出しました Dim BeforePos As Long BeforePos = Range("B4").End(xlDown).Row Cells(BeforePos + 1, 2).Formula = "=SUM(B4:B" & BeforePos & ")" このセルの数式を右最終列までコピーをしたい それだけのことですがうまくいきません どうかよろしくお願いします

専門家に質問してみよう