Страницы: 1
RSS
Результат "Да/Нет" по нескольким условиям из диапазона
 
Добрый день Уважаемые форумчане.
поставили задачку с которой не могу справиться, нужно по нескольким критериям вывести два значения YES и NO.
в колонке А будут выводиться VLOUKUP-ом значения, в колонке В - нужно эти значения сравнить с колонкой С и вывести значения:
YES
- если значение в ячейке А2 начинается на первые четыре цифры значения из любой ячейки колонки С (например 0602)
NO
- если значение в ячейке А2  не начинается на первые четыре цифры из любой ячейки значения в колонке С
- если значение в ячейке А2 начинается на первые четыре цифры значения в колонке С, но есть также значение с приставкой ex. (например ex. 0602 10 10) тогда нужно чтоб сверило все цифры и если они совпали выводить NO.

изменил пример, и немного описание задачи.
 
Здравствуйте, sabotazh,

В Вашем примере нарушена описанная Вами логика:
Во-первых, судя по Вашим словам "YES" бывает только при совпадении первых 4 символов двух столбцов - в обоих случаях в Вашем примере это не так
Во-вторых, Вы пишете, что "NO" может быть либо при несовпадении первых 4 символов двух столбцов (как в первой строке примера), либо при наличии в ячейке столбца С служебной метки "ex. " и полном совпадении оставшихся в ячейке символов со всеми символами в ячейке столбца А (последнее условие не выполняется для третьей строки примера)
В-третьих, Вами не описаны желаемые результаты, которые следует возвращать в остальных случаях: при наличии служебной метки и неполном соответствии данных в разных столбцах (в примере Вы показываете разные желаемые значения).

На всякий случай, я предлагаю Вам разобраться с функциями ПСТР(), которая поможет Вам извлекать заданное число символов из известной строки для последующего сравнения; ПОДСТАВИТЬ(строка;"ex. ";""), которая вернет строку без служебной метки; и ЕОШИБКА(ПОИСК("ex. ";строка)), которая будет возвращать ИСТИНА или ЛОЖЬ в зависимости от отсутствия или наличия служебной метки в строке.

Удачи!
 
Добрый День.
Спасибо Большое за потраченое Вами время, Вы правы. в примере исчезли нули спереди значений в колонке А.
через минуту - изменю пример и отредактирую.

по Второй части - спасибо за совет, я не закончил искать путь решения, просто предположил что сдесь он может буде быстрее.

Спасибо.
 
По первому условию Вам поможет формула вида
Код
=ЕСЛИ(СЧЁТЕСЛИ($C$2:$C$15;ПСТР($A2;1;4)&"*")>0;"YES";"NO")
которая подсчитывает количество совпадений ячеек в заданном диапазоне с указанной маской
А вот по поводу второго условия у меня остались вопросы: Строка из ячейки A5 отличается от помеченной "ex. " строки C4 как минимум на пару нулей - это не важно?
Для проверки по второму условию Вы можете использовать ту же формулу, но с измененным условием
Код
СЧЁТЕСЛИ($C$2:$C$15;"ex. "&$A2)>0
вот только необходимо определиться с приоритетами проверок - что осуществлять раньше первое условие или второе
 
Цитата
IKor написал: Строка из ячейки A5 отличается от помеченной "ex. " строки C4 как минимум на пару нулей - это не важно?
Только что в телефонном режиме уточнил, пробелы я уберу и в данном случае главное если сопадут первые числа которые есть после "ex. " - окончание не важно.
Пример:
Значение в А5 - 0602101000
в списке оно будет -  ex. 06021010 - Вывести NO - так как это исключение из правила.
если значение А5 -  060210101234567 - также Вывести NO - так как все числа после ex. совпали с первыми числами в этом номере.

а если значение А5 - 0602123456 - тогда вывести YES - так как начало совпало с теми кодами что есть в списке без ex.
 
Цитата
sabotazh написал:
в данном случае главное если совпадут первые числа которые есть после "ex. " - окончание не важно.
Определитесь с количеством первых цифр/символов - и используйте формулу вида
Код
СЧЁТЕСЛИ($C$2:$C$15;"ex. "&ЛЕВСИМВ($A2;количество_символов)&"*")>0
Вы уже определились с приоритетом проверок?
 
Цитата
IKor написал:
Вы уже определились с приоритетом проверок?
Доброго времени суток.
Думаю что сначала нужно чтоб проверяло есть ли номер в исключениях (с приставко ex. и началом кода ), если нет то проверять начинается код на первые четыре цифры в списке в столбце С., наверное этого должно хватить.

Цитата
IKor написал:
Определитесь с количеством первых цифр/символов
количество символов которые должны совпасть от 6-ти до 8-ми. например есть такие варианты:
ex. 38247100
ex. 381190
 
Изменено: sabotazh - 14.01.2021 10:08:49
 
sabotazh,
У Вас в руках есть все необходимые формулы. Оберните их функциями ЕСЛИ() и всё получится!
Код
=ЕСЛИ(СЧЁТЕСЛИ($C$2:$C$15;"ex. "&ЛЕВСИМВ($A2;8)&"*")>0;"NO-8";
   ЕСЛИ(СЧЁТЕСЛИ($C$2:$C$15;"ex. "&ЛЕВСИМВ($A2;6)&"*")>0;"NO-6";
     ЕСЛИ(СЧЁТЕСЛИ($C$2:$C$15;ЛЕВСИМВ($A2;4)&"*")>0;"YES";"NO-4")))
хотя похоже, что проверка на 8 символов лишняя
 
Цитата
IKor написал:
У Вас в руках есть все необходимые формулы. Оберните их функциями ЕСЛИ() и всё получится!
Огромное Вам спасибо за Ваше время и знания.
Очень выручили!
 
Цитата
IKor написал:
ЕСЛИ(СЧЁТЕСЛИ($C$2:$C$15;ЛЕВСИМВ($A2;4)&"*")>0;"YES";"NO-4")))
Подскажите пожалуста что в этой формуле делает  - &"*" - тоесть какая его функция?
Я не смог нагуглить...
Изменено: sabotazh - 14.01.2021 17:37:01
 
ЛЕВСИМВ($A2;4)_и_любое_количество_любых_символов
 
Цитата
vikttur написал:
и_любое_количество_любых_символов
спасибо большое!
Страницы: 1
Наверх