Excel 2016:在一列中查找5000到6000中丢失的数字
我有一个数字从5000到6000的列(A)。现在,有些数字不见了。 例如下面的列中缺less编号5004。
5000
-
5001
-
5002
-
5003
-
5005
-
5006
-
...
-
6000
所以, 5004
号码丢失了。 我怎样才能find所有缺失的数字?
如果你想在很多,然后把这个在第一个单元格,并复制/下拉:
=IFERROR(AGGREGATE(15,6,ROW(INDIRECT("5000:6000"))/(ISERROR(MATCH(ROW(INDIRECT("5000:6000")),A:A,0))),ROW(1:1)),"")
如果您有Office 365 Excel,并且您想在一个单元格中使用此数组公式:
=TEXTJOIN(",",TRUE,IF(ISERROR(MATCH(ROW(INDIRECT("5000:6000")),A:A,0)),ROW(INDIRECT("5000:6000")),""))
作为一个数组公式,在退出编辑模式时,需要使用Ctrl-Shift-Enter而不是Enter来确认。 如果正确完成,则Excel将在公式周围放置{}
。
如果您没有Office 365 Excel,并且您仍然希望在一个单元格中,那么您将需要vba。
把这个UDF放在一个附加到工作簿的模块中,并使用上面描述的TEXTJOIN()公式。
Function TEXTJOIN(delim As String, skipblank As Boolean, arr) Dim d As Long Dim c As Long Dim arr2() Dim t As Long, y As Long t = -1 y = -1 If TypeName(arr) = "Range" Then arr2 = arr.Value Else arr2 = arr End If On Error Resume Next t = UBound(arr2, 2) y = UBound(arr2, 1) On Error GoTo 0 If t >= 0 And y >= 0 Then For c = LBound(arr2, 1) To UBound(arr2, 1) For d = LBound(arr2, 1) To UBound(arr2, 2) If arr2(c, d) <> "" Or Not skipblank Then TEXTJOIN = TEXTJOIN & arr2(c, d) & delim End If Next d Next c Else For c = LBound(arr2) To UBound(arr2) If arr2(c) <> "" Or Not skipblank Then TEXTJOIN = TEXTJOIN & arr2(c) & delim End If Next c End If TEXTJOIN = Left(TEXTJOIN, Len(TEXTJOIN) - Len(delim)) End Function