Страницы: 1
RSS
возможно ли среди чисел найти те которых нет в списке
 
всем привет у меня вот такая проблема есть ряд чисел вот в таком формате 4801,4802,4803..... среди них есть такие числа которые пропущены как и с помощью чего я их могу найти пожалуйста напишите только подробнее
 
Цитата
Анна Соболева написал:
4801,4802,4803
среди этих чисел пропущено бесконечное множество вещественных чисел, или нет пропущенных целых.  Вам надо уделить время примеру, в котором показано что у вас есть и в каком виде нужен результат.
По вопросам из тем форума, личку не читаю.
 
Анна Соболева, наугад:
в столбце А у вас словарь с числами ,в столбце B проверяемые числа.
Код
Sub mrshkei()
Dim cell As Range, col As New Collection, lr As Long, i As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lr
    Set cell = Columns(2).Find(Cells(i, 1))
    On Error Resume Next
    If cell Is Nothing Then col.Add Cells(i, 1), CStr(Cells(i, 1))
Next i
For i = 1 To col.Count
    x = x & col(i) & ", "
Next i
MsgBox "Пропущены такие ЦЕЛЫЕ числа: " & x
End Sub
Изменено: Mershik - 08.01.2021 19:57:56
Не бойтесь совершенства. Вам его не достичь.
 
А я понял так, что, например, в А1 числа 4801,4802,4803,4807,4809
Надо найти пропущенные и вывести, скажем, в В1
Код
Sub MissingNumbers()
Dim j As Long
Dim arr
Dim temp As Long
  Cells(1, 2).ClearContents
    arr = Split(Cells(1, 1).Value, ",")
    j = 0
  Do
    temp = CDbl(arr(0)) + j + 1
    If InStr(1, Cells(1, 1), CStr(temp)) = 0 Then
      Cells(1, 2) = Cells(1, 2) & temp & ", "
    End If
      j = j + 1
  Loop While temp < CDbl(arr(UBound(arr)))
    Cells(1, 2) = Left(Cells(1, 2), Len(Cells(1, 2)) - 2)
End Sub
 
А я думаю правильнее подождать :)
P.S.
Можно сперва загнать в словарь все существующие числа, затем циклом от минимального до максимального проверить наличие числа в словаре, и те, которых в словаре нет - собрать в коллекцию.
Или другой вариант - сперва циклом от минимума до максимума наполнить словарь, затем циклом по существующим их из словаря удалить. Если заведомо нет дублей - так даже как-то экономнее и возможно быстрее.
Изменено: Hugo - 08.01.2021 23:11:59
Страницы: 1
Наверх