• 締切済み

ExcelVBAのコピーもしくは集計方法

ExcelVBAについて質問させて下さい。 いくつもの区分に分かれたデータが以下のように並んでいます。(区分は80程度あります) A   | B | C | D | E | F | G | H | ------------------------------------------- 1 | 行ラベル | 11 | 12 | 13 | 14 | 15 | 21 | 22 | ------------------------------------------- 2 | 123456 | | | | | | | | ------------------------------------------- 3 |(性別:男)1| | | | | | | | ------------------------------------------- 4 | (年代)40 | 1 | 5 | | | | | | ------------------------------------------- 5 | (年代)45 | | | | 2 | | | | ------------------------------------------- 6 | (年代)50 | ------------------------------------------- … 16| (年代)100| 1 | 2 | 3 | 2 | 1 | | | ------------------------------------------- 17|(性別:女)2| ------------------------------------------- 18|(年代)40 | ------------------------------------------- … 30|(年代)100| ------------------------------------------- 31| 234567 | ------------------------------------------- 32|(性別:男)1| ------------------------------------------- 33| (年代)40| … ・「123456」「234567」は区分コードです。 ・( )を含めた文字は、実際の表にはありません。 ・区分ごとに「男」と「女」があり、それぞれ「40」から5才刻みで「100」まで年代があります。 ・行ラベル「11」「12」はあるデータ名を数値化したものです。  (1)区分コード  (2)性別  (3)行ラベル  (4)年代 以上の4つの条件が集約された表です。 ・この表は別にデータがあったのではなく、これを与えられました。マクロなどで加工していません。 ・年代は数値が入っていない場合には、行が無い場合があります。40代は何も数値がないので、45から始まるなど。 この表を使って何をしたいかというと、行ラベルの「12」「13」「14」「15」だけに絞り別シートに抽出し、区分コード別に表を作りたいのです。表を作成するときには、抜けている年代もきちんと入れて。例え値が0でも。 以前、ここでの質問で複数条件で一致した場合の集計方法を教えていただきましたので、A列をコピーして、「区分コード」「性別コード」を次のコードが出てくるまでコピーできれば同じことができると考えました。 ですが、次のコードが出てくるまでのコピーのコードの記述方法、列をコピーするので区分コードの行では、性別コードの部分もコピーして上書きしてしまう方法が分かりませんでした。 一番は、こんなややこしい表の集計方法を教えていただけましたら幸いですが、もしくは、次の値が出てくるまで同じもののコピーの繰り返しと特定の文字は無視して上書きの方法を教えて下さい。 例えばなのですが、「123456」がある列に対して、「1を空白にする」という置換を行ったら「23456」になってしまいますか? 質問が多くて申し訳ございません。

みんなの回答

回答No.1

正直、質問内容がよくわからないので、回答が見当違いだったらごめんなさい。 ある列に対して、新しい値が出てくるまで同じ値を設定したい。 各コードは桁数でのみしか何を表しているかわからない。 といった感じでしょうか? 例えば、質問に上がっている表であったとして、 ・A列に列を追加(今のA列がB列にシフト) ・A2に 123456 を入力 ・A3に =if( len( B3 ) = 6, B3, A2 ) を入力 ・A3をコピーして、A4~最下行へ貼付け とすると、新しい6桁の値(区分コード)が出現しない限り、その値が入る、ということができると思います。 性別であれば len() = 1 にしたり、桁数で判定できないならば len を使わず、何か「そのコードである」ことを表す条件を指定してあげる、といった感じでどうでしょうか。

minminwamidori
質問者

お礼

遅くなりまして申し訳ありません。ありがとうございました。ちょっと違うのですが、私の書き方がいけないのだと思います。でも参考にさせていただきます。

