在一个单元格中写几个字符串

时间:2014-12-17 10:58:18

标签: string excel excel-formula concatenation worksheet-function

我尝试创建一个函数,在单元格中查找多个类别代码,然后在不同的单元格中为每个类别编写相应的类别管理器。最后应该有一组逗号分隔的字符串代表管理者'名。例如::

Column Categories: 3AF,5CB,4DF,5GK 

Manager Names:     Dieter, Max

我的方法:

=IF(IFERROR(SEARCH("4DF";A1);0);"Dieter";IF(IFERROR(SEARCH("5GK";A1);0);"Max";""))

它工作正常(找到两个名字)但它只写了找到的第一个字符串(上面是Dieter)并且没有显示稍后找到的管理员名称(即不是Max) 。因此,我正在寻找一个用两个名称填充新单元格的修改。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

目前公式可能被理解为“如果这样做,否则如果不同的是其他”,那么结果只能是< em>那或其他。要在同一单元格中同时实现 ,只需要进行调整以连接两个结果。

CONCATENATE的最短路径是使用&,但是要抓住机会在结果之间添加逗号和空格,并&", "

=IF(IFERROR(SEARCH("4DF";A1);0),"Dieter")&", "&IF(IFERROR(SEARCH("5GK";A1);0);"Max";"")  

原则可以扩展到包含更多结果,例如,如果列类别为3AF,则经理Julian,如下所示:

=IF(IFERROR(SEARCH("4DF";A1);0);"Dieter")&", "&IF(IFERROR(SEARCH("5GK";A1);0);"Max";"")&"; "&IF(IFERROR(SEARCH("3AF";A1);0);"Julian";"")  

SEARCH 区分大小写,因此将4df视为与4DF相同。但是,SEARCH始终将每个字符(无论是单字节还是双字节)计为1,无论默认语言设置如何,因此对于双字节字符SEARCHB在其他情况下可能是更合适的替代方法。

在上面虽然字符串中字符的位置(这是SEARCH试图返回的内容)是不相关的,因为这些公式只需要查看字符串中是否存在 where 。如果不存在,则会触发错误(#VALUE!),但会被IFERROR陷阱捕获并转换为0。因此,如果说Column Categories已经3AF,5CB,9ZZ,5GK,则上面最长的公式会返回:

  

0,Max,Julian