比较Excel工作表数据验证中的多个域

时间:2018-09-07 08:52:55

标签: excel excel-formula

我在Excel中有两个单元格。

单元格1包含域名(可以是多个域名,中间用分号分隔)。在单元格2中,用户只应输入与单元格1中的域关联的电子邮件地址。

enter image description here

在单元格1中,可能有两个,三个等域。

如何使用数据验证来实现这一目标?

1 个答案:

答案 0 :(得分:0)

假设用户只能在Cell2中输入1个电子邮件地址:

第一步是从emailadres中分离出电子邮件提供者。幸运的是,电子邮件地址使用fourtyTwo进行了整洁的配置,以使用电子邮件名称与电子邮件提供者分开。我们想要找到@的确切位置,为此我们可以使用@,其中C2是您的单元格2。

=Find("@",C2)中,abc@aaa.com的结果为4,因为=Find("@",C2)位于字符串的第四位置。

一旦我们知道@的位置,就可以使用@Right()Len()的组合来提取域,如下所示:Trim() Right(Trim(C2),Len(Trim(C2))-Find("@",Trim(C2))函数用于删除任何前导或尾随空格。

Trim()的同一示例中,公式的计算结果如下:

  • abc@aaa.com的值为-Find("@",Trim(C2)
  • -4评估为11,因为原始广告中有11个字符。
  • Len(Trim(C2))的计算结果为Len(Trim(C2))-Find("@",Trim(C2)的{​​{1}}
  • 11 - 47的前7个字符开始,从右向左,结果为Right(Trim(C2),7)

要查看C1中是否存在C2,我们可以将aaa.com与错误处理程序aaa.com结合使用,并结合在Find()语句中:Iserror() If()(如果没有匹配项)和{{11}}(如果没有匹配项)。

要将所有内容组合在一起,我们将上面公式中的If(Iserror(Find("aaa.com",C1)),0,1)替换为第一个公式,结果是:0