%20%D1%81%D1%82%D0%BE%D0%BB%D0%B1%D1%86%D0%BE%D0%B2%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0%2C%20%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B5%20%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%82%D1%81%D1%8F%20%D0%BE%D0%B4%D0%B8%D0%BD%D0%B0%D0%BA%D0%BE%D0%B2%D0%BE%2C%20%D0%B7%D0%B0%D0%BA%D0%B0%D0%BD%D1%87%D0%B8%D0%B2%D0%B0%D1%8E%D1%82%D1%81%D1%8F%20%D0%BF%D0%BE-%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D0%BC%D1%83.png)
Нужна помощь по следующему вопросу: A и B — это список компаний. Цель — выделить в B компании, которые соответствуют A
Условное форматирование:=MATCH(LEFT(A2,8)&"*", $B$2:$B$24,0)
Проблема в том, что он сопоставляет неправильные элементы и пропускает другие.
Все компании начинаются с одного и того же текста, но могут заканчиваться по-разному.
Я перепробовал около сотни комбинаций формул и, похоже, не могу взломать. Я близок к разгадке? Заранее спасибо за отзыв!
решение1
Поскольку ваша версия Excel поддерживает динамические массивы, вы можете использовать эту формулу (соответствующим образом скорректировав диапазоны):
=OR(LEFT(B2,LEN(TRANSPOSE($A$2:$A$5)))=TRANSPOSE($A$2:$A$5))
Шаг за шагом вы получаете транспонированный массив столбца A:
Затем берем самые левые N символов значения в столбце B, где N определяется длиной каждого элемента массива:
Теперь сравните каждый элемент массива с другой копией транспонированных значений из столбца A. Если они совпадают, это будет ИСТИНА, в противном случае это будет ЛОЖЬ:
Наконец, заключите все это в оператор OR, чтобы сказать «если есть совпадения, то вернуть TRUE».
Я поместил формулу и результаты в столбец C, чтобы визуализировать результат функции, но вы можете просто использовать полную функцию ИЛИ выше в своем правиле условного форматирования, как это сделал я.
РЕДАКТИРОВАТЬ:
Теперь, когда я перечитал это, я понимаю, что это, конечно, будет работать и без вызовов TRANSPOSE, так что вы можете использовать это с тем же успехом:
=OR(LEFT($B2,LEN($A$2:$A$5))=$A$2:$A$5)
решение2
Вы можете попробовать это:
Список 1 находится в столбце A, список 2 находится в столбце B, с заголовками в 1-й строке.
В C1 дайте заголовок Match
В ячейку C2 введите формулу:
=IFERROR ( FIND (B2, $A$2:$A$51), 0 )
Я предположил, что строк, скажем, 50. Если B2 найден в списке 1, он вернет 1, иначе 0.
Скопируйте C2 вниз по строкам.
Теперь выберите область
B2:C51
. Видите, что B2 выделена.Перейдите в раздел «Условное форматирование» на вкладке «Главная».
Выберите «Опция» —> «Управление правилом».
В текстовое поле, проверяющее условие, введите формулу, указанную ниже в шаге 9.
=$C2=1
и выберите цвет по вашему желанию.Обратите внимание, что компании, найденные в списке 1, выделены.