1

私は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
4

1 に答える 1

2

これは「ピボット テーブル」のように聞こえますが、Excel はこれらを自動的に行います。

このように: http://screencast.com/t/gpLsU50q38

ピボット テーブルを作成するマクロを作成するには、「マクロ レコード」を実行し、次にピボット テーブルを作成し、記録したピボット テーブル ステートメントをコードで囲みます。

于 2009-04-14T03:52:58.400 に答える