答えて
だから、VBAルートに行くには、タブの各行をループして値をテストして重複があるかどうかを調べる必要があります。重複している場合はカウンタ変数を増やし、 variable hits 3行の削除を開始します。
これは、VBAを使用していない場合は少し複雑です。コードで遊んで理解してください。私はそれを助けるためにコメントを書いた。
Sub keepFirstThreeDuplicates()
Dim workingRow As Integer
Dim currentDup As String
Dim dupCounter As Integer
Dim wsheet As Worksheet
'change this to your tab name
Set wsheet = ThisWorkbook.Sheets("Sheet1")
'loop through every row just guessing that your data starts at row 1 (A1) and goes to 50000 (A50000)
For workingRow = 1 To 50000
If workingRow = 1 Then 'we are at the first row, so grab the value and set dupCounter to 1
currentDup = wsheet.Cells(workingRow, 1).Value 'Assuming column 1, so this is Cell A1
dupCounter = 1
ElseIf currentDup = wsheet.Cells(workingRow, 1).Value Then 'we have another duplicate
If dupCounter = 3 Then 'We already have three duplicates, so delete the row, and set the row back one (because we deleted the row)
wsheet.Rows(workingRow).Delete
workingRow = workingRow - 1
Else
dupCounter = dupCounter + 1
End If
Else 'We are at a new value, so grab the value and set dupCounter to 1
currentDup = wsheet.Cells(workingRow, 1).Value
dupCounter = 1
End If
'exit the for loop if we hit a blank
If currentDup = "" Then Exit For
Next workingRow
End Sub
あなたはVBAにスーパー初めて使用する場合は、このコードを使用します
ワークブックで、Visual Basicの エディタ(VBE)
を取得するには、Ctrl + F11を打っている間
ブックは、VBAProjectパネルの「VBAProject」と呼ばれます。 右クリックしてInsert >> Moduleを選択してください。
新しいモジュール "Module1"をダブルクリックして開きます。
このコードにペーストします。
実行するには、コード内のどこかをクリックし、再生ボタンを 上(またはキーボードのF5)まで押します。タブ名をタブに変更するなど、ワークブックのニーズに合わせて に合うようにコードを編集してください。 は行を削除するため、実行する前にワークブックをバックアップしてください。元に戻すことはできません。
最後に、これは単なる1つの方法です。これは、行数、データの列、データが既に重複列でソートされていること、その他のその他のものではないことを推測しているため、100%のニーズに対応することは意味しません。これは、VBAの確実な方向性を示すためのものです。新しく作成したワークブックのA欄に作成した偽のリストのためのテストワークブックで作業しました。
VBAを使用せずにデータを並べ替える代わりに、Sender IDの発生回数を数えただけで3番目のデータ列を作成できます。 D2の代わりに
Assuming:
Sender is column B
Message is column C
Count will be new column C
Row 1 is a header row
Data starts in row 2
次の式:
=COUNTIF($B$2:B2,B2)
コピー列全体をダウン。
データ内またはヘッダー行で選択を選択します。
D1のヘッダーを右クリックし、フィルタを選択し、セルから値を選択します。(あなたのデータは消えるかもしれませんが、ただ隠れるかもしれません)
D1のファンネルアイコンを左クリックし、番号フィルタを選択してください。飛行機から、より小さいか等しいかを選択し、右上のボックスに3を置きます。
元の2列のデータを選択してコピーして新しいシートに貼り付けると、最初の3つのエントリのみが新しいリストに表示されます。
を取得する必要があります。データをコピー&ペーストしたくない場合は、隠れた行を無視してデータの出現をカウントする方法がありますが、それは違いです。 –
- 1. PHPは配列内の最初の6項目を保持し、残りの部分を削除します
- 2. mysql_queryの最初の要素を削除して残りの部分をすべて取り除く方法は?
- 3. Pythonスレッドはスクリプトの残りの部分を保持します
- 4. PHPの爆発 - 文字列の最初の部分を削除し、最後の部分を削除します
- 5. Datagridview - 最初の列の前の部分を削除します
- 6. タグのURLから最初の部分を削除します
- 7. Jqueryはコードの最初の行を実行しますが、残りの部分を実行しません。
- 8. 最初の列を削除して残りの行をそのままawkに残します
- 9. Mysqlは文字列の最初と最後の部分を削除します。
- 10. 最初の2つのオプションを保持し、jqueryで選択要素に残りを削除したい
- 11. NN最新のエントリだけを残して残りの部分をすべて削除してください
- 12. 最初の8文字を保持して残りの文字を削除する方法
- 13. dataview webpart最初の3つのグループヘッダーを残りの部分を縮小して展開します。
- 14. Array Swiftからブラケットの最初の部分を削除する3
- 15. すべての行の最初の部分を削除するには?
- 16. 変数を分割して最初の部分を保持する
- 17. mysqlは最後の5行を保持し、古いレコードを削除します
- 18. 削除ボタンは、残りの行にない最初の行にのみ作用します
- 19. R最初の行がNAを持たないまでデータフレームの最初の行を削除します
- 20. Sedを使って行の最初の部分を削除する
- 21. PHPは3行目の最初のdata-useridしか保持しません
- 22. WSO2 ESBを使用して残りの部分を削除する
- 23. バッファからn番目のビットを削除し、残りの部分をシフト
- 24. powershellは行の最初の文字を削除します
- 25. 最初のリストの残りの部分で再帰をどのように実行しますか? (ラケット)
- 26. NSURLの最後の部分を削除します。iOS
- 27. AnythingsliderのStart/Stopボタンを削除したいが、ナビゲーションの残りの部分は残す
- 28. Sailsjs(見つかりません)APIの残りの部分は削除404
- 29. PHPが最初の行を実行して残りの部分がブラウザに表示されるようです
- 30. URLを編集し、ドメイン部分を保持し、他の部分を削除する
最初の3つの複製を残して残りの部分を削除する必要があるようです。 – JNevill
はい、それを行う方法! –
4行目と5行目を強調表示し、削除キーを押します。 – JNevill