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

Для пустых значений я сделал вот так:
Для диапазона 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
10.07.2007, 15:40:56
    #34650709
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на присутствие 2 посторяющихся пропусков (нулей)
Есть короче вариант, но формула массива

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

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

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

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

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


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

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

KL
[MVP - Microsoft Excel]

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

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

KL
[MVP - Microsoft Excel]

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

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

Я имею ввиду чтобы без массива, а не о скорости. Цитату твою неудачно взял.
...
Рейтинг: 0 / 0
10.07.2007, 17:36:48
    #34651200
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на присутствие 2 посторяющихся пропусков (нулей)
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
10.07.2007, 17:38:17
    #34651206
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на присутствие 2 посторяющихся пропусков (нулей)
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
10.07.2007, 17:40:56
    #34651225
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на присутствие 2 посторяющихся пропусков (нулей)
да,
у меня как-то допотно получилось
...
Рейтинг: 0 / 0
10.07.2007, 17:48:41
    #34651256
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на присутствие 2 посторяющихся пропусков (нулей)
хотел сказать, допотопно
...
Рейтинг: 0 / 0
10.07.2007, 17:55:08
    #34651285
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на присутствие 2 посторяющихся пропусков (нулей)
klen_хотел сказать, допотопно

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


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