私は3つのワークシートを持っています。以下は、私がやろうとしていることの説明です。EM11 EM12 EM01
以下の手順はシート EM11 を対象としていますが、シート EM12 とシート EM01 についても繰り返したいと思います。
- シート EM11 を選択
- J2:J65636 をコピーし、G2: G65636 をコピーします。
- EM11-Count という名前の新しいワークシートを作成します
- 列 J を EM11-Count という名前の新しいワークシートのセル A2 に貼り付けます
列 G を新しいワークシートのセル B2 に貼り付けます。
EM11-Count という名前のワークシートに、範囲 B2:B65636 の日付が含まれるようになりました。
- 取得した最初の日付をコピーしてセル C1 に貼り付けます
- 取得した 2 番目の日付をコピーしてセル D1 に貼り付けます
- 取得した 3 番目の日付をコピーしてセル E1 に貼り付けます
- 取得した 4 番目の日付をコピーしてセル F1 に貼り付けます
- 取得した 5 番目の日付をコピーしてセル G1 に貼り付けます
- 取得した 6 番目の日付をコピーしてセル H1 に貼り付けます (異なる日付は 6 つまたは 7 つしかありません)。
ワークシートは次のようになります
Col A Col B Col C Col D Col E
04/1/2009 04/2/2009 04/3/2009
DPR1 04/1/2009
DRS6 04/2/2009
ERJ9 04/3/2009
A2:B2 を見てください。次に、C1:H1 を見て、B2 にある日付と一致する日付を見つけます。C1 に一致する日付があるとします。C2 に移動し、数字の 1 を入力します。
Col A Col B Col C Col D Col E
04/1/2009 04/2/2009 04/3/2009
DPR1 04/1/2009 1
DRS6 04/2/2009
ERJ9 04/3/2009
次に A3:B3 を見てください。次に、C1:H1 を見て、B3 にある日付と一致する日付を見つけます。D1 に一致する日付があるとします。D3 に移動し、数字の 1 を入力します。
Col A Col B Col C Col D Col E
04/1/2009 04/2/2009 04/3/2009
DPR1 04/1/2009 1
DRS6 04/2/2009 1
ERJ9 04/3/2009
次に A4:B4 を見てください。次に、C1:H1 を見て、B4 にある日付と一致する日付を見つけます。E1 に一致する日付があるとします。E3 に移動し、数字の 1 を入力します。
Col A Col B Col C Col D Col E
04/1/2009 04/2/2009 04/3/2009
DPR1 04/1/2009 1
DRS6 04/2/2009 1
ERJ9 04/3/2009 1
A:B のすべての行がカバーされるまで、このパターンを繰り返します。列 A:B のすべての行を下に移動すると、ランダムな重複が発生します。たとえば、A1:B1 の内容は A2:B7 まで同じになり、A14:B14 の内容は A15:B20 まで同じになります。これらの重複が発生した場合、重複行を削除し、元の行の集計/カウントを「1」だけ増やしたいと考えています。たとえば、マクロが A:B のスキャンを終了すると、ワークシートは次のようになります。
Col A Col B Col C Col D Col E
04/1/2009 04/2/2009 04/3/2009
DPR1 04/1/2009 12
DRS6 04/2/2009 23
ERJ9 04/3/2009 57
ここに私が現在持っているコードがあります。ご覧のとおり、多くの作業が必要です。手伝って頂けますか?
Sub NWorksheetArrange()
Application.Goto Reference:="R2C10:R65000C10"
Selection.Copy
Sheets.Add
ActiveSheet.Paste
Sheets("Sheet3").Select
Sheets("Sheet3").Name = "EM11-COUNT"
Sheets("EM11").Select
Application.Goto Reference:="R2C7:R65000C7"
Application.CutCopyMode = False
Selection.Copy
Sheets("EM11-COUNT").Select
Range("B1").Select
ActiveSheet.Paste
Rows("1:1").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlDown
Range("B2").Select
End Sub