• 締切済み

縦列 横列 をマクロで入れ替えろ行いたいのですが

エクセルで下記のような並び替えろ瞬時に行える方法はないでしょうか?できればマクロを組みたいのですが…マクロ初心者なのでいい方法を簡単に教えてください。 番号 日時(1) 日時(2) 日時(3) 日時(4) A   N台    N台   N台   N台 B   N台    N台   N台   N台 C   N台    N台   N台   N台 このようなデータを A 日時(1) 台数 A 日時(2) 台数 A 日時(3) 台数 A 日時(4) 台数 B 日時(1) 台数 B 日時(2) 台数 B 日時(3) 台数 B 日時(4) 台数 縦列300~500データ 横列データの数は100~200データあり そのときによってさまざまです。 このように瞬時に並び替えろ行いたいです。 簡単にわかりやすく教えてください。 よろしくお願いいたします。

みんなの回答

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.2

一例です。 元のデータが Sheet1 にある前提で、 Sheet2 に結果を出力します。 データバックアップ後に、 標準モジュールに貼り付けて実行してください。 Sub test()   Dim Ws1 As Worksheet   Dim Ws2 As Worksheet   Dim myLastRow As Long   Dim myCol As Long   Dim i As Long   Dim j As Long      Set Ws1 = Worksheets("Sheet1") '元シート   Set Ws2 = Worksheets("Sheet2") '並び替え後      Application.ScreenUpdating = False   Ws2.Cells.Clear   j = 1   With Ws1     myLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row     For i = 2 To myLastRow       myCol = .Cells(i, .Columns.Count).End(xlToLeft).Column - 1       Ws2.Cells(j, "A").Resize(myCol) = .Cells(i, "A").Value       .Cells(1, "B").Resize(, myCol).Copy       Ws2.Cells(j, "B").PasteSpecial Transpose:=True       .Cells(i, "B").Resize(, myCol).Copy       Ws2.Cells(j, "C").PasteSpecial Transpose:=True       j = j + myCol     Next i   End With   Application.CutCopyMode = False   Application.ScreenUpdating = True      Set Ws1 = Nothing   Set Ws2 = Nothing End Sub

takey0914
質問者

お礼

詳しい回答ありがとうございました。じっくり格闘してみます。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

行列入れ替えはPasteSpecialでできます。 http://www.moug.net/tech/exvba/0050104.htm 行数・列数はEndとRow,Columnの組み合わせでいいでしょう。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_030_100.html あとは繰り返し処理で終わり。 簡単とは言いませんが、それほど難しいことをする必要もないですからあとはご自身でどうぞ。

