下面這個表是要去重的部分資料,這次我需要做的是
把資料中的日期提取出來去重
日後計算需要用到
為了能夠達到去重的目的,首先要先把日期提取出來,如果只是為了提取日期,那麼可以使用format很方便,今天嘗試用string寫,只是一種嘗試,以便以後處理其他資料,**如下
sub 時間去重()
'把所有的日期資料放到arr
()陣列中,arr陣列的大小等於行數
dim r as integer, rc as integer, str as string,
arr(
) as string
rc =
range
("a1"
).currentregion.rows.count
redim arr
(0 to rc -1)
for r =
2 to rc step 1
str =
cells
(r,"a"
).value
'cells
(r,"g"
).value =
left
(str,10)
arr(r -2)
=left
(str,10)
next r
range
("g2:g"
& rc)
transpose
(arr)
'===
*****=
*****=
*****=
*****=
*****=
*****=
*****=
*****=
*****=
*****=
*****=
*****=
='把arr()
中的資料匯入到key
()中並去重
dim i as integer, j as integer, k as integer, l as integer, m as integer,
key(
1000
) as string
k =0
m =0
for i =
0 to rc -
1 step 1
l =0 for j =
0 to k step 1
if arr
(i)=
key(j) then
l = l +
1 end if
next j
if l =
0 then
key(k)=
arr(i)
k = k +
1 end if
next i
msgbox key(10
)end sub
邏輯是建立了兩個陣列,arr()和key(),arr()陣列是存放所有處理完的資料的陣列,key()是存放去重資料的陣列
一開始key陣列是空的,外迴圈的次數是arr()陣列中元素的數量,內迴圈是key()陣列的元素數量,把arr陣列中的元素依次放到key陣列中與所有元素進行比較,如果比較中發現arr陣列的元素在key陣列中有,那麼就不往key陣列中新增,如果發現arr陣列的這個元素在所有的key陣列中都找不到,那麼就新增到key陣列中,從而最後輸出的key陣列就是去重之後的陣列。
最後msgbox輸出乙個驗證就好了,對於現在的我還不那麼熟練的是類似這種key陣列數量變化中該如何控制迴圈次數,所以花了很多時間。
新手,還得繼續努力啊~
javascript 陣列去重的6種思路
前端在日常開發中或多或少都會碰到有對資料去重的需求,實際上,像是lodash這些工具庫已經有成熟完備的實現,並且可以成熟地運用於生產環境。但是這並不妨礙我們從思維拓展的角度出發,看看去重可以用幾種思路去實現。首先是常規的雙層迴圈比對的思路實現 function doubleloopuniq arr ...
一種方便理解的mysql 去重方法
遇到個問題,240萬的郵箱資料,重複了70萬,這就是怎麼過濾的問題了。大致搜尋了一下,有一種比較土的方法。mysql沒有select into table select from table2 create table new table select from prev table 或者inser...
List集合去重的一種方法
前一段時間們需要對乙個list集合去重,情況是該集合中會出現多個name屬性值相同的,但是其他屬性值不同的資料。在這種情況下,需求要只保留其中乙個就好。我覺得遍歷和hashset都不是我想要的,便採用了一下方式 定義compare類,繼承iequalitycomparer介面 public clas...