【问题标题】:Excel Logical Function to Concatinate用于连接的 Excel 逻辑函数
【发布时间】:2015-03-07 15:09:16
【问题描述】:

我正在尝试根据单元格的值连接值,但是,这需要一个逻辑函数。我用 FIND、MATCH 和 SEARCH 都试过了,但它没有输出预期的结果。

如何让它按预期工作?

假设预期的结果必须是电子邮件地址生成,其形式为 firstname@company.com,但您可能具有类似于“John Doe”、“Sales”、“John”等

这是我用过的功能,没有成功:

比赛

功能

=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”类似于“#VALUE!”。这似乎不起作用。

搜索

功能

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

结果

如果查找单元格包含“John Doe”,则串联结果类似于 John@company.com,而“John”类似于“#VALUE!”。这似乎不起作用。

【问题讨论】:

    标签: excel function search find match


    【解决方案1】:

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

    当您查找不存在的值时,FIND 函数将生成“#VALUE!”错误。只需将 FIND 函数嵌套到没有任何 =、 的 ISERROR 函数中。这是 FIND 函数的逻辑测试。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多