関連するQ&A

  • 縦列の1,2,3、・・・10を一挙に横列にする

    質問1:縦列に1,2、3・・・10までの数字が入力されています。     これを一挙に横列1,2,3、・・・10にする方法をどなたかご教示ください。 質問2:縦列に1,2,3、・・・10 横列にA、B、C・・・Jまでの表があります。      これを一挙に180度反転したい。こんなことが出来るのでしょうか。      もし、出来るならどなたかご教示ください。  

  • EXCELの横列を縦列に並べ替え

    こんばんは 横列に並んでいるものを縦列に並び替えたいのですがどのようにすれば いいかわかりません。お知恵を貸してください。 EXCELは2007を使用しています 下記のように並んでいるものを、      A     B     C      D    E   F 1     AAA 111 BBB 333   FJD 999 2     CCC 444 DDD 666 3     AVA    777 AAA    111 これを   A   B 1 AAA  111 2 BBB  333 3 FJD  999 4 CCC  444 5 DDD  666 6 7 AVA  777 6 BBB  666 7   8 AAA  111 9 のように並び替えたいです。 何か簡単に出来る方法があったら教えて下さい。 よろしくお願いします。

  • EXCELの横列を挿入しながら縦列に並べ替え

    エクセルで横列に入力されている「サイズデータ」を基準になる品番毎に 縦列に並べたいのですが、その際品番をコピーして挿入のように入れたいのですが、可能でしょうか? さらに問題は品番毎にカラーが付いているのですが、それが同じ数ずつ ではないこと、またサイズレンジもSMLや28、29など種類があります。 (添付をご参考にされてください。) コピーして挿入していましたが、データが非常に多いので難儀しております。いくつかの数式を組み合わせれば可能なのでしょうか。 関数もいくつかしか使えず、マクロなどは使ったことがないレベルなので 大変恐縮なのですが、お教え頂けますでしょうか。

  • エクセルで縦列を横列にコピーしたい

    エクセルで縦列のデータを横列にコピーしていきたいのです。例えばA40のセルに「=G3」と入力し横にコピーしていくとB40には「H3」、C40には「I3」、D40には「J3」・・・・となります。そうではなく、B40には「G4」、C40には「G5」、D40には「G6」・・・・の値が入るようにしたいのです。この場合A40のセルにどのような式を入力してコピーしていけばいいのでしょうか。(複数列あり「形式を選択して貼り付け-行列を入れ替える」では上手くできません。)

  • 『EXCEL』で縦列と横列を置換するには?

    EXCELで表などを作ろうとするとき、例えば、1行目から10行目(セルA1~A10)まで各セルに「1~10」の数字を入力し、A1~J1列に「A~J」の文字を各セルに入力するとします。これらの縦列と横列に入力したデータをそっくり置換して入れ替える機能があったと思うのですが、どのようにすればよろしいのでしょうか?ご存知の方、教えて頂けますとありがたいです。

  • EXCEL2007の横列表示がおかしくなりました。

    EXCEL2007の横列表示がおかしくなりました。 EXCEL2007で、突然、ワークシートの行列表示、通常縦列は数字、上から1,2,3・・・・行、横列は左から、A,B,C,D...と表示されると思うのですが、突然なぜか、この横列まで左から1,2,3・・・・に変更されてしまいました。 元のA,B,C,D...表示にするにはどうしたらよいのでしょうか。仕事で大変困っています。宜しくお願いします。

  • エクセル 縦列のオートサムのやり方

    皆様 お世話になります。 エクセルで表を作っていてわからないところがあります。 横列(行)でのオートサムでの計算方法はわかります。 しかし縦列での計算方法がわかりません。 ですので、今はひとマスごとに「+」を打ち込んでいますが このやり方だと疲れます。 どなたか縦列のオートサムのやり方を知らないでしょうか。 知ってらっしゃいましたら教えてください。 宜しくお願いします。

  • 横列のデータを縦列に並び替える方法。

    どなたかご存じでしたらご回答願います。 エクセル2007を使用しておりますが、 下記のように3つでひとかたまりのランダムなデータが横に30個あります。 (かたまりとかたまりの間には半角のスペースが1つあります。)   103 015 071 190 803 650 069 098 516 581 716 961 178 198 568 687 869 … これを、縦に並べる方法を教えてください。 103    015 071 803 : 追加として、縦に”昇順”で並べる方法も合わせて教えてください。 015 069 071 098 : 回答としては、エクセル又はエクセルVBAでお願いします。 以上、よろしくお願いします。

  • エクセル マクロ 2つのブックの情報からデータを抜き出したい

    エクセル マクロ 2つのブックの情報からデータを抜き出したい 初めて質問させていただきます。明日までに仕上げなければいけない仕事で大変困っています。 作業内容としてはAのブックには電話番号、Bのブックには電話番号と住所などその他の情報があります。 Aのブックにある電話番号のみからBのブックからデータを探し、 Bのブック横列にある電話番号を含むその他のデータをコピーして別ブックに抽出したいと 考えています。 Aのブックには電話番号が1600件、Bのブックには1600件の電話番号を含んだデータで 20万件ほどのデータがあります。シートは7つにわかれています。 利用しているオフィスのバージョンは2003になります。 VBAなどの知識がほとんど無く、正直困り果てています。 よろしくお願いいたします。

  • EXCEL2003でマクロを作りたいのですが教えて下さい。

    エクセル2003を使っています。 マクロの初心者なので、 下記のようなマクロの作り方を詳しく教えて下さい。 他にも簡単な方法があればお願いします。     <シート1>               <シート2>   A     B   C  D    A    B  C  D 1 名前 郵便番号 住所 金額   1 名前     2    以下、データ          2 郵便番号 3                    3 住所    ・                   ・ 10                   10           金額                          <シート1>にはA1~D1までデータがあります。(50行) <シート2>の1ページ目に<シート1>の1行目のデータを入れたいです。 <シート1>は全部で50行のデータがあり、 <シート2>は1~10行までを1ページとし、50ページ作りたいです。 いろいろ調べてみたのですが、わからなかったので 説明不足かもしれませんが、よろしくお願いします。