- 締切済み
[エクセル・VBA]縦列の重複するデータを抽出し、横行に一つずつのみ並べかえ表示させる
お世話になります。 エクセルのVBAを使い下記の表のB列[Month]の重複をなくしてG列:金額の隣から右に向けて古い月順に並べ替え表示させようと思っております。 A列...............B列.........C列........D列....E列.....F列......G列 Date..............Month... 業者名..摘要..記号1.記号2..金額 2007/11/7..Nov-07..青森KK..アイ..BA....304....386 2008/1/6...Jan-08.. 岩手(株)..ウエ..CC....318....313 2008/2/1...Feb-08.. (有)埼玉..オカ..JG....121....9,480 2008/2/15..Feb-08..(株)東京...キク..AI...183....216 2008/3/6...Mar-08..(株)東京...ケコ..OX...248....1,490 2008/3/11..Mar-08..北海道...サシ..FJ...319....2,730 ↓これを下記のように表示させる ..................G列.......H列........I列........J列........K列 ←列省略.金額...Nov-07..Jan-08..Feb-08..Mar-08 ..................386 ..................313 ..................9,480 ↓行省略.216 しかし、私のVBAでは ...................G列......H列.......I列.......J列.......K列......L列........M列 ←列省略.金額..Nov-07.Jan-08.Feb-08.Feb-08.Mar-08.Mar-08 ↓行省略.386 となってしまいます。[Month]はA列の[Date]を参照しMMM-YYで表示させています。[Date]はA3から始まっております。B列を完璧に文字列に変換できればいいのですが、それが出来なくて。。。 ~VBA~ Sub test() Dim i As Integer Dim n As Integer Dim mnt0 As String Dim mnt1 As String i = 4 n = 8 Do Until Cells(i, 2).Value = "" mnt0 = Cells(i - 1, 2).Value mnt1 = Cells(i, 2).Value If mnt1 <> mnt0 Then Cells(3, n).Value = mnt1 End If i = i + 1 n = n + 1 Loop End Sub この表を使ってのゆくゆくの目標は、縦列は金額の大きい順にソートをし、右に新たに設けた[Month]の該当するセルに"*"等の印をつけることです。 よろしくお願い申し上げます。
- みんなの回答 (4)
- 専門家の回答
お礼
たびたびのご回答ありがとうございました。 勉強になりました。 また機会がございましたらよろしくお願い申し上げます。