2

私は他のいくつかのスタックオーバーフローの質問を見てきましたが、探している答えが見つかりませんでした。

次の形式の25000行のExcelシートがあります。

userid  |  taskid  |  taskcode
 1      |     3    |     K
 1      |     4    |     O
 1      |     4    |     L
 1      |     5    |     O
 2      |     3    |     O

私がやりたいのは、とを考慮して重複している行を特定することですuseridtaskid上記の例では、2番目と3番目の行が強調表示されると予想されます。

それがどれほど実行可能かはわかりません。理想的には、taskcode Oではなくを含む重複行を特定したいと思いLます。

私の最終目標は、達成方法に関係なく、タスクコードOの重複するuserid / taskid行をすべて削除することです(ハイライトしてからハイライトで並べ替えるか、vbaを使用します)。

4

2 に答える 2

2

混乱した後、解決しました。より効率的な方法が特定されない限り、この回答は今後の参考のためにここに残しておきます。

ステップ1

列Dで使用して、値useridと値の両方を含む結合セルを作成します。taskid=A2&B2

ステップ2

重複を強調表示するには、組み込みの条件フォーマットを使用します。

ステップ3

上部にある強調表示された重複する赤で強調表示されたセルを使用してカスタム並べ替え、次にtaskcode選択したカスタム順序(O、K、L)で並べ替えます

ステップ4

削除するすべての行(現在はブロックになっています)を強調表示するだけです。

于 2012-04-11T22:53:52.650 に答える
0

VBAを試してみたい場合。

Sub duplicates_separation()



      Dim duplicate(), i As Long
        Dim delrange As Range, cell As Long
        Dim delrange2 As Range
        Dim shtIn As Worksheet
        Dim numofrows1


          Set shtIn = ThisWorkbook.Sheets("sheet1")

        x = 2
        y = 1

        Set delrange = shtIn.Range("c1:b30000")  'set your range here
       Set delrange2 = shtIn.Range("b1:f30000")
       ReDim duplicate(0)
    'search duplicates in 2nd column
        For cell = 1 To delrange.Cells.Count
            If Application.CountIf(delrange, delrange(cell)) > 1 Then
                ReDim Preserve duplicate(i)
                duplicate(i) = delrange(cell).Address
                i = i + 1
            End If
        Next
    'search duplicates in 3rd column
        For cell = 1 To delrange2.Cells.Count
            If Application.CountIf(delrange2, delrange2(cell)) > 1 Then
                ReDim Preserve duplicate(i)
                duplicate(i) = delrange2(cell).Address
                i = i + 1
            End If
        Next


            'print duplicates

        For i = UBound(duplicate) To LBound(duplicate) Step -1
        shtIn.Range(duplicate(i)).EntireRow.Value.delete
        x = x + 1
    Next i


    End Sub
于 2014-01-16T07:55:50.300 に答える