• ベストアンサー

エクセル VBA 複雑な行列入れ替えコピー

VBAを使って複雑な行と列を入れ替えをしたいのですが?どなたか伝授していただけませんでしょうか?    A    B    C 1 東京都  ペット マルチーズ 2 神奈川県 ペット チワワ 3 埼玉県  ペット 柴犬 4 千葉県  ペット プードル  ・  ・  ・ 1,000行あります。 これを 別シートに20行づつ1行にまとめて 東京都 ペット マルチーズ 神奈川県 ペット チワワ ・・・ のようにしたいのです。 コピー先のデータ行数は元が1,000行だったので、結果50行になります。 よろしくお願いします。

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

  • ベストアンサー
回答No.1

Sub test() Dim ss As Worksheet Dim ds As Worksheet Dim r As Integer Set ss = Sheets("sheet1") Set ds = Sheets("sheet2") ds.Cells.Clear For r = 1 To 1000 ds.Cells(((r - 1) \ 20) + 1, ((r - 1) Mod 20) * 3 + 1) = ss.Cells(r, 1) ds.Cells(((r - 1) \ 20) + 1, ((r - 1) Mod 20) * 3 + 2) = ss.Cells(r, 2) ds.Cells(((r - 1) \ 20) + 1, ((r - 1) Mod 20) * 3 + 3) = ss.Cells(r, 3) Next End Sub とか Sub test() Dim ss As Worksheet Dim ds As Worksheet Dim r As Integer Set ss = Sheets("sheet1") Set ds = Sheets("sheet2") ds.Cells.Clear For r = 1 To 1000 ss.Cells(r, 1).Resize(1, 3).Copy ds.Cells(((r - 1) \ 20) + 1, ((r - 1) Mod 20) * 3 + 1) Next End Sub でどうでしょう。 VBAを使わなくても、元シートをSheet1とすると、別シートのA1を指定します。 A1=OFFSET(Sheet1!$A$1,(ROW()-1)*20+INT((COLUMN()-1)/3),MOD(COLUMN()-1,3),1,1) これをBH50の範囲に張り付ける。 p.s. >複雑な行と列を入れ替え となっているので、これではなかったら、すみません

simons_ok
質問者

お礼

ありがとうございます! 感動です!出来ました!これで、残業せずに家族の下へ真っ直ぐ帰れます!!! fumufumu_2006さん、本当にありがとうございました。

