1行3列のデータを別の列に縦niの行へ並べ替えるVBAについて | |
---|---|
[196475] 1行3列のデータを別の列に縦niの行へ並べ替えるVBAについて- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ VBA初心者 -(2025/03/03(20:33)) □U R L/ 1.3列毎追加前シート 行 A B C D E 1 番号 名前 植物 2 1 あ さくら 3 2 い うめ 4 3 う いちご 5 4 え みかん 6 5 お りんご 2.3列毎追加後シート 行 A B C D E 1 番号 名前 植物 1 2 1 あ さくら あ 3 2 い うめ さくら 4 3 う いちご 2 5 4 え みかん い 6 5 お りんご うめ 3 う いちご 4 え みかん ・ ・ ・ 説明 当初の行毎にあるデータ(3列)について D列に 1行3列のデータを 縦に3列毎並べていきたいのです どなたかご教示頂ければ幸いです win11 excel11 |
[196476] Re[1]: 1行3列のデータを別の列に縦niの行へ並べ替えるVBAについて- ■記事引用/メール受信=OFF■ □投稿者/ jindon -(2025/03/03(21:20)) □U R L/ 1) vba Sub test() Dim x$, y$, myArray With [a1].CurrentRegion.Offset(1) x = Range("a1").Resize(, .Count).Address y = .Columns.Count myArray = Application.Index(.Value, Evaluate("index(roundup(column(" & x & ")/" & y & ",0),,)"), _ Evaluate("if(mod(column(" & x & ")," & y & ")=0," & y & ",mod(column(" & x & ")," & y & "))")) End With [e1].Resize(UBound(myArray)).Value = Application.Transpose(myArray) End Sub 2) 数式 ; E1 Office365 =TOCOL(FILTER(A2:C10,A2:A10<>"")) その他バージョン =INDEX($A$2:$C$6,ROWS($1:3)/3,MOD(ROWS($1:1)-1,3)+1) 下方へコピー この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[196477] Re[2]: 1行3列のデータを別の列に縦niの行へ並べ替えるVBAについて- ■ ![]() □投稿者/ VBA初心者 -(2025/03/03(23:53)) □U R L/ jindonさん 早速にありがとうございました。 色々方法があるのですね。 数式でも出来るのはすごいです。 大変お世話になりました。 また、よろしくお願いいたします。 |
このトピックに書きこむ |
---|