Страницы: 1
RSS
Найти пропущенные числа в области, в которой в произвольном виде расположены числа в последовательности
 
Есть область из 10 столбцов и 100 строк в которой в произвольном виде (хаотично) в ячейках внесены числа от 1 до 500. Задача в том, что бы найти пропущенные числа в последовательности 1-500 и вывести эти числа в определенный столбец.
Ничего подобного на форуме не нашел, есть только для сортированных столбцов, но этот вариант мне не подходит.
 
Не выдумывайте. Нет области, нет чисел, т.к.нет примера.
Без примера - набросок формулы массива:
=НАИМЕНЬШИЙ(ЕСЛИ(СЧЕТЕСЛИ(диапазон;СТРОКА($1:$500)=0;СТРОКА($1:$500));СТРОКА(A1))
 
да, извиняюсь за отсутствие файла.   Прикрепляю, последовательность от 1 до 655
 
Сами не пробовали показанную формулу вставить? Формула массива, ввод тремя клавишами.
 
пробовал, но мне надо и всей этой области выбрать пропущенные числа их должно быть 12 шт я не пойму как эта формула должна их найти   :(
 
Вариант:
Код
Sub Macro1()
Dim i As Long, Rng As Range, x As Long
    Set Rng = Range("B2:N361")
    ReDim arr(1 To 655, 1 To 1)
    For i = 1 To 655
        If Application.WorksheetFunction.CountIf(Rng, i) = 0 Then
            x = x + 1
            arr(x, 1) = i
        End If
    Next
    Cells(2, 1).Resize(x, 1).Value = arr
End Sub
 
Цитата
Гравитон написал:
их должно быть 12 шт
как вы 12 насчитали? у меня шесть получилось.
 
Юрий М   большое СПАСИБО все работает, то что нужно.  :idea:    
 
Цитата
Михаил С. написал:
как вы 12 насчитали? у меня шесть получилось.
У меня тоже шесть )
 
Не массивная, но не менее тяжёлая. Идея взята у Михаил С. (для офиса 2010 и выше):
=АГРЕГАТ(15;6;СТРОКА(ДВССЫЛ("1:"&МАКС($B$2:$N$361)))/(СЧЁТЕСЛИ($B$2:$N$361;СТРОКА(ДВССЫЛ("1:"&МАКС($B$2:$N$361))))=0);СТРОКА())

Вводить начиная с первой строки.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
вы совершенно правы 6, я просчитался
 
Они найдены еще в сообщении №4
 
Спасибо всем за участие.... :)
 
Цитата
JayBhagavan написал:
Не массивная, но не менее тяжёлая. Идея взята у  Михаил С.  (для офиса 2010 и выше):=АГРЕГАТ(15;6;СТРОКА(ДВССЫЛ("1:"&МАКС($B$2:$N$361)))/(СЧЁТЕСЛИ($B$2:$N$361;СТРОКА(ДВССЫЛ("1:"&МАКС($B$2:$N$361))))=0);СТРОКА())Вводить начиная с первой строки.

А я правильно понял, что формула показывает пропущенные числа с наименьшего в указанном диапазоне?
Юный адепт культа УЧУД.
 
В продолжение разговора, а возможно в формулу из последнего сообщения ввести дополнительное условие?
например находить пропущенные числа по условию "ООО" и "ЗАО"?
Юный адепт культа УЧУД.
Страницы: 1
Наверх