マクロ初心者です。仕事で膨大なデータ処理をする為にマクロを作りたいのでご教示ください。
リスト1 → リスト2
品名 個別 答え 品名 a1 a2 b1 b2
りんご a1 A りんご A B C D
りんご b1 B みかん E F G H
りんご a2 C
りんご b2 D
みかん a1 E
みかん b1 F
みかん b2 G
みかん a1 H
上記の様に別シートがあります。その中で品名を検索し個別にあるデータをリスト2へ転記したいです。品名は重複しているのでオートフィルタで抽出し別シートへの転記がわかりません。因みに個別はバラバラに並んでいます。
拙い文章で分かりづらく申し訳ありません。
宜しくお願いします。
No.1
- 回答日時:
こんにちは!
「リスト1」の「みかん」に「a1」が重複していますが、
A列の同一品名にB列には重複データは存在しない!という前提です。
リスト1はSheet1にあり、Sheet2に表示するとします。
標準モジュールです。
Sub Sample1()
Dim i As Long, lastRow As Long
Dim c As Range, r As Range, 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
.Range("B:B").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("B1"), unique:=True
wS.Range("B:B").Sort key1:=wS.Range("B1"), order1:=xlAscending, Header:=xlYes
lastRow = wS.Cells(Rows.Count, "B").End(xlUp).Row
Range(wS.Cells(2, "B"), wS.Cells(lastRow, "B")).Copy
wS.Range("C1").PasteSpecial Paste:=xlPasteAll, Transpose:=True
wS.Range("B:B").Delete
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
Set c = wS.Range("A:A").Find(what:=.Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
Set r = wS.Rows(1).Find(what:=.Cells(i, "B"), LookIn:=xlValues, lookat:=xlWhole)
wS.Cells(c.Row, r.Column) = .Cells(i, "C")
Next i
wS.Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
End With
Application.ScreenUpdating = True
wS.Activate
wS.Range("A1").Select
MsgBox "完了"
End Sub
※ お示しの「リスト1」の並びでは
「りんご」の行が A・B・C・D ではなく A・C・B・D になりますが
これで良かったのでしょうか?
じっくり考えればもっと簡単になるかもしれませんが、
こんな感じではどうでしょうか?m(_ _)m
ご回答ありがとうございました。先程 検証してみたのですが「wS.Range("C1").PasteSpecial Paste:=xlPasteAll, Transpose:=True」がデバックになってしまいました(泣)
こちらの言葉足りずにすみません。再度 検証してみます。
No.2
- 回答日時:
No.1です。
行列を入れ替えて貼り付けの部分でエラーになるのですね?
もしかしてシートモジュールにしていませんか?
もしそうであれば前回投稿したように標準モジュールで試してみてください。
もう一点気になるのがお使いのExcelのバージョンは何でしょうか?
2003までの場合、列数が256列までしか表示できませんので
Sheet1のB列データ数がそれを超える場合もエラーになるかもしれません。
現時点で考えられるのはこの程度ですかね。
※ 他の原因ならごめんなさいね。m(_ _)m
ご回答ありがとうございます。標準モジュールで貼り付けしましたがどうしても同じ箇所でデバックになってしまいました。エクセルは2013なので問題はないと思われます。
私の伝え方の問題ではないかと思います。もう一度検証してみます。ありがとうございました。
No.3ベストアンサー
- 回答日時:
何度もおじゃまします。
Excel2013でやってみました。
ちゃんとSheet2に表示されましたので、コード自体は問題ないと思います。
もしかして前提条件(元データのレイアウト)が違うってコトはないでしょうか?
前回のコードは元データがSheet1のA~C列にあり、
1行目が項目行でデータは2行目以降にあるという前提のコードです。
この程度でごめんなさいね。m(_ _)m
No.4
- 回答日時:
品名と個別の組み合わせで重複はないという事でよろしいでしょうか
リスト1は
A B C
品名 個別 答え
だとして
リスト2の
リンゴとa1のクロス部分に
=INDEX($C:$C,SUMPRODUCT(($A:$A=$D2)*($B:$B=E$1)*ROW(A:A)))
で右へコピー、下へコピーでは如何でしょうか。
SUMPRODUCT(($A:$A=$D2)*($B:$B=E$1)*ROW(A:A))
で、二つの条件があっている行の行番号が出ます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet1の出荷日と品名が並んだ表からSheet2の品名別出荷日別の個数一覧表を作っています。 オ 3 2022/12/01 23:54
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのマクロについて教えてく...
-
Vba 実数および実数タイプの変...
-
ユーザーフォームに別シートか...
-
VBA レジストリの値の読み方に...
-
エクセルVBAについて
-
VBA listBoxから
-
ExcelのVBAコードについて教え...
-
VBA 複数条件の分岐処理の上手...
-
ExcelのVBAです。フォルダ内の...
-
VBAの計算で@が出てしまう件
-
VB.net(VB)で、フォームにExcel...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBAの質問になります Userform内で
-
VBAの質問になります メッセー...
-
Excel マクロについての相談
-
Vba SelStart、SelLen教えてく...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
【VBA】マクロの入ったファイル...
-
VBA 複数条件の分岐処理の上手...
-
現在のブックを閉じないで、マ...
-
VBAで各列の"+"と"o"の合計数を...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ユーザーフォームに別シートか...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロについて教え...
-
VBA listBoxから
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
おすすめ情報