Excel VBA之函數篇-3.15數據篩選無煩惱 多樣組合來助力

Excel VBA之函數篇-3.15數據篩選無煩惱 多樣組合來助力

前景提要

在日常的工作中,數據篩選是我們經常都需要面對的事情,excel在這方面提供的選擇並不算是很多,最常見的篩選功能,只能選擇指定的幾種類型,比方說**開頭,或者等於**等,在大數據時代,數據的來源更加的廣泛,網絡來源數據,手工報表數據,多方採集的人工填寫數據。。。。,數據樣式也是多種多樣,比方說我們之前舉例過的不同的網上商城之間的訂單號也是不盡相同,在數據分析的時候,我們面對這樣的一大堆雜亂無章的數據肯定是非常的苦惱的,雖然我們知道最好的辦法就是規範各種數據的來源,但是這明顯很難,碰到數據很大的時候,不停的篩選還會導致死機,藍屏,內存不足等情況出現,最最重要的是,有些時候普通的篩選菜單完全不能滿足我們的篩選要求,想要的數據無從下手

這樣的苦惱,相信大家經常都會碰到有的,那麼既然VBA是office的官方支持的腳本語言,那麼他在處理這類問題的時候,有沒有獨特的方法,能夠幫助我們篩選出各種不同類型的數據組合,讓我們在進行數據篩選和後續的分析中能夠輕鬆一點呢?

函數說明

想要實現上述的功能,我們還是繼續撿起我們之前學習過的like()函數,看來like()的功能真的是好多啊,好了,前面的複述我就略過了,今天直接進入重點,上代碼!

上代碼

假設我們現在需要根據下面的三種要求,分別找出數據這三個商城的訂單,以方面我們後面進行彙總

Excel VBA之函數篇-3.15數據篩選無煩惱      多樣組合來助力

這裡我們來一個個的實現(為了後續篩選的方便,我們在查找要求的數據之後,我們將單元格的背景色標記為黃色,這樣後續我們就可以直接篩選顏色來找到我們要的數據了。)

1.以A~D開頭第2位是2的數量
Sub B9000b()
Dim i&
For i = 2 To 10
If Cells(i, "g") Like "[A-D]2*" Then
Cells(i, "g").Interior.Color = vbYellow
End If
Next i
End Sub

放眼一看,滿足我們要求的數據有。。。太難找了,直接運行代碼

Excel VBA之函數篇-3.15數據篩選無煩惱      多樣組合來助力

完美的找出來符合要求的數據。這裡我們要留意第二個數據,因為我們的要求是大寫的A-D,所以小寫的就不在這個範圍了,這點大家要注意,like()函數雖然說是模糊查找,但是在這個事情,他還是非常的認真的區分大小寫的哦。

2.以A~D開頭第2位是7-9的數量

Sub B9000b()
Dim i&
For i = 2 To 17
If Cells(i, "g") Like "[A-D][7-9]*" Then
Cells(i, "g").Interior.Color = vbYellow
End If
Next i
End SuB

我們看下運行的結果

Excel VBA之函數篇-3.15數據篩選無煩惱      多樣組合來助力

依然非常完美的找到了我們想要的數據。

3.第2位後全是數字的數量

這個要求似乎有點高級了,那麼會很難實現嗎?

Sub B9000b()
Dim i&
For i = 2 To 17
If Cells(i, "g") Like "?#####" Then
Cells(i, "g").Interior.Color = vbYellow
End If
Next i
End Sub

不難,來看看效果

Excel VBA之函數篇-3.15數據篩選無煩惱      多樣組合來助力

依然成功的找到了符合要求的參數了。

代碼解析

細心的童鞋一定能夠發現,小編在寫代碼的過程中也是不斷的增加數據源的數據,沒錯啦,確實是這樣的,因為構造這種數據源還是比較費腦子的,但是我們工作中各種奇怪的數據源又是非常出現的,所以為了能夠體現效果,我就會每次調試的時候再增加一點數據源,這樣效果會更好一點。

代碼方面也是非常的簡單,大家會發現我從頭到尾只改動了一句話,就是

If Cells(i, "g") Like "[A-D]2*" Then

這句話,就是like()函數的使用方法,前面兩個都比較的好理解,大家對這要求來理解下就好了。

這裡我重點說下最後一個

第2位後全是數字的數量,看這個要求非常的奇怪,其實也不難,我們需要抓住兩個重點,

1:第2位

2:後面全部是數字

我們來分析,第二位,在like()函數中,有幾個特殊的符號,*代表的就是佔位符,在前面我們學習起始符和包含於的時候都用到了這個*,你可以理解為他就是霸位的那種人,不管你後面有什麼要求,這個位置她先佔了,他佔在最前面,那就是代表了第一位,那麼後面的#代表的就是數字,它不僅僅是佔位符,同時還是數字的意思,既然第一位被霸佔了,那就只能去第二位咯,後面有幾個位置呢?5個位置,那就是5個數字,合起來就是第二位開始到後面都是數字的6個字符串的文本,這樣大家能夠理解吧。

總結

==========================================================================

OK ,今天的分享就到這裡了,比較的簡短,因為小編時間比較的匆忙,聽說到處都在塞車啊,我要趕快準備東西,晚點好出門坐車,坐車幹嘛?假期結束 ,肯定要回去搬磚啊,小夥伴們都準備返程了嗎?保佑我今晚不要塞車吧。

==========================================================================

本人已經打算長期分享一些網絡蒐集的各種VBA知識,如果大家有問題也可以提出來共同解決,一起進步,畢竟VBA的世界還是很大的。

如果你有什麼想要分享的,或者有什麼想要知道的,都可以留言等方式告訴我,大家一起努力進步。

好了,明晚19:00,準時再見。

=============================歷史相關文章==============================


分享到:


相關文章: