Сравните несколько доменов в проверке данных листа Excel - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть две ячейки в Excel.

Ячейка 1 содержит доменные имена (это может быть несколько доменных имен, разделенных точкой с запятой). В ячейку 2 пользователи должны вводить только адрес электронной почты, связанный с доменами в ячейке 1.

enter image description here

В ячейке 1 может быть два, три и т. Д. Домена.

Как я могу добиться этого с помощью проверки данных?

1 Ответ

0 голосов
/ 07 сентября 2018

Предполагается, что пользователи могут ввести только 1 адрес электронной почты в ячейку 2:

Первым шагом будет выделение поставщика электронной почты из адресов электронной почты. Удачные почтовые адреса настраиваются аккуратно, используя @ для отделения имени электронной почты от поставщика электронной почты. Мы хотим найти точное местоположение @, для этого мы можем использовать =Find("@",C2), где C2 - ваша ячейка 2.

В abc@aaa.com результат =Find("@",C2) будет равен 4, так как @ находится в четвертой позиции строки.

Как только мы узнаем, где находится @, мы можем извлечь домен, используя комбинацию Right(), Len() и Trim() следующим образом: Right(Trim(C2),Len(Trim(C2))-Find("@",Trim(C2)) Где функция Trim() используется для удаления любого начальные или конечные пробелы.

В том же примере abc@aaa.com формула имеет следующий вид:

  • -Find("@",Trim(C2) оценивается как -4
  • Len(Trim(C2)) оценивается как 11, поскольку в исходном адресе 11 символов.
  • Len(Trim(C2))-Find("@",Trim(C2), таким образом, оценивается в 11 - 4, что составляет 7
  • Right(Trim(C2),7) примет первые 7 символов из C2 справа налево , в результате чего aaa.com

Чтобы увидеть, присутствует ли aaa.com в C1, мы можем использовать Find() с обработчиком ошибок Iserror(), объединенным в операторе If(): If(Iserror(Find("aaa.com",C1)),0,1) Это вернет 0 в случае отсутствия совпадения, и 1 в случае совпадения.

Чтобы объединить все вместе, мы заменим "aaa.com" в приведенной выше формуле на первую формулу, в результате чего: If(Iserror(Find(Right(Trim(C2),Len(Trim(C2))-Find("@",Trim(C2)),C1)),0,1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...