目標:在重複資料中按照一定規則提取、組合。
sub match()
dim i, j, z, n, flag, a, b, c
set a = worksheets("sheet1").usedrange
set b = worksheets("sheet2").usedrange
set c = worksheets("sheet3").usedrange
for i = 3 to a.rows.count
for j = 2 to b.rows.count
if a.cells(i, 1) = b.cells(j, 2) then
'險種名稱
debug.print b.cells(j, 2)
select case b.cells(j, 3)
case is = a.cells(1, 3)
'城鎮職工基本醫療保險
'繳費基數 賦值列不同
a.cells(i, 2) = val(b.cells(j, 6))
'繳納金 賦值列不同
a.cells(i, 3) = val(b.cells(j, 8))
a.cells(i, 4) = val(b.cells(j, 9))
case is = a.cells(1, 6)
'城鎮企業職工基本養老保險
'繳費基數
a.cells(i, 5) = val(b.cells(j, 6))
'繳納金
a.cells(i, 6) = val(b.cells(j, 8))
a.cells(i, 7) = val(b.cells(j, 9))
case is = a.cells(1, 8)
'公務員醫療補助
'繳費基數
a.cells(i, 5) = val(b.cells(j, 6))
'繳納金
a.cells(i, 8) = val(b.cells(j, 8))
a.cells(i, 9) = val(b.cells(j, 9))
case is = a.cells(1, 10)
'生育保險
'繳費基數
a.cells(i, 5) = val(b.cells(j, 6))
'繳納金
a.cells(i, 10) = val(b.cells(j, 8))
a.cells(i, 11) = val(b.cells(j, 9))
case is = a.cells(1, 12)
'工傷保險
'繳費基數
a.cells(i, 5) = val(b.cells(j, 6))
'繳納金
a.cells(i, 12) = val(b.cells(j, 8))
a.cells(i, 13) = val(b.cells(j, 9))
case is = a.cells(1, 14)
'失業保險
'繳費基數
a.cells(i, 5) = val(b.cells(j, 6))
'繳納金
a.cells(i, 14) = val(b.cells(j, 8))
a.cells(i, 15) = val(b.cells(j, 9))
case else
end select
end if
next
next
'把名字找到,然後將屬性整合
j = 3
flag = 0
'debug.print c.cells(j, 1)
for i = 3 to a.rows.count
if c.cells(j, 1) = "" then
for z = 3 to j 'z用於控制待寫入資料和前面資料的重複比較次數
'debug.print z
if c.cells(z, 1) = a.cells(i, 1) then
if c.cells(z, 1) <> "" then
flag = 1 'flag用於判斷待寫入資料是否和前面的資料重複
debug.print z
end if
end if
next
if flag = 0 then '只有經過上面的重複資料迴圈判斷,才能確定這個資料不是重複資料
c.cells(j, 1) = a.cells(i, 1)
for n = 2 to 15 'n 用於控制寫出資料的列數
c.cells(j, n) = a.cells(i, n)
next
debug.print c.cells(j, 1)
j = j + 1 '
end if
end if
flag = 0
next
debug.print "done"
end sub
篩選重複資料
沒有主鍵,有大量重複資料,並且兩張表之間也可能有重複資料。先要求 匯出資料不能重複,身份證號碼相同的按警告級別高的匯出,身份證號碼相同的按警告級別也相同的則按修改時間最新的匯出。大致有這麼幾個方案 1。直接寫sql語句把要用的資料篩選出來。2。新建乙個臨時表,先將兩張表的資料放入臨時表,然後篩選。3...
VBA研究 如何篩選出重複的郵件號碼
客服人員發現地市分公司上報的理賠郵件有重複現象,但人工檢查重複非常麻煩,因為這些號碼不在乙個工作表中。為此我做了乙個小工具,可以一鍵列出excel檔案中所有工作表中重複的號碼。有了這個工具,不僅可以篩選重複郵件號碼,也可以用於篩選其他重複的東西,比如姓名 身份證號碼等等。1 工具介面 為了提高工具的...
刪除重複資料
介紹兩種刪除重複行的方式 1.使用臨時表,分組找出重複部分的id進行刪除 刪除table goods info 中存在重複goods id的記錄 select identity int,1,1 as autoid,into temptable from goods info select min a...