我有一個數字範圍,我需要確定每個單元格的第一個數字是否在相應行的任何位置重複。統計一個範圍內的數字的多個實例
例如,在下面的第2行中,第2列和第3列都以3開頭。我知道如果我做= LEFT(TRIM(cell))來獲取第一個數字,但是如何查找行在行中有重複的數字,因此行1未標記,但行2是?
100|600|203|700| |
202|302|301|400|600|
我有一個數字範圍,我需要確定每個單元格的第一個數字是否在相應行的任何位置重複。統計一個範圍內的數字的多個實例
例如,在下面的第2行中,第2列和第3列都以3開頭。我知道如果我做= LEFT(TRIM(cell))來獲取第一個數字,但是如何查找行在行中有重複的數字,因此行1未標記,但行2是?
100|600|203|700| |
202|302|301|400|600|
使用輔助塔與此作爲數組公式:
=SUMPRODUCT(--(COLUMN($A1:$E1)<>MATCH(INT($A1:$E1/100),INT($A1:$E1/100),0)))>0
作爲一個陣列式,它必須與確認Ctrl鍵移輸入,而不是退出編輯模式時輸入。如果正確完成,Excel將在公式周圍放置{}
。
該公式爲我返回了一個錯誤。這可能是因爲某些色譜柱在第4或第5個點上有空白單元格。 – amwakatsuki
空白應該無關緊要,如果您在兩件事中遇到錯誤之一。 1你沒有用Ctrl-Shift-Enter作爲數組公式輸入。 2.您的本地設置使用';'而不是'''來描繪公式中的條件。 –
一種方式做到這一點是使用這個公式爲基礎:
=IF(ISERROR(FIND(LEFT(TRIM(A1),1),B1)),FALSE,"Row "& ROW(A1))
根據您要如何檢查行,你能適應它。您可以使用一個公式來檢查一個單元格(鎖定A1參考並向右拖動) - 這可以讓您知道匹配的位置,但在工作表上佔用更多空間。 或者,如果你沒有太多的細胞每一行進行檢查,你可以毗連同公式中的所有單元格:
=IF(ISERROR(FIND(LEFT(TRIM(A1),1),B1&C1&D1&E1)),FALSE,"Row "& ROW(A1))
我相信加里的學生將有一個更優雅的答案,但!
該解決方案几乎可行,但返回了一些誤報和一些誤報。 – amwakatsuki
然後它沒有做得很好!確保引用是正確的,並且包含數據的所有列都包含在第二個公式中,因爲它當前停在列E.如果列F中的數據將使公式爲True,它將不會被捕獲。 當我向右拖動第一個公式而沒有鎖定引用(例如A1而不是$ A $ 1)時,我得到了錯誤的肯定結果,並且由於使公式True成爲F列的數據(當前未包含公式)。 – Pomul
考慮以下UDF():
Public Function AnyDups(rng As Range) As Boolean
Dim valu() As String
Dim i As Long, L As Long
L = rng.Count
ReDim valu(1 To L)
AnyDups = False
If L = 1 Then Exit Function
i = 1
For Each r In rng
valu(i) = Left(r.Value, 1)
i = i + 1
Next r
For i = 1 To L - 1
v = valu(i)
For j = i + 1 To L
If v = valu(j) Then AnyDups = True
Next j
Next i
End Function
例如:
的代碼只是循環通過的最左邊的字符可能的組合在細胞中。
它應該適用於文本或數字數據。
我對VBA不太熟悉,但我會研究它,以便測試它。這可能很有幫助,因爲該過程將被重複使用很多次,並且每次運行一個宏將是一次單擊解決方案(如果我正確理解宏) – amwakatsuki
你想在哪裏出現「標記」? –
標記(例如「Y」)將顯示在最後一列右側的列 – amwakatsuki
您能分享您試圖用於不同答案的屏幕截圖嗎?它會幫助我們幫助你。 – Pomul