我有一个excel电子表格,大约有18k行和3列。我想将其用作Access数据库中的密钥。所以三列是
[IDKeyNumber] [Name] [Category]
问题是在某些地方IDnumber是重复的,因为该类别有两个类别代码(typeA& typeB)
我真正需要知道的是删除excel电子表格中的每个“行/记录”ID#s&名称匹配(如匹配另一个记录以隔离重复)和Category = TypeB。
所以我只想摆脱类别字段中包含此TYPEB的所有重复行/记录。
谢谢!
IA:某些行或记录具有有效的TypeB类别,这不是重复,这就是为什么我需要记录=记录除了类别的想法...谢谢
答案 0 :(得分:4)
可以在Excel中使用ADO和SQL,例如:
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
答案 1 :(得分:3)
假设列是A,B和C.
为了保留排序顺序,你需要另一列 - 让我们说E,因为我们使用D作为公式。在排序之前,将1放入E2,将2放入E3,并填写系列。您可以通过拖动增长手柄,或者将值实际放入D2和D3,使它们与填充的单元格相邻,然后双击增长手柄来完成此操作。菜单上的某个地方还有一个命令来执行此操作,但我不记得它的名称或位置。
答案 2 :(得分:1)
@ Carls建议或类似的东西是获得excel所需内容的最快捷方式。
另一种选择可能是在Access中设置表并设置所有主键。然后只需导入数据并忽略它产生的任何错误。