Страницы: 1 2 След.
RSS
Пронумеровать уникальные значения по условию
 
Помогите, пожалуйста, пытаюсь придумать формулу, чтобы выдала номер первого вхождения элемента столбца B при условии, что число в столбце С - меньше 6.
В столбце B текст может 100500 раз повторяться.
Эксель у меня старый, никаких каунт-юникью-ифс нет(
Нужно пронумеровать каждую фамилию, когда она в первый раз встречается в списке, при условии, что в столбце МИН значение<6

Пример прилагаю, заранее спасибо
Всех с праздником
 
Код
=ЕСЛИ(1=СЧЁТЕСЛИМН(B$2:B2;B2;C$2:C2;"<"&6);1+МАКС(D$1:D1);"")
 
Михаил Л, ого, интересная формула, но не могу понять, что-то с ней не так,
я ее вставила в свои данные и оно порой нумерует повторы, которые еще и не попадают под условие <6...
вот если растянуть список, там вылазят ошибки (((
 
о, нашла, как ее поправить! добавила вначале =ЕСЛИ(C2<6;
получилось:
Код
=ЕСЛИ(C2<6;ЕСЛИ(1=СЧЁТЕСЛИМН(B$2:B2;B2;C$2:C2;"<"&6);1+МАКС(D$1:D1);"");"")

и все заработало! Михаил Л,  огромное спасибо!
 
Цитата
snatg написал:
оно порой нумерует повторы, которые еще и не попадают под условие <6..
Да, не прав я с этой формулой :oops:
Вот еще формула
Код
=ЕСЛИ(ЕНД(ПРОСМОТР(2;1/(B1:B$2=B2)/(C1:C$2<6)))*(C2<6);МАКС(D$1:D1)+1;"")
вернее так
Код
=ЕСЛИ(ЕОШИБКА(ПРОСМОТР(2;1/(B$1:B1=B2)/($C$1:C1<6)))*(C2<6);МАКС(D$1:D1)+1;"")
Изменено: Михаил Л - 02.05.2021 17:49:08 (чтобы первую строку отработало правильно)
 
Михаил Л, ну все уже заработало и с прошлой формулой, так что спасибо, а не подскажете, как в СЧЁТЕСЛИМН использовать условие ИЛИ, если я например хочу не 1 столбец с минимум использовать как условие, а например у меня есть 2 столбца и нужно чтобы в одном из них значение было меньше 6?
 
Цитата
snatg написал:
как в СЧЁТЕСЛИМН использовать условие ИЛИ
Вместо СчетЕслиМн использовать формулу с массивным вводом Счет(Если(...
В примере покажите что хотите получить
 
Ну вот эта же формула
Код
=ЕСЛИ(C2<6;ЕСЛИ(1=СЧЁТЕСЛИМН(B$2:B2;B2;C$2:C2;"<"&6);1+МАКС(D$1:D1);"");"")

только чтобы было не C$2:C2;"<"&6,
а
или C$2:C2;"<"&6
или D$2:D2;"<"&6
 
snatg, не сработает. Получится циклическая ссылка
 
Код
Sub FioNomer()
Dim i As Long
Dim iLastRow As Long
Dim FAdr As String
Dim n As Integer
Dim dic As Object
  Set dic = CreateObject("Scripting.Dictionary"): dic.comparemode = 1
 iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
 Range("D2:D" & iLastRow).ClearContents
     n = 1
     For i = 2 To iLastRow
        If Cells(i, "C") < 6 Then
          If Not dic.Exists(CStr(Cells(i, "B"))) Then
            dic.Add CStr(Cells(i, "B")), 1
            Cells(i, "D") = n
             n = n + 1
          End If
        End If
    Next
End Sub
 
Михаил Л, ок, спасибо

Kuzmich, я в макросах не очень соображаю (((
 
snatg,
Скопируйте макрос в стандартный модуль и запустите
 
Цитата
snatg написал:
ок, спасибо
Вы лучше в примере покажите чтоб не было циклических ссылок
 
Михаил Л, вот пример.

т.е. нужно в формулу СЧЁТЕСЛИМН вставить такое же условие как в ЕСЛИ, чтобы было или или C2<6;D2<6

=ЕСЛИ(ИЛИ(C2<6;D2<6);ЕСЛИ(1=СЧЁТЕСЛИМН(B$2:B2;B2;C$2:C2;"<"&6);1+МАКС(E$1:E1);"");"")
Изменено: snatg - 03.05.2021 14:27:09 (не прикрепился файл)
 
Kuzmich, сработало)
но все равно, я вот не понимаю, зачем нужен макрос, если задачу можно решить формулой?))
может я где туплю, но макрос же нужно будет каждый раз запускать руками, даже если назначить ему сочетание клавиш, нужно не забыть его нажать, а формулу 1 раз прописал и забыл, она сама трудится.
с другой стороны я понимаю, что если бы я умела писать макросы и написала бы макрос, который делает все 10-15 действий которые я каждый раз делаю с этим файлом в 1 макрос - тогда было бы круто)))
 
snatg,
Почему в строке
8 Курников 1 8
появился порядковый номер?
 
Цитата
snatg написал:
;"<"&6
это просто ;"<6"
По вопросам из тем форума, личку не читаю.
 
Цитата
snatg написал:
я вот не понимаю, зачем нужен макрос, если задачу можно решить формулой?
А я не понимаю, зачем формулы, если задачу можно решить макросом? )
Цитата
snatg написал:
формулу 1 раз прописал и забыл
Кто-нибудь удалит нечаянно формулу и всё! ) А макрос будет работать. И ведь можно
Цитата
snatg написал:
но макрос же нужно будет каждый раз запускать руками
Необязательно: можно найти событие, по которому макрос будет запускаться автоматически.
 
Если вы используете условие ИЛИ(C2<6;D2<6),
то почему не нумеруется строка номером 4
9 Григорьев 6 5 4
 
Цитата
snatg написал:
вот пример.
И где он?
 
Цитата
Юрий М написал:
А я не понимаю, зачем формулы,
начинается  :D
Цитата
Юрий М написал:
Кто-нибудь удалит нечаянно формулу и всё! )
а кто-нибудь и файл удалил и совсем все  :D
Цитата
Юрий М написал:
можно найти событие, по которому макрос будет запускаться автоматически.
и запускаться, и запускаться и запускаться,  и запускаться :-)
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
начинается
Миш, я понимаю, что есть фанаты формул, к кторым причисляю и тебя: ты можешь и программно решить (что порой легче), но пытаешься реализовать формулами - тебе это интересно  ))
А я просто реагировал на "не понимаю". И о том, что формулу легче удалить (покалечить), чем макрос.
 
