在一个单元中写入几个string
我试图创build一个函数,在一个单元格中查找几个类别代码,然后在不同的单元格中为每个类别编写适当的类别pipe理器。 最后应该有一个由逗号分隔的string组成的集合,代表pipe理者的名字。 例如: :
Column Categories: 3AF,5CB,4DF,5GK Manager Names: Dieter, Max
我的方法是:
=IF(IFERROR(SEARCH("4DF";A1);0);"Dieter";IF(IFERROR(SEARCH("5GK";A1);0);"Max";""))
它工作正常(find两个名字),但它只写入find的第一个string(上面的Dieter
),并不显示稍后发现的经理名称(即不是Max
)。 所以我正在寻找一个修改,使用两个名称填充新的单元格。
谁能帮我吗?
目前的公式可能会被解读为“如果真的这样做了 ,否则如果不同的事情是真的做另一个 ”,所以结果只能是这个或另一个 。 要在同一个单元格中实现这个和另一个 ,只需要调整来连接两个结果。
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,而不pipe双字节字符的默认语言设置如何,在其他情况下, SEARCHB可能是更合适的select。
在上面虽然在string中的字符的位置(这是SEARCH想要返回的)是不相关的,因为这些公式发生只需要看看是否存在于string中的任何地方 。 如果不存在,则会触发一个错误( #VALUE! ),但是被IFERROR陷阱捕获并转换为0
。 因此,如果说Column Categories
是3AF,5CB,9ZZ,5GK
则上面最长的公式将返回:
0,马克斯,朱利安