2009-08-13 76 views
2

我有一个有约18K行和三列的Excel电子表格。我想用它作为Access数据库中的一个键。因此,三列是从Excel电子表格中删除包含重复数据的行吗?

[IDKeyNumber] [Name] [Category] 

的问题在某些地方的ID号是重复的,因为该类别有两种类别代码(的typeA &的TypeB)

我真正需要知道如何做的是删除每excel电子表格中的“行/记录”其中ID#s &名称匹配(如匹配另一条记录以隔离重复)和Category = TypeB。

所以我只想摆脱所有在类别字段中具有此TYPEB的重复行/记录。

谢谢!

IA:一些行或记录有一个有效的TypeB的类别,是不是重复,这就是为什么我需要记录=除了类别想法记录...感谢

回答

4

有可能使用ADO和SQL与Excel,例如:

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 
3

比方说,列A,B和C.

  1. 加列标题(ID,姓名, 类别)列以上
  2. 排序由A & B.(如果你需要 保存排序顺序,见下文)
  3. 在D2,把公式 “= AND(A2 = A1,B2 = B1,C2 = ”的TypeB“)”
  4. 向下填充
  5. 使用自动筛选只选择 行,其中d是假的。
  6. 根据需要复制和粘贴。

为了保留排序顺序,您需要另一列 - 比方说E,因为我们使用D作为公式。在排序之前,将1放入E2,将2放入E3,然后填入该系列。您可以通过拖动增长手柄或将值放入D2和D3中,以使它们与填充的单元格相邻,然后双击增长手柄来完成此操作。菜单上还有一个命令可以执行此操作,但我不记得它的名称或位置。

1

@Carls的建议或类似的东西是最快捷的方式来获得你需要在Excel中。

另一个选项可能是在Access中设置表并设置所有主键。然后只需导入数据并忽略它出现的任何错误。

相关问题