Excel逻辑函数连接

时间:2015-03-07 07:01:11

标签: excel function search find match

我试图根据单元格的值来连接值,但这需要一个逻辑函数。我已经用FIND,MATCH和SEARCH尝试了它,但它没有输出预期的结果。

我如何让它预期工作?

假设预期结果必须是生成的电子邮件地址,其格式为 firstname @ company.com ,但您的值可能与&#相似34; John Doe"," Sales"," John"等

这是我使用的功能,没有任何成功:

MATCH

功能

=IF(COUNTBLANK([@Name]) = 0; IF(MATCH(" "; [@Name]; -1) = 1; CONCATENATE([@Name]; "@company.com"); CONCATENATE(LEFT( [@Name]; FIND( " "; [@Name] ) - 1 ); "@company.com")); "")

注意:匹配参数已经在-1,0和1中进行了测试。-1提供了最佳结果。

结果

如果查找单元格包含" John Doe",则连接结果类似于 John Doe@company.com ,以及" John"看起来像 John@company.com 。这似乎不起作用。当MATCH的参数变为0或1时,结果为#N / A

查找

功能

=IF(COUNTBLANK([@Name]) = 0; IF(FIND(" "; [@Name]) = 1; CONCATENATE([@Name]; "@company.com"); CONCATENATE(LEFT( [@Name]; FIND( " "; [@Name] ) - 1 ); "@company.com")); "")

结果

如果查找单元格包含" John Doe",则连接结果类似于 John@company.com ,以及" John"看起来像#34; #VALUE!"。这似乎没有效果。

搜索

功能

=IF(COUNTBLANK([@Name]) = 0; IF(SEARCH(" "; [@Name]) <= 1; CONCATENATE([@Name]; "@company.com"); CONCATENATE(LEFT( [@Name]; FIND( " "; [@Name] ) - 1 ); "@company.com")); "")

结果

如果查找单元格包含&#34; John Doe&#34;,则连接结果类似于 John@company.com ,以及&#34; John&#34;看起来像#34; #VALUE!&#34;。这似乎没有效果。

1 个答案:

答案 0 :(得分:0)

可以通过使用FIND函数来解决此问题,但更改逻辑测试以检查查找结果中的错误。

在寻找不存在的值时,FIND函数将生成“#VALUE!”错误。只需将FIND函数嵌套到ISERROR函数中,不需要任何=,&lt;或者&gt;。这是FIND功能的逻辑测试。

=IF(COUNTBLANK([@Name]) = 0; IF(ISERROR(FIND(" "; [@Name])); CONCATENATE([@Name]; "@company.com"); CONCATENATE(LEFT( [@Name]; FIND( " "; [@Name] ) - 1 ); "@company.com")); "")