我在Excel中有两个单元格。
单元格1包含域名(可以是多个域名,中间用分号分隔)。在单元格2中,用户只应输入与单元格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 - 4
从7
的前7个字符开始,从右向左,结果为Right(Trim(C2),7)
要查看C1中是否存在C2
,我们可以将aaa.com
与错误处理程序aaa.com
结合使用,并结合在Find()
语句中:Iserror()
If()
(如果没有匹配项)和{{11}}(如果没有匹配项)。
要将所有内容组合在一起,我们将上面公式中的If(Iserror(Find("aaa.com",C1)),0,1)
替换为第一个公式,结果是:0