【问题标题】:Write several strings in one cell在一个单元格中写入多个字符串
【发布时间】:2015-02-15 21:46:43
【问题描述】:

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

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)。所以我正在寻找一种修改,用 both 名称填充新单元格。

谁能帮帮我?

【问题讨论】:

  • 我只是想要一些帮助来实现这一点,因为我在 Internet 上找不到相关的主题。我不知道你想通过这篇文章告诉我什么。
  • 好吧,那个标签是错误的......
  • 这正是我想要的 ;) 谢谢!

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


【解决方案1】:

目前这个公式可能被解读为“If this true do that, else if something different is true do the other”,所以结果只能是那个或另一个。要在同一单元格中同时实现 thatother,只需进行调整以连接两个结果。

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 试图返回的)并不相关,因为这些公式只需要查看字符串中是否存在 anywhere。如果不存在,则会触发错误 (#VALUE!),但会被 IFERROR 陷阱捕获并转换为 0。因此,如果说Column Categories3AF,5CB,9ZZ,5GK,上面最长的公式将返回:

0,马克斯,朱利安

【讨论】:

  • 感谢您提供非常详细的说明!
猜你喜欢
  • 2021-02-17
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
相关资源
最近更新 更多