エクセルで以下のような表のデータがあります。
列名は左から順に、名前、会期、講座名、曜日、時間帯、回数、備考 の7つです
|A |B | C | D | E |F| G |
1|山田|春|演劇| 火 |午前|4|先着順|
2|田中|夏|手芸| 木 |午後|6| 抽選 |
3|山田|夏|柔道| 月 |午後|3| |
4|田中|春|演劇| 火 |午前|4|先着順|
5|山田|春|華道| 未定| |2|抽選 |
※3番目のデータのG列(備考)は空白です。
5番目のデータのE列(時間帯)は空白です。
これを別シートで次のように横に並べたいのです。
| A |B | C | D| E |F | G | H| I |J | K | L|M|N| O | P |Q|R|S|
1|山田|春|演劇|火|午前|4|先着順|夏|柔道|月|午後|3| |春|華道|未定||2|抽選
2|田中|夏|手芸|木|午後|6| 抽選 |春|演劇|火|午前|4|先着順|
他の方の質問(果物を例に挙げたもの)で、果物、個数、金額のデータが3つのものの並び替えを行う方法の回答(マクロ)は拝見したのですが、要素が増えた場合はどう対応すればよいのかが判りません。
また、上記の例のように要素の中で空白値のものがある場合がある場合にもマクロで上記のような並び替えは可能なのでしょうか?
実際のデータ数はもっと多く、人によって数もちがうため、手作業でやるには限界を感じています。
マクロがほとんどわからない人間がやろうとするには無謀なことだとは承知しているのですがどなたかお力を貸していただけないでしょうか?
よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No.2です。
投稿後間違いに気づきました。
前回のコードの
>.Cells(i, "B").Resize(, 6).Copy wS.Cells(i, myCol)
の行を
>.Cells(k, "B").Resize(, 6).Copy wS.Cells(i, myCol)
に変更してください。
Sheet1の行番号とSheet2の行番号を間違えていました。
(「i」と「k」の間違い)
検証せずに投稿してごめんなさい。m(_ _)m
>tomo04さま
まさか昨日のうちに回答をいただけるとは思っていなかったため確認が遅くなって申し訳ありませんでした。
今試してみたところ、まさに思った通りのことができました。
実際にはもっとデータの件数が多いので手作業ではとても…と思っていただけに感動です。
本当にありがとうございました。
今はただtomo04さまが作ってくださったものをそのまま使うしかできませんが、これを機に勉強したいと思います。
重ねてお礼申し上げます。
No.2
- 回答日時:
こんばんは!
VBA向きの質問ですね。
↓の画像のように元データはSheet1にあり、Sheet2に表示するとします。
Sheet1の1行目は項目行になっているという前提です。
標準モジュールにしてください。
Sub Sample1() '//この行から//
Dim i As Long, k As Long, cnt As Long
Dim myCol As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS.Cells.Clear
With Worksheets("Sheet1")
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row
For k = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
If .Cells(k, "A") = wS.Cells(i, "A") Then
cnt = cnt + 1
myCol = 6 * (cnt - 1) + 2
If wS.Cells(1, myCol) = "" Then
.Cells(1, "B").Resize(, 6).Copy wS.Cells(1, myCol)
End If
.Cells(i, "B").Resize(, 6).Copy wS.Cells(i, myCol)
End If
Next k
cnt = 0
Next i
wS.Columns.AutoFit
wS.Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
End With
Application.ScreenUpdating = True
MsgBox "完了"
End Sub '//この行まで//
上記マクロを実行すると
画像のような感じになります。
※ データ変更があるたびにマクロを実行する必要があります。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- その他(プログラミング・Web制作) Python pandasについての質問です。 日付 名前 ◯月◯日 佐藤 ・ 伊藤 ・ 山田 ・ 2 2022/06/13 17:16
- 戦争・テロ・デモ 爆発物を投げつけた木村隆二容疑者はその場で取り押さえられ威力業務妨害容疑の現行犯で逮捕 2 2023/04/16 07:24
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- 会社・職場 夜勤中の眠気について 3 2022/09/02 07:49
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AVの旅館・シティホテル撮影...
-
舞台の上手(かみて)・下手(...
-
「観させていただきました」と...
-
遠くから見つめる男性の心理は…
-
PAでのウェッジについて
-
宝塚の人に似てるって?どんな顔
-
コードの「1CT」と「2CT」の違...
-
四柱推命で、自星・印星大過と...
-
カーテンコールをフランス語で!
-
初めて舞台を見に行ったのです...
-
講演会などで後ろに掲げる看板...
-
血のりの出しかた(刺された時)
-
人造人間キカイダーのロケ地
-
写真を撮られるときに、目をつ...
-
舞台で鉄柵を作りたい
-
演劇やドラマなどで、ラストの...
-
滑舌ってどうして辞書に載って...
-
佐伯かよの「星恋華」の結末っ...
-
ニブロールって
-
「役」の語源を教えてください
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PAでのウェッジについて
-
AVの旅館・シティホテル撮影...
-
緊張した時、手のひらに3回「...
-
「観させていただきました」と...
-
遠くから見つめる男性の心理は…
-
「フィナーレ」の対義語
-
ACT2って?
-
四柱推命で、自星・印星大過と...
-
コードの「1CT」と「2CT」の違...
-
舞台の上手(かみて)・下手(...
-
ガンダムSEEDの舞台
-
写真を撮られるときに、目をつ...
-
「役」の語源を教えてください
-
黒執事とヘルシングってなんと...
-
松本小雪さんは、いま、何をし...
-
30越えてるフリーターでプライ...
-
運命は変わる?
-
講演会などで後ろに掲げる看板...
-
導入部、イントロの反対は?
-
舞台中のトイレについて
おすすめ情報