powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проверка на присутствие 2 посторяющихся пропусков (нулей)
14 сообщений из 14, страница 1 из 1
Проверка на присутствие 2 посторяющихся пропусков (нулей)
    #34650689
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Название темы не очень. Сейчас объясню. Есть диапазон ячеек. нужно проверить есть ли в диапазоне два подряд пустых значения или нуля.
Всё этой обычной формулой. Макросом я умею.

Для пустых значений я сделал вот так:
Для диапазона J1:O1 :
=Ечисло(СУММПРОИЗВ(ПОИСКПОЗ("";J1:N1&K1:O1;0)))
Для нулей так:
=Ечисло(СУММПРОИЗВ(ПОИСКПОЗ("00";J1:N1&K1:O1;0)))

Если в премешку и 0 и пусто получается длинно.

=СУММПРОИЗВ(ЕЧИСЛО(ПОИСКПОЗ("00";K1:O1&L1:P1;0))+ЕЧИСЛО(ПОИСКПОЗ("0";K1:O1&L1:P1;0))+ЕЧИСЛО(ПОИСКПОЗ("";K1:O1&L1:P1;0)))>0

Может будут предложения!
...
Рейтинг: 0 / 0
Проверка на присутствие 2 посторяющихся пропусков (нулей)
    #34650709
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть короче вариант, но формула массива

{=ПОИСКПОЗ("";ТЕКСТ(K1:O1;"#")&ТЕКСТ(L1:P1;"#");0)}
...
Рейтинг: 0 / 0
Проверка на присутствие 2 посторяющихся пропусков (нулей)
    #34650723
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или так, тоже массив
{=ПОИСКПОЗ("";ПОДСТАВИТЬ(K1:O1&L1:P1;"0";"");0)}
А мне бы без массива хотелось!
...
Рейтинг: 0 / 0
Проверка на присутствие 2 посторяющихся пропусков (нулей)
    #34650789
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мо-моему нашёлся вариантик, как я сразу не догадался!
Но если кто хочет поучаствовать, милости просим!

=СУММПРОИЗВ((K3:O3=0)*(L3:P3=0))>0
...
Рейтинг: 0 / 0
Проверка на присутствие 2 посторяющихся пропусков (нулей)
    #34650910
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadИли так, тоже массив
{=ПОИСКПОЗ("";ПОДСТАВИТЬ(K1:O1&L1:P1;"0";"");0)}
А мне бы без массива хотелось!

формулу можно пожалуй подсократить:

{=ИЛИ(ЕОШИБКА(1/(K1:O1+L1:P1)))}

а если хочешь без массива, можешь засунуть =ЕОШИБКА(1/(K1:O1+L1:P1)) в именованную формулу с относительной ссылкой, см. пример.


KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Проверка на присутствие 2 посторяющихся пропусков (нулей)
    #34650918
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет Deggasad
сделай доброе дело, напиши макросом
просто интересна логика другого человека
...
Рейтинг: 0 / 0
Проверка на присутствие 2 посторяющихся пропусков (нулей)
    #34650923
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
твоя попроще в исполнении - моя побыстрее (XL2007) :-)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Проверка на присутствие 2 посторяющихся пропусков (нулей)
    #34651078
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)твоя попроще в исполнении - моя побыстрее (XL2007) :-)

KL
[MVP - Microsoft Excel]

Используя твой пример, ну а если так?

=СУММПРОИЗВ(--(J3:N3+K3:O3=0))>0
...
Рейтинг: 0 / 0
Проверка на присутствие 2 посторяющихся пропусков (нулей)
    #34651085
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad KL (XL)твоя попроще в исполнении - моя побыстрее (XL2007) :-)

KL
[MVP - Microsoft Excel]

Используя твой пример, ну а если так?

=СУММПРОИЗВ(--(J3:N3+K3:O3=0))>0

Я имею ввиду чтобы без массива, а не о скорости. Цитату твою неудачно взял.
...
Рейтинг: 0 / 0
Проверка на присутствие 2 посторяющихся пропусков (нулей)
    #34651200
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klen_Привет Deggasad
сделай доброе дело, напиши макросом
просто интересна логика другого человека
Ну исходя из того что мы тут надумали можно ту же логику и в макрос перенести

Например в Range("J3:O3") посчитать

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim MyRange As Range, rng1 As Range, rng2 As Range

Set MyRange = Range("J3:O3")

Set rng1 = MyRange.Resize(, MyRange.Count -  1 )
Set rng2 = MyRange.Offset(,  1 ).Resize(, MyRange.Count -  1 )
 
Debug.Print ActiveSheet.Evaluate("OR(" & rng1.Address & "+" & rng2.Address & "=0)")
...
Рейтинг: 0 / 0
Проверка на присутствие 2 посторяющихся пропусков (нулей)
    #34651206
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ABCDEF111=Макрос1(A1:E1)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Function Макрос1(a) As Boolean
    On Error Resume Next
    Dim kluch
    Dim result As Boolean

    Dim rng As Range
    For Each rng In a
        If kluch = rng.Value Then
            result = True
            Exit For
        Else
            kluch = rng.Value
        End If
    Next

    Макрос1 = result

End Function
...
Рейтинг: 0 / 0
Проверка на присутствие 2 посторяющихся пропусков (нулей)
    #34651225
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да,
у меня как-то допотно получилось
...
Рейтинг: 0 / 0
Проверка на присутствие 2 посторяющихся пропусков (нулей)
    #34651256
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотел сказать, допотопно
...
Рейтинг: 0 / 0
Проверка на присутствие 2 посторяющихся пропусков (нулей)
    #34651285
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klen_хотел сказать, допотопно

Почему же, обычный цикл, первое что приходит на ум, я именно это имел ввиду когда писал, что макросом знаю как!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проверка на присутствие 2 посторяющихся пропусков (нулей)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]