Страницы: 1
RSS
Найти пропущенные значения в последовательности
 
Добрый день, мне нужно чтобы в отдельный столбец  выводились пропущенные значения из последовательности, последовательность в приложении. Много гуглил, понял что задача в целом простая и выполнимая, нашел формулу массива
Код
=SMALL(IF(ISNA(MATCH(ROW(A$1:A$30),A$1:A$30,0)),ROW(A$1:A$30)),ROW(A1))
но когда я ее вставляю и нажимаю ctrl+shift+enter, то эксель мне пишет "Ошибка в формуле", а в чем ошибка я не могу понять, потому что еще новичок в этом деле. Подскажите, пожалуйста, как решить данную задачу в целом или хотя бы укажите в чём ошибка в формуле?
Изменено: vikttur - 10.08.2021 15:52:53
 
Код
Sub Макрос1()
    Range("B1").Value = Range("A1").Value
    Range("B1").AutoFill Destination:=Range("B1:B38"), Type:=xlFillDefault
    Range("C1:C38").FormulaR1C1 = "=COUNTIFS(C[-2],C[-1])"
    Range("C1:C38").Calculate
End Sub

 
Формулой с дополнительным столбцом В.
 
del
Изменено: buchlotnik - 23.08.2021 17:34:31
Соблюдение правил форума не освобождает от модераторского произвола
 
Оба решения и корректны и нет
Никита Костин,  определите что значит пропуск в последовательности. последние октет от 0 до 255 или от минимального до максимального
прочие октеты неизменны или последовательность может быть не только С но и B класса.
По вопросам из тем форума, личку не читаю.
 
del
Изменено: buchlotnik - 21.08.2021 17:10:31
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
buchlotnik написал:
их дано минимум 3, не считая формулы от ТС-а
на экран влезло только два :-)
Цитата
buchlotnik написал:
тёзка, где там хоть намек на класс В?
а вдруг на экран не влезло? :-) а серьезно если то просто хочу чтоб сразу были границы очерчены.
По вопросам из тем форума, личку не читаю.
 
задачка для МШ? айпишки класса В на формулах? хоть первые два узла можно по числу символов зафиксировать?
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
buchlotnik написал:
хоть первые два узла можно по числу символов зафиксировать?
так тогда двумерник простой. а с учетом кратности из последовательности взять значение не проблема, а главное нет практического смысла.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
тогда двумерник простой
ну как простой - задача-то вынуть из него все отсутствующие. осталось дождаться ТС-а и всё-таки прояснить и по задаче, и по версии фреймворка  :)
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
buchlotnik написал:
задача-то вынуть из него все отсутствующие
так вариантов то генерить проверить и получить массив индексов тех что отсутсnвуют, по порядку генерить IP. для скорости можно начинать с предыдущего пропущенного +1.
Изменено: БМВ - 10.08.2021 20:11:11
По вопросам из тем форума, личку не читаю.
 
Для того, что на экран поместилось )
Копируем два первых значения в отдельный столбец. Тянем вниз. Получаем последовательность от и до.
Рядом пишем формулу =СЧЁТЕСЛИ(A:A;значение ), протягиваем. Фильтром оставляем видимыми нулевые. Копируем видимые, вставляем где-нибудь.
 
Немного диковато и тормознуто получилось, но как вариант:
Код
=ЛЕВСИМВ(A1;НАЙТИ("#";ПОДСТАВИТЬ(A1;".";"#";3)))&ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ(ЕНД(ПОИСКПОЗ(СТРОКА(ДВССЫЛ(МИН(0+ПРАВБ($A$1:$A$19;3))&":"&МАКС(0+ПРАВБ($A$1:$A$19;3))));0+ПРАВБ($A$1:$A$19;3);0));СТРОКА(ДВССЫЛ(МИН(0+ПРАВБ($A$1:$A$19;3))&":"&МАКС(0+ПРАВБ($A$1:$A$19;3)))));ЧСТРОК(A$1:A1));"")

Ну можно еще без INDIRECT(), чуть побыстрее будет:
Код
=ЛЕВСИМВ(A1;НАЙТИ("#";ПОДСТАВИТЬ(A1;".";"#";3)))&ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ(ЕНД(ПОИСКПОЗ(СТРОКА(ИНДЕКС($A$1:$A$187;МИН(0+ПРАВБ($A$1:$A$19;3))):ИНДЕКС($A$1:$A$187;МАКС(0+ПРАВБ($A$1:$A$19;3))));0+ПРАВБ($A$1:$A$19;3);0));СТРОКА(ИНДЕКС($A$1:$A$187;МИН(0+ПРАВБ($A$1:$A$19;3))):ИНДЕКС($A$1:$A$187;МАКС(0+ПРАВБ($A$1:$A$19;3)))));ЧСТРОК(A$1:A1));"")
Изменено: memo - 10.08.2021 21:23:18 (Обновил пример)
 
Цитата
БМВ написал:
так вариантов то
а я спорю? не уверен в их оценке как "простые"
Соблюдение правил форума не освобождает от модераторского произвола
 
ТС придет и офигеет от вашей переписке и спорах
 
а тут кто-нибудь знает что и в каком виде нужно автору темы?
если бы я знал - я бы тоже поучаствовал
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
кто-нибудь знает что и в каком виде нужно
Игорь, если б всё было так просто, разве ж было бы столько сообщений  :)
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
Ігор Гончаренко написал:
если бы я знал - я бы тоже поучаствовал
участвуй, yезнание нас же не останавливает :-)
По вопросам из тем форума, личку не читаю.
 
минуточку, прежде чем вступить в игру, а что у вас козырь?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
может еще и прикуп показать?  :D
По вопросам из тем форума, личку не читаю.
 
Все козыри у автора )
 
memo, А Зачем так сложно ЛЕВСИМВ(A1;НАЙТИ("#";ПОДСТАВИТЬ(A1;".";"#";3)))
если есть уверенность в МИН(0+ПРАВБ($A$1:$A$19;3)) ? :D
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Зачем так сложно
Сам в шоке.
 
Всем большое спасибо, от количества вариантов я действительно офигел, как-то по гуглу всё проще казалось, просто почему-то не работало  :D . Еще я не ожидал, что ответят так быстро и так много, поэтому написал вопрос и отложил до следующего дня, сейчас захожу в надежде, что хотя бы одна подсказка будет и не в стиле "чо в гугле забанили", а тут вариантов на любой вкус. Еще раз всем спасибо.
 
Никита Костин, ответьте уже на сообщение #5 - и расскажите про свою версию эксель - много не значит, что именно ваша задача решена
Изменено: buchlotnik - 11.08.2021 10:09:54
Соблюдение правил форума не освобождает от модераторского произвола
Страницы: 1
Наверх