関連するQ&A

  • エクセル VBA 複雑な行列入れ替えコピー

    VBAを使って複雑な行と列を入れ替えをしたいのですが?どなたか伝授していただけませんでしょうか?    A    B    C 1 (1) 2 (2) 3 (3) 4 (1) 5 (2) 6 (3)  ・  ・  ・ 1,000行以上あります。 これを   A    B    C 1 (1)    (2)    (3) 2 (1)    (2)    (3) 3 (1)    (2)    (3)      ・      ・      ・ という風にしたのですが・・・・ お分かりになる方よろしくお願いします。

  • エクセルVBAで集計

    リスト形式になったデータがあります。 C、D、E列(6行目以降)に数のデータがあります。 L列のデータが「東京都」と「神奈川県」であれば、 CDE列をたして合計し、数をそれぞれメッセージボックスで 「東京都:50 神奈川県100」というように表示したいのですが、 コードをお教えいただけないでしょうか?

  • エクセルのオートフィルタで

    データが ---- 都道府県名 ←オートフィルタの先頭 東京都 神奈川県 神奈川県 東京都 神奈川県 埼玉県 ---- エクセルのオートフィルタで都道府県名を並べ替えで昇順とやると、 ---- 都道府県名 神奈川県 東京都 埼玉県 神奈川県 神奈川県 東京都 ---- となり、きちんと並べ替えがされません…なぜでしょうか? オートフィルタをかけたまま保存し、たまに開いてデータを追加していっています。追加されたデータがきちんと並び変わっていないようなきがするのですが、オートフィルタをかけなおしてもやっぱり並び替えしてくれません… 例えば神奈川県だけをオプションで選択したらきちんと3県選択してくれ、そのうちのひとつの神奈川県をセルで選んで、他の2つにセルごとコピーします。その後、上記の並べ替えをするときれいに並び変わります。 値は同じなのにきれいに並べ替えできないのはなぜでしょうか? 説明がうまくできてないかもしれませんが、宜しくお願いします。

  • EXCEL VBAで語句の一部が一致する値の検索方法について

    すいませんEXCEL VBAで教えていただきたいことがあります。 A列: 1行:"東京都小笠原村逆川" 2行:"神奈川県横須賀市中町二丁目" 3行:"山梨県甲府市曙町2番地" 4行:"埼玉県さいたま市大宮区土手町三丁目" ・ ・ (100行目までデータが入力されている) C列: 1行:"神奈川県縦須賀市谷町二丁目" 2行:"先玉県埼玉市大宮区土手町一丁目" 3行:"東京都小笠原村順川" 4行:"山梨県甲府村曙町3番池" ・ ・ (150行目までデータが入力されている) これらのデータが入っているとします。 ここで、 B列: A列のデータと6文字以上一致するC列の行数を、A列に対応する行に記載。 1行:"3" 2行:"1" 3行:"4" 4行:"2" ・ ・ このB列の処理をEXCEL VBAで行うにはどうしたらいいのでしょうか。 Sub AAA() Dim wRowA As Long wRowA = 1 Do Until Cells(wRowA, "A").Text = "" Call BBB(wRowA) wRowA = wRowA + 1 Loop End Sub Sub BBB(wRowA As Long) Dim wRowD As Long wRowD = 1 Do Until Cells(wRowD, "C").Text = "" 'A列の値と6文字以上一致するC列のセルがあるときは If ・・・・・・・・・・ Then Cells(wRowA, "B").Value = wRowD End If wRowD = wRowD + 1 Loop End Sub IF以降の部分がどうも導き出せません。 よろしくお願いします。

  • エクセルで、キーワード郡に含まれる文字列が含まれていたら、キーワードの

    エクセルで、キーワード郡に含まれる文字列が含まれていたら、キーワードのID番号を返す、という関数式を知りたいです。 A列     東京都春日部区    神奈川県松戸町 千葉県霞ヶ関 埼玉県錦糸町 東京都千代田区 千葉県小松菜 キーワード郡 東京 1 千葉 2 埼玉 3 神奈川 4 ↓↓↓結果↓↓↓ A列     東京都春日部区     1   神奈川県松戸町     4 千葉県霞ヶ関      2 埼玉県錦糸町      3 東京都千代田区     1 千葉県小松菜      2 といった具合です。 お分かりになる方いらっしゃいますでしょうか?

  • ミックス犬♪

    こんにちわ。 私はミックス犬を見ると、なんの犬種とのミックスかとても興味があって、その子をじっくり観察してしまいます(^^ゞ(触りまくって、かなりうざがられてしまいますが) 親がはっきりわかっている場合もわかっていない場合も色々、考えると楽しくなります。 そこで・・・ 皆さんの知っているもしくは飼っているミックス犬には、どのような子がいますか? どの犬種とのミックスかわかったら教えてほしいです。 私の知っているミックス犬は ・チワワ+ヨーキ(顔・体形=チワワ/毛色・毛質=ヨーキ) ・柴犬+ミニチュアダックス(顔・毛質=柴犬/体形・毛色・耳・尻尾=ミニチュアダックス) ・プードル+マルチーズ(顔・体形=マルチーズ/毛質・毛色(茶色)=プードル) どのわんちゃんも個性的で、とっても可愛いです(^.^)

    • ベストアンサー
  • エクセルVBA でセルの結合

    久しぶりに質問したいことがあります。 初歩的なVBA操作しかできない者です。 以下のようなマクロを組みたいのですがどのようにしたらよいでしょうか?      A       B         C 1   東京 2   東京 3   京都 4   京都 5   京都 6   埼玉 7   埼玉 ・   ・ ・   ・ ・   ・ 上の状態から下のようにしたい     A        B        C   -------- 1    東京 2   --------  3 4  京都 5    -------- 6    埼玉 7   -------- ・   ・ ・   ・ ・   ・ (最終行は任意) B列で同じ項目名のセルを結合したいです。 B列は名前順に並び替えられていて、1~10行ぐらいで同じ項目名があり行数は共に任意です。 なおイメージ図の「------」はセル結合のイメージですので、実際には 実践で囲います。 分かりづらし説明で申し訳ありませんがよろしくお願いします。

  • エクセルの重複データを削除したい

    エクセルの重複データを削除したいです。重複項目を一つにまとめるのではなく、重複があれば、その項目を全て削除したいです。 シート処理前 ------------ 東京都 神奈川県 千葉県 埼玉県 群馬県 東京都 神奈川県 ------------ これを重複処理します。東京都と神奈川県が重複しているので削除します。 シート処理後 ------------ 千葉県 埼玉県 群馬県 ------------ このような処理をどうしても行いたいです。 実際のデータは1万件以上あり、手動では不可能でした。 どうかお知恵をお貸し頂けませんでしょうか?

  • エクセル マクロ 対象列をコピーする

    エクセル マクロについて質問です。 下記のようなデータがありますが、【商品名】ごとにまとめたものを 別のシートへ行ごとコピーをして、商品名毎にまとめたいと思っています。 マクロの構文が思いつかず、よい方法はないでしょうか。 初歩的な質問かも知れませんがおしえてください。 マクロ実施前 【県名】  【商品名】 【売り上げ日】 【その1】 【その2】 埼玉県   A 東京都   B 神奈川県  B 千葉県 A 栃木県   C 群馬県   D マクロ実施後↓↓ Aシート 【県名】  【商品名】 埼玉県   A 千葉県 A Bシート 【県名】  【商品名】 東京都   B 神奈川県  B Cシート 【県名】  【商品名】 栃木県   C 群馬県   D Dシート 【県名】  【商品名】 群馬県   D

  • Excelのマクロ『困ってます!』

    Excelで、以下のような機能を持ったマクロをつくりたいのですが、情けないのですが全くできません。 わかる方、どうかよろしくお願いいたします。 Sheet1のA1~D1の値(例では、東京、練馬区、○○、△△)を、 全て「含む」Sheet2のセルに目印をつけ(例は隣のセルに「○」と入力)し、 それが終わったらSheet1のA2~D2の値(例では、東京、練馬区、○○、□□)で・・・ の繰り返しです。 あくまでSheet1の値を全て「含む」ものが対象なので、Sheet2の5行目のように、 余計な値(例では★)が混じっているものも対象としたいです。 例: [Sheet1] 1 |東京都|練馬区|○○ |△△ | 2 |東京都|練馬区|○○ |□□ | 3 |東京都|目黒区|●● |■■ | 4 |埼玉県|川口市|◇◇ |×× | [Sheet2] 1 | |東京都港区・・・・ 2 | |東京都練馬区・・・・・ 3 | |東京都練馬区○○◎◎ 4 |○|東京都練馬区○○△△ 5 |○|東京都練馬区★○○★□□ 6 | |東京都練馬区★★□□ 7 |○|東京都目黒区●●■■ 8 |○|埼玉県川口市◇◇×× 9 | |神奈川県・・・・・

専門家に質問してみよう