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, сделайте следующее:
- C2: введите формулу
=IF(OR(NOT(ISERROR(SEARCH(INDIRECT("B2:B"&(COUNTA($B:$B))),$A2)))),"",$A2)
но нажмите CTRL+SHIFT+ENTER вместо обычного ENTER - это определит формулу ARRAY и приведет к{}
скобки вокруг него (но НЕ вводите их вручную!). - Формула автозаполнения в C2 до конца списка в столбце A, например, если последнее значение находится в A100, то автозаполнение до C100 (как долго здесь не имеет значения столбец B).
- Затем вы можете скопировать и вставить полученные результаты в виде значений и отсортировать пустые строки.
Ну вот! Ключ здесь - мы проверяем каждую строку в столбце A на наличие хотя бы одного совпадения среди массива строк в столбце B и возвращаем пустую строку в случае, если найдено хотя бы одно совпадение.
Для вашего удобства образец файла доступен для общего пользования: https://www.dropbox.com/s/janf0xxon4z2yh5/DomainsLookup.xlsx
Может быть, это не самый эффективный способ, но вы можете просто использовать два массива - один для столбца A и один для столбца B. Переберите массив ColumnA, чтобы увидеть, существует ли он в массиве Column B (используйте Array.IndexOf или.contains). Если это так, вы можете удалить его из массива ColumnA и вывести оставшиеся значения в столбце C в качестве остатка.