関連するQ&A

  • Excelの集計結果だけをコピー貼り付けしたい

    Excelのデータ>集計で表の合計を出すまではできました。合計欄を見るとSUBTOTAL関数で集計されています。この合計欄だけを別の表に貼り付けたいのですが、どうしたらよいのでしょうか。貼り付けようとすると集計されていない元のデータも出てきて、これでは折角集計しても集計部分だけの加工ができなく困っています。例では以下のとおりです。よろしく教えてください。 コード     数値 1       2 1       3 2       3  2       4  の表を集計すると コード     数値 1データの合計 5 2データの合計 7 となり、この2行分だけを別の表にコピーしたいのですが、貼り付けると コード     数値 1       2 1       3 1データの合計 5 2       3  2       4 2データの合計 7 となってしまい、集計行だけを貼り付けることができない。

  • エクセルでの集計方法

    たとえば、このようなリストが500行くらいあります。 コード 123 121 101 111 112 103 121 上2桁(10、11、12)は部屋番号 下1桁(1、2、3)は年代区分だとします。 (本当は各10種類づつあるが) 下記のように A列に、部屋番号を表示 B列に、年代区分に表示したとして、 C列に、データの個数の合計 を表示する方法は? A列、B列、C列 10、1、○○ 10、2、○○ 10、3、○○ 11、1、○○ 11、2、○○ 11、3、○○ ○○はデータの個数 エクセルは、2003です

  • アンケートの集計について

    クセルでA列に部署名、B列に年代、C列に性別、Ⅾ列~H列に質問を5問入れ回答として1~4までの数値を入れてあります。 集計として年代別、性別毎に質問に対する人数を計算したい。 例として 1、質問1で30代男性が1と回答した人数は何人か   年代、性別毎に1から4と回答した人の人数を計算したい。   質問1~5までを同時に集計したい。 ピボットテーブルでの集計方法と関数を使用した方法があれば教えてください。

  • ExcelVBAでの検索結果抽出方法

    ExcelVBAで教えて下さい。 A | B | C | D | E |F| 地域コード| 性別コード|年代|野球|サッカー|テニス| 201| 1 | 40 | 5 | - | 1| 201| 2 | 55 | 6 | 1 | 3| というような表が1万行近くあります。 これを「地域別の表」にして、なおかつ「男女別」「スポーツ別」にして、人数を表にしたいと思っています。 表のイメージはこんな感じです。 ーー| 201 | 野球|サッカー|テニス| 男性| 40 | 5 | - | 1 | … 女性| 55 | 6 | 1 | 3 | 年代は40、45と5才刻みで100歳までで、男女は1と2のコードで表します。 クロスのところにはいっているのは人数です。 Sheet1が元データなので、Sheet2に表を作りたいです。表はどうにか作れるので、 ・地域コード ・性別コード ・スポーツ に、一致した場合に別シートにコピーできるコードを教えていただけるとありがたいです。 Sheet1の元データの年代は、地域によっては、該当なしだと無い年代もあります。 今回は投稿のためわかりやすければ…と思い、空白セルにハイフンを入れましたが実際は入っていません。 ややこしくて申し訳ありませんが助けていただきたく、お願い致します。

  • エクセルで集計した行の抽出方法

    初心者ですので教えて下さい。 エクセルで6000行、15列程度のデータリストが有り これをグループの基準はB列 集計方法は合計 集計するフィールドはN列 という集計方法で集計し、100行ほどの集計結果になりました。 このあと、その集計行の中で合計値が500以上の数値になっている ものだけを抜き出して その詳細データも一緒に表示させたいのですが どういうやり方をしたらよいでしょうか?

  • Excel2000 集計のコピーの仕方

    お世話になります。とても初歩的な質問ですが、宜しくお願いします。 エクセルで、データリストを入力したシートで、データ→集計とし、 「リストの下に集計行を挿入する」「現在の集計表と置き換える」に常に チェックを入れて集計しています。 すると、リストの下に小計が挿入され、左端にある1,2,3というところを クリックすることで、明細行が表示・非表示切り替えられますが、 小計行のみ表示させた状態(明細行は非表示で、画面には太字で「○○ 計 □」 みたいな状態の表が出来上がっている) で、この出来上がった表を別のシートにコピーして使いたいのですが、貼り付けると、必ず非表示になってる明細行まで貼り付けされてしまいます。 一行ずつ、小計行をコピーして貼り付けるか、一旦全部貼り付けて明細行を 削除していくかのどちらかしかないのでしょうか? いい方法をご存知でしたら教えて下さい。宜しくお願いします。 質問がわかりにくかったら申し訳ありません。

  • EXCEL2007 集計方法を教えて下さい。

    EXCEL2007 集計方法を教えて下さい。 sheet1は、商品の出荷データが入っています。 A列・・得意先コード、B列・・品番、C列・・出荷数 sheet2で集計します。 A2以降に商品コードが入力してあります。 A1に得意先コードを入力すれば、sheet1のA列を参照し、該当得意先の商品出荷数をsheet2のC列に集計したいのです。 (sheet1のデータは羅列です。 例えば、山本屋のりんご購入履歴が1行目や10行目21行目と入力されているイメージです。

  • エクセルの集計

    エクセルの集計 文字列ごとの数値が羅列された表を同じ文字列に整理し各文字列の数値を集計された表にする方法(関数)を教えてください

  • 集計

    同じシートが複数枚あります。内容を集計表に反映させたいのですが方法がわかりません。 数値の合計であれば3-Dや統合等だとおもうのですが、伺いたい方法は「数値」ではなく「文字」の集計です。 Sheet1~5までに各年代別の嗜好品が入力されています。 各シートには性別や住んでいる地域等いくつかの分類もあります。 Sheet6にSheet1~5までの情報(文字)をすべて反映させたいのですがどのようにすれば良いのでしょうか。 今はSheet1~5まで一旦入力してからそれを元にSheet6に再び入力していくという作業をしています。 ご回答、宜しくお願いします。

  • EXCELでこんな集計はどうするのでしょうか

    商品管理の表で以下のようになっています。 A1   B1    C1     D1    E1 担当者 分類番号 商品コード 整理番号 以下各月毎の売り上げ そしてこの表は1500行程度あり、B列、C列でソートしています。 この表をB列の分類番号毎、C列の商品コード毎で各月の売上合計を上記の表のシートとは別のシートに集計したいのですが、どのようにしたらよいのでしょうか。シートをコピーして集計するのはできるのですが、そうしたら容量が(サイズが)大きくなりすぎるため、できれば避けたいと思っています。

専門家に質問してみよう