前提・実現したいこと
VBAでリスト形式の表をマトリックス表に書き換えたいと考えております。
具体的には添付Sheet1からSheet2の表を作成したいのですが残念ながら方法がわからず質問させていただきました。
発生している問題・エラーメッセージ
同じ日付でも行先が異なるため恥ずかしながらどう書いてよいか全く分かりません。
該当のソースコード
(日付・行先の出力部分のみ)
Sub sample()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim i As Long
Dim j As Long
Set ws1 = Worksheets("Sheet1") Set ws2 = Worksheets("Sheet2") i = 1 '日付・行先をすべて書き出した後重複を削除 With ws2 For j = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row .Cells(i, 11) = ws1.Cells(j, 1) .Cells(i, 12) = ws1.Cells(j, 4) i = i + 1 Next .Columns("K:L").RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo End With
End Sub
試したこと
マクロのみでは実現できなかったため現状下記の通り関数と組み合わせてなんとか使用しております。
しかしながら可能でしたらマクロのみで一気に表を完成させられればそれに越したことはないので詳しい方アドバイスいただけますと幸いです。
- マクロでSheet2のK列とL列に日付と行先を出力後、重複を削除
- 1の結果をB1:I2に"="で出力
- Sheet1, 2ともに表の外に「日付+行先+商品名」を結合したものを作る
- 3を使いINDEXとMATCH関数で値を出力
補足情報(FW/ツールのバージョンなど)
OS: Windows10
EXCEL: Office365
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/16 10:53
2021/05/16 11:20
2021/05/16 12:17