Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2011, 14:02   #1
tns-ka
Пользователь
 
Регистрация: 08.12.2009
Сообщений: 24
По умолчанию Присвоение порядкового номера по заданному условию

Здравствуйте!
Задача такая: есть документ, в котором должны заполняться два столбца "Порядковый номер" и "Заказ". Заказы могут быть записаны в двух видах - число со звёздочкой (*) на конце или просто число. Заказам, которые записаны без звёздочки, нужно присвоить в соседнем столбце порядковый номер, причём заранее неизвестно, сколько будет вообще заказов. Трудность в том, что заказы со звёздочками и без них идут вперемешку.

Файл с упрощенным примером прикрепил.
Вложения
Тип файла: zip Счетчик.zip (7.2 Кб, 80 просмотров)
tns-ka вне форума Ответить с цитированием
Старый 06.07.2011, 14:40   #2
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Код:
=ЕСЛИ(ЕЧИСЛО(B2);МАКС($A$1:A1)+1;"")
vikttur вне форума Ответить с цитированием
Старый 06.07.2011, 14:41   #3
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

И макросом:
Код:
Public Sub www()
    Dim i&, c As Range
    For Each c In Range([b2], [b1].End(xlDown))
        If InStr(1, c.Value, "*") = 0 Then
            i = i + 1
            c.Offset(, -1) = i
        End If
    Next
End Sub
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 06.07.2011, 14:41   #4
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Здравствуйте.

Код:
=ЕСЛИ(--ЕНД(ПОИСКПОЗ("*~**";B2;0));СЧЁТ($A$1:A1)+--ЕНД(ПОИСКПОЗ("*~**";B2;0));"")
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 07.07.2011, 11:57   #5
tns-ka
Пользователь
 
Регистрация: 08.12.2009
Сообщений: 24
По умолчанию

Спасибо огромное за помощь!
tns-ka вне форума Ответить с цитированием
Старый 07.07.2011, 12:30   #6
tns-ka
Пользователь
 
Регистрация: 08.12.2009
Сообщений: 24
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
И макросом:
Код:
Public Sub www()
    Dim i&, c As Range
    For Each c In Range([b2], [b1].End(xlDown))
        If InStr(1, c.Value, "*") = 0 Then
            i = i + 1
            c.Offset(, -1) = i
        End If
    Next
End Sub
Если в столбце "Заказ" встречается пустая строка, макрос "спотыкается" и не ставит порядковые номера ниже этой строки Как с этим справиться?
tns-ka вне форума Ответить с цитированием
Старый 07.07.2011, 13:59   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
заменить
[b1].End(xlDown)
на 
Cells(Rows.Count, 2).End(xlUp)
или
Cells(UsedRange.Rows.Count, 2)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.07.2011, 14:05   #8
tns-ka
Пользователь
 
Регистрация: 08.12.2009
Сообщений: 24
По умолчанию

О, теперь работает Спасибо!
tns-ka вне форума Ответить с цитированием
Старый 16.09.2015, 11:49   #9
Mikola55
Новичок
Джуниор
 
Регистрация: 16.09.2015
Сообщений: 1
По умолчанию

Не получается с функцией СЧЕТЗ(). Если в ячейке ссылка, а значение пусто или 0, ее все равно считают. хотя и пропускают написание в соответствующей ячейке.
Mikola55 вне форума Ответить с цитированием
Старый 16.09.2015, 12:55   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

используйте СЧЕТЕСЛИ <>0
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рассчет порядкового номера запроса %$PROregRAMi$t% Microsoft Office Excel 21 18.08.2010 15:41
поиск порядкового номера в pascale счастливая Помощь студентам 1 17.05.2010 19:07
присвоение номера С++ Annabel Помощь студентам 13 15.11.2009 23:44
Паскаль. Перечислимый тип. Определение порядкового номера дня високосного года. katya36 Помощь студентам 9 02.05.2009 13:56
Извлечь в одну ячейку несколько значений из строки которые удовлетворяют заданному условию. Dorvir Microsoft Office Excel 5 08.04.2008 16:12