Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 

Сообщение будет показано после одобрения модератором.

Страницы: 1
RSS
В каждой строке таблицы проставить статус задачи, найдя соответствующий идентификатор в другой таблице
 
формула ВПР в помощь
 
Vitali_, рисунки следует вставлять не копированием, а прикреплять файл с рисунком.
 
Добрый день!
Решаю следующую задачу: необходимо в каждой строке таблицы проставить статус задачи, найдя соответствующий идентификатор в другой таблице.

Структура таблиц:
1) Вкладка BOM с таблицей идентификаторов и искомых статусов:
--- идентификатор - латинские "m" и "e" и цифры (m1, m2, e1, e2 и т.д.)
--- идентификаторы идут в случайном порядке и могут повторяться в разных строках
2) Вкладка Sheet1:
- у каждой задачи в тексте есть идентификатор, после идентификатора не всегда стоит " - ", может быть "/" или сразу начинаться текст после цифры
- задачи с идентификаторами могут находиться в первых 2х столбцах, в последнем статус задачи
 
Цитата
Hellmaster написал:
формула ВПР в помощь
ВПРом не получается, т.к. он ищет первое вхождение и не отличает m1 от m10 ну или я не так его задаю.

Есть рабочий вариант =ЕСЛИ(СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК([@Столбец2];Sheet1!A:D)));"Есть";"Нет")
ищет корректно, но он выдает да/нет, а нужно значение из другого столбца.
Изменено: Vitali_ - 14 Окт 2019 19:25:46
 
Если на втором листе идентификаторы повторяются, но статусы разные, что выводить на первом листе?
 
Добрый вечер, доп. столбец:
Код
=ЕСЛИ(ИЛИ(ПСТР(Sheet1!A2:A58;1;1)="e";ПСТР(Sheet1!A2:A58;1;1)="m");ЕСЛИ(ПРАВСИМВ(ЛЕВСИМВ(A2;4);1)=" ";ЛЕВСИМВ(A2;3);ЛЕВСИМВ(A2;2));ЕСЛИ(ПРАВСИМВ(ЛЕВСИМВ(B2;4);1)=" ";ЛЕВСИМВ(B2;3);ЛЕВСИМВ(B2;2)))
Подтянуть попробуйте сами)
 
Цитата
Юрий М написал: Если на втором листе идентификаторы повторяются...?
Всегда у одного идентификатора будет один и тот же статус, даже если он повторяется (мог ошибиться в загруженном примере, но в жизни будет всегда так).
 
для доп столбца с надеждой что максимум 999 в идентификаторе, если больше или меньше, то {1;2;3} заменить по вкусу
=CHOOSE(MIN(IFERROR(SEARCH(LEFT(A2:B2;1);"ME");3));"m";"e";"")&MAX(IFERROR(--MID(IF(ISNUMBER(SEARCH(LEFT(A2:B2;1);"ME"));A2:B2);2;{1;2;3});))
ну а далее левый ВПР
Изменено: БМВ - 14 Окт 2019 20:51:52
По вопросам из тем форума, личку не читаю.
 
Цитата
Настя_Nastya написал:
Подтянуть попробуйте сами)
Спасибо за оперативность, так работает. Но хотелось бы без доп. столбца, т.к. таблица 2 со статусами в скором времени будет формироваться через запрос.
Поэтому в идеале, сделать бы подстановку статуса прямо в первой таблице.
 
Цитата
Vitali_ написал:
Всегда у одного идентификатора будет один и тот же статус
Тогда зачем написали это?
Цитата
Vitali_ написал:
не получается, т.к. он ищет первое вхождение
 
Vitali_,  если формируется через запрос, то править надо не формулу а руки тех, кто вводит данные как попало. С учетом, того что идентификатор то с разделителем, то в первом столбце, то во втором , .....
По вопросам из тем форума, личку не читаю.
 
Бездумная цитата - она всегда БЕЗДУМНАЯ ЦИТАТА [МОДЕРАТОР]

БМВ, идентификатор может быть в нескольких столбцах потому что эта таблица - это посути выгрузка списка задач из crm, задачи могут иметь разный уровень вложенности и поэтому могут попасть в разные столбцы (=подзадача/задача/надзадача). Про разные разделитили согласен, что это руки править нужно,э но это трудное победить.
Через запрос буду формировать выборку тех самых задач со статусами, которые касаются только конкретного проекта.

Цитата
Юрий М написал: Тогда зачем написали это: не получается, т.к. он ищет первое вхождение
Имел ввиду, что если воспользоваться впр по всей таблице,  а не к столбцу с выделенными статусами, то впр ищет не корректно.
 
Макросом можно - устроит?
 
Макросом у меня уже реализовано. Но сейчас таких файлов становится в общей сложности больше 50 и обрабатывать их макросами стало не очень удобно. Проще когда в самом файле запросом формируется выгрузка нужной статистики задач со статусами, и формулой проставляются эти самые статусы. Вот для этого и понадобилась формула.
 
Цитата
БМВ написал:
для доп столбца с надеждой что максимум 999 в идентификаторе, если больше или меньше, то {1;2;3} заменить по вкусу=CHOOSE(MIN(IFERROR(SEARCH(LEFT(A2:B2;1);"ME");3));"m";"e";"")&MAX(IFERROR(--MID(IF(ISNUMBER(SEARCH(LEFT(A2:B2;1);"ME"));A2:B2);2;{1;2;3}))
что-то не работает, выдает нули
 
Цитата
Vitali_ написал:
что-то не работает
а Magic Buttons Ctrl+Shift+Enter???
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
а Magic Buttons Ctrl+Shift+Enter???
Заработало, спасибо! Только обрезает разрядность идентификатора, если он стоит в первом столбце и имеет разрядность больше 1 (например m11), а также обрезает 3х значные m199 до m19 (больше 999 не бывает).
 
Цитата
Vitali_ написал:
Только обрезает разрядность идентификатора
это трудности перевода. {1;2;3} и {1:2:3} Нужен разделитель строк В ENG версии это ; , в русской : кажется,
А столбцов \ и ; соответственно. см файл.
По вопросам из тем форума, личку не читаю.
 
Теперь все работает, большое спасибо за помощь!
Страницы: 1

Сообщение будет показано после одобрения модератором.

Читают тему (гостей: 1)
Наверх