excel數據處理技巧:如何提取連續(xù)數據列起始和終止值

編按:哈嘍,大家好!怎么從一列數據中找出連續(xù)數并提取連續(xù)數的起始值和終止值?今天給大家分享一個最簡單的、通過輔助列來解決這個問題的方法。我們將建立兩個輔助列找到各段連續(xù)數的起始和終止值,然后用常用函數INDEX、MATCH把它們分列顯示出來。學習更多技巧,請收藏關注部落窩教育excel圖文教程
近日在答疑群看到一個整理編號的問題,覺得非常經典,特分享給大家。
問題如下圖所示:

?
數據源為A列,為了方便后面介紹,這里虛擬了23條數據,實際上可能是成千上萬條數據?,F在的問題是需要將這一列卡號按照連續(xù)性整理成號段的形式,也就是C列和D列的結果,為了便于大家看明白,特意標注了不同的顏色。
問題明白了就該想想解決辦法,這個問題似乎很有規(guī)律,但是又有點無從下手的感覺,于是各種聲音都出現了,有說用VBA的,有說用PQ的,但是今天老菜鳥要和大家分享的辦法就是用函數公式,而且是幾個非?;A的函數,只不過還用了兩個輔助列,下面就來分享解決思路。
要解決這個問題需要做兩件事,第一是確定分段節(jié)點,也就是找到號碼不連續(xù)的位置。第二就是分組,把連續(xù)的號碼視為一組。當解決了這兩個問題之后,最后的結果就非常容易得到了。輔助列1解決分段節(jié)點的問題,公式為:
=IFERROR(IF(RIGHT(A2,4)-RIGHT(A1,4)<>1,ROW(),),1)

?
因為卡號是包含了字母的字符串,要判斷是否連續(xù)只能通過右邊的幾位數字來確定,也就是RIGHT(A2,4)-RIGHT(A1,4)。

?
結果為1時,說明是連續(xù)的,為了讓結果更加直觀,需要加個IF函數處理一下,于是就有了IF(RIGHT(A2,4)-RIGHT(A1,4)<>1,ROW(),)。

?
注意到D2中錯誤值,是因為數據源中的第一行是文字而造成的,要處理這個問題很簡單,再加一個IFERROR就可以了,將錯誤值修正為1,這就是輔助列1的完整思路。學習更多技巧,請收藏關注部落窩教育excel圖文教程。
接下來要處理的就是分組問題,有了輔助列1,這個問題就很容易解決,公式為:
=COUNTIF($B$1:B2,">0")

?
COUNTIF也是比較常用的一個函數了,這個地方就是實現對大于零的數字進行計數,從而達到分組的效果。
有了這兩個輔助列,最后再來介紹起始編號和終止編號是如何得到的。
起始編號的確定其實就是一個反向查找的問題,第一個起始編號就是輔助列2中數字1所對應的編號,第二個起始編號就是輔助列2中數字2所對應的編號,以此類推。
明白了這一點之后,起始編號的公式就會有很多種寫法,老菜鳥使用了INDEX和MATCH這對黃金搭檔組合,公式為:
=INDEX(A:A,MATCH(ROW(A1),C:C,))

?
終止編號的公式與起始編號的公式僅有一字之差,公式為:
=INDEX(A:A,MATCH(ROW(A1),C:C,1))

?
區(qū)別就在于MATCH函數的第三參數,在計算起始編號的公式中省略了第三參數,表示0,含義為精確查找,而在計算終止編號的公式中第三參數為1,含義為升序的模糊查找。關于這一點,在之前講解的MATCH函數教程中都有介紹,這里只簡單說一下區(qū)別,如果查找值存在多個時,精確查找返回第一個符合條件的結果,當數據按升序排列時,模糊查找返回最后一個符合條件的結果,在本例中,查找值是1、2、3這些數字,第一個符合條件的結果就是起始值,而最后一個符合條件的結果就是終止值。
結束語:實際工作中遇到的很多問題,如果要一步到位的話往往會很難,但是如果能夠發(fā)現解決問題的關鍵步驟,并通過輔助列這個手段去拆解問題的話,要比追求一步到位的解法更有效率。學習更多技巧,請收藏關注部落窩教育excel圖文教程。
本文配套的練習課件請加入QQ群:1043683754下載。
****部落窩教育-excel提取數據列起始和終止值****
原創(chuàng):老菜鳥/部落窩教育(未經同意,請勿轉載)
更多教程:部落窩教育(http://www.itblw.com)
微信公眾號:exceljiaocheng,+v:blwjymx2