Цитата
БМВ написал:
и запускаться, и запускаться и запускаться,  и запускаться :
А формула всё пересчитывает, пересчитывает и пересчитывает :)
 
off
Цитата
Юрий М написал:
тебе это интересно
, да, это так, но есть еще и внутреннее мнение, что Excel в первую очередь табличный процессор, обросший макросами надстройками .....

Цитата
Юрий М написал:
формула всё пересчитывает, пересчитывает
только тогда когда нужно или тогда, когда потребуют (если не летучие конечно)
По вопросам из тем форума, личку не читаю.
 
В общем, без примера, выкладываю наугад (вдруг сработает).
Формула на основе решения от Михаил Л,
Код
=ЕСЛИ(ЕНД(ПРОСМОТР(2;1/(B$1:B1=B2)/($C$1:C1<6)+($D$1:D1<6)))*((C2<6)+(D2<6))*((C2>0)+(D2>0));СЧЁТ(E$1:E1)+1;"")
Изменено: memo - 03.05.2021 13:53:02 (Поправка)
 
Цитата
БМВ написал:
есть еще и внутреннее мнение, что Excel в первую очередь табличный процессор, обросший макросами
Миш, но мы же понимаем, что все эти формулы (функции) по сути и выполняются при помощи "макросов, которых мы просто не видим" )
===
Извечный спор формулистов и макрушников. Надо остановиться :)
 
Цитата
memo написал:
И где он?
прицепила снова, кажется он отвалился
 
snatg, Проверьте формулу в сообщении #25
 
memo, о, кажется формула работает, супер!
 
Цитата
Юрий М написал:
Кто-нибудь удалит нечаянно формулу и всё! )
мою формулу никто не удалит, я единственный юзер файла
и потерять я ее не могу, т.к. плодю копии файла несколько раз в неделю)))
Страницы: 1 2 След.
Читают тему (гостей: 1)
Наверх