Excel: печать значений из столбца A не найдена в столбце B столбца C

Я пытался найти это решение в Интернете, но не смог добиться успеха для этой конкретной проблемы. В Excel 2010 у меня есть некоторые данные в столбце A, где каждое значение может частично содержать данные в столбце B.

EX:
Столбец А может содержать "http://google.com/webmasters"
Столбец B может содержать "google.com"
Это должно дать мне совпадение.

Я хочу напечатать в столбце C все значения в столбце A, которые не содержат значений из столбца B.

EX:
Столбец А

http://dir.mydomain.tdl
http://myotherdomain.tdl
http://blog.otherdomain.tdl
http://www.lastdomain.tdl

Колонка Б

mydomain.tdl
lastdomain.tdl

Столбец C (требуются результаты)

http://myotherdomain.tdl
http://blog.otherdomain.tdl

Любая помощь будет принята с благодарностью.

2 ответа

Решение

Я думаю, что у меня есть решение с использованием формулы ARRAY. Предполагая, что ваш вход И что столбцы AC имеют заголовки или просто строки перечислены в начальных ячейках A2 и B2, сделайте следующее:

  1. C2: введите формулу =IF(OR(NOT(ISERROR(SEARCH(INDIRECT("B2:B"&(COUNTA($B:$B))),$A2)))),"",$A2) но нажмите CTRL+SHIFT+ENTER вместо обычного ENTER - это определит формулу ARRAY и приведет к {} скобки вокруг него (но НЕ вводите их вручную!).
  2. Формула автозаполнения в C2 до конца списка в столбце A, например, если последнее значение находится в A100, то автозаполнение до C100 (как долго здесь не имеет значения столбец B).
  3. Затем вы можете скопировать и вставить полученные результаты в виде значений и отсортировать пустые строки.

Ну вот! Ключ здесь - мы проверяем каждую строку в столбце A на наличие хотя бы одного совпадения среди массива строк в столбце B и возвращаем пустую строку в случае, если найдено хотя бы одно совпадение.

Для вашего удобства образец файла доступен для общего пользования: https://www.dropbox.com/s/janf0xxon4z2yh5/DomainsLookup.xlsx

Может быть, это не самый эффективный способ, но вы можете просто использовать два массива - один для столбца A и один для столбца B. Переберите массив ColumnA, чтобы увидеть, существует ли он в массиве Column B (используйте Array.IndexOf или.contains). Если это так, вы можете удалить его из массива ColumnA и вывести оставшиеся значения в столбце C в качестве остатка.

Другие вопросы по тегам