2015-07-12 93 views
0

我有一列excel文件,其中> 12500行。 它包含了這樣的隨機字符串有20位:Excel - 找到行數最大的差距

2,3,4,6,7,8,12,13,14,24,30,42,45,46,48,50,56,58,**59**,61 
1,2,6,8,11,12,13,16,17,21,24,27,28,33,34,42,44,48,58,61 
3,7,10,13,14,15,18,21,23,24,25,29,30,34,37,48,51,56,57,60 
8,11,13,16,17,19,21,27,29,35,36,39,42,44,46,50,53,54,57,60 
2,4,7,9,21,26,28,30,32,34,35,37,38,39,43,44,50,60,61,62 
10,13,15,18,21,22,23,24,25,26,40,42,48,49,51,52,56,**59**,61,62 
1,2,4,7,14,15,18,20,24,29,30,32,35,41,42,50,52,55,58,62 
1,4,8,9,10,12,17,24,25,33,37,41,43,44,46,49,52,**59**,61,62 
1,2,4,6,9,12,15,17,21,24,30,31,32,36,41,44,47,48,51,58 
2,7,10,12,15,16,20,24,25,27,30,33,39,44,45,52,54,55,58,60 
5,7,10,11,20,22,24,31,32,33,36,38,39,41,43,47,50,52,56,58 
3,6,8,9,14,15,19,21,25,28,34,37,39,45,47,54,55,56,57,**59** 
1,2,3,4,5,8,14,15,18,20,23,31,33,37,42,45,46,51,52,55 

我需要知道什麼是其中數量不重複行之間最大的差距。例如 - 我搜索任何數字(例如59),我需要知道59行沒有重複的兩行之間最大的差距。 在這個例子中它是59之間的4行間隔。

希望我明確自己。

+1

除非你有很強的理由避免它 - 爲什麼不使用文本到列並將其分成20列?這將使電子表格功能或VBA更容易獲取每行中的單個數字。 –

+1

你是怎麼試圖解決這個問題的? –

回答

1

看起來像一個有趣的問題,它承認了一個簡單但不是很明顯的答案。首先 - 確保數據是20列(使用數據選項卡下的文本到列功能)。使用你的榜樣,我想出了一個電子表格,看起來像:

enter image description here

V1持有目標數量。該公式是在列U.

在U1我進入:

=IF(ISNA(MATCH($V$1,A1:T1,0)),1,0) 

該配方使用MATCH以測試是否在V1的值處於範圍到它的左側。如果它不是匹配函數返回#N/A。功能ISNA檢查此錯誤值。 IF其存在,整體式返回1(因爲現在有連續的1行,而不在目標數)否則返回0

在U2的公式是用少量捻度類似:

=IF(ISNA(MATCH($V$1,A2:T2,0)),1+U1,0) 

相同的基本邏輯 - 但是如果目標號碼不存在,而不是返回1,則它將上面的數字加1。然後公式被複制到範圍的其餘部分。它具有保持連續行總數不超過目標值的效果。只要遇到具有目標值的行,該運行總計就會重置爲0。

最終成分無需評論。在U14我只是

=MAX(U1:U13) 

這就是你正在尋找(假設連續行沒有目標號碼的最大數量是你在找什麼,即使發生這種情況無論是在頂部或底部的數如果你想要最大的差距是之間兩行數字發生,邏輯將需要變得更復雜)。

+0

這是一個好方法。請注意,只要在字符串中搜索(在公式的開頭和結尾添加逗號),您就可以在沒有「文本到列」的情況下執行相同的邏輯。我認爲這樣做,待搜索的文本在列A中,搜索值在B1:= IF(ISNUMBER(SEARCH(「,」&$ B $ 1&「,」,「,」&A1&「, 「)),1,0) –

+1

@DougGlancy這是一個很好的觀察和一個聰明的方法,以確保您不會錯過行中第一個或最後一個位置的數字。 –