Löschen von Zeilen aus einer Excel-Tabelle, die doppelten Daten enthalten?
-
13-09-2019 - |
Frage
Ich habe eine Excel-Tabelle, die etwa 18 k Reihen und drei Spalten. Ich möchte dies als Schlüssel in einer Access-Datenbank verwenden. So sind die drei Säulen sind
[IDKeyNumber] [Name] [Category]
Das Problem ist, an bestimmten Stellen der IDNumber dupliziert wird, weil die Kategorie zwei Kategoriecodes (typeA & typeB)
Alles, was ich wirklich wissen müssen, wie zu tun ist, jede „Zeile / record“ in der Excel-Tabelle zu löschen, wo die ID # s & Namen übereinstimmt (wie in Spielen eines weiteren Rekord die Vervielfältigung zu isolieren) und die Kategorie = TypeB.
Also ich will nur alle doppelten Zeilen / Datensätze, um loszuwerden, die diese TYPD in der Kategorie Feld haben.
Danke!
IA: einige Zeilen oder Datensätze haben eine gültige TypeB Kategorie, die nicht eine Verdoppelung ist, deshalb muss ich den Datensatz = Datensatz mit Ausnahme der Kategorie Idee ... Danke
Lösung
Es ist möglich, ADO und SQL mit Excel, beispielsweise zu verwenden:
Dim cn As Object
Dim rs As Object
strFile = Workbooks(1).FullName
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
& ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open strCon
strSQL = "SELECT id, name, max(type) AS type FROM [Sheet1$] GROUP BY id, name"
rs.Open strSQL, cn
For i = 0 To rs.Fields.Count - 1
Sheets("Sheet2").Cells(1, i + 1) = rs.Fields(i).Name
Next
Sheets("Sheet2").Cells(2, 1).CopyFromRecordset rs
Andere Tipps
Nehmen wir an, die Spalten A, B und C.
- in Spaltenüberschriften (id, name, Kategorie) über den Spalten
- Sortieren von A & B (wenn Sie benötigen erhält die Sortierreihenfolge, siehe unten)
- in D2, legen Sie die Formel „= AND (A2 = A1, B2 = B1, C2 = "TypeB") "
- füllen unten
- Verwenden Sie Autofilter wählen nur die Zeilen, in denen D falsch ist.
- Kopieren und Einfügen je nach Bedarf.
Für die Sortierreihenfolge zu bewahren, werden Sie eine andere Spalte benötigen - lassen Sie uns E sagen, weil wir D für die Formel verwendet. Vor dem Sortieren, legte 1 in E2, E3 in 2, und in der Reihe füllen. Sie können dies tun, indem Sie den Griff wachsen ziehen oder die Werte tatsächlich in D2 und D3 setzen, so dass sie zu gefüllten Zellen benachbart sind, dann doppelklicken Sie auf den Griff wachsen. Es gibt auch einen Befehl irgendwo auf den Speisekarten, dies zu tun, aber ich erinnere mich nicht, seinen Namen oder den Ort.
@Carls Vorschlag oder etwas ähnliches ist der schnellste Weg zu bekommen, was Sie in Excel benötigen.
Eine weitere Option kann nur die Tabelle in Access eingerichtet und alle Primärschlüssel festgelegt. Dann einfach die Daten importieren und alle Fehler ignorieren, die aus ihm heraus kommen.