首页 > 解决方案 > 使用 ';' 从文本字符串创建单个单元格列表 分号分隔符

问题描述

我想从存储的另一个单元格中的单个单元格中构建一个列表。字符串有一个分号分隔符';' 分隔字符串 SMTP、smtp、X400、FAX。不幸的是,字符串的 x400 部分也有需要保留的分号。它的分隔符是第二个分号';;'。

我需要一些帮助来扩展昨天的答案,它提供了我需要的输出示例 - https://stackoverflow.com/a/69948563/14638694;和图片一样。 在此处输入图像描述

输入单元格 输出单元
SMTP:userS1@thetest.com;X400:C=GB;A= ;P=TEST;O=Exchange;S=S1;G=user;I=P;;smtp:user1@test.local;FAX:User P . S1[userS1]@test.local 来自输入单元格的列表
X400:C=GB;A=;P=TEST;O=Exchange;S=41;G=user; X400:C=GB;A= ;P=TEST;O=Exchange;S=41;G=user\
SMTP:user2@thetest.com;X400:C=GB;A=;P=TEST;O=Exchange;S=2;G=user;;smtp:user2@test.local;FAX:user 2[user2]@测试本地 来自输入单元格的列表
X400:C=GB;A=;P=TEST;O=Exchange;S=17;G=user;;FAX:user 17[user17]@test.local 来自输入单元格的列表
SMTP:user3@thetest.com;X400:C=GB;A=;P=TEST;O=Exchange;S=3;G=user;;smtp:user3@test.local;FAX:user 3[user3]@测试本地 来自输入单元格的列表
X400:C=GB;A= ;P=TEST;O=Exchange;S=4;G=user;;smtp:user4@test.local 来自输入单元格的列表
FAX:user 6[user6]@test.local;X400:C=GB;A= ;P=TEST;O=Exchange;S=6;G=user; 来自输入单元格的列表
smtp:user5@test.local 来自输入单元格的列表

标签: excelexcel-formula

解决方案


一种解决方案是使用嵌套的 SUBSTITUTE 函数:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,";SMTP",CHAR(10)&"SMTP"),";smtp",CHAR(10)&"smtp"),";X400",CHAR(10)&"X400"),";FAX",CHAR(10)&"FAX")

笔记:

  1. 以上将与 A1 处的输入单元格一样
  2. 它用换行符替换任何出现在任何已定义协议 ID 之前的分号分隔符 [即 Char(10)]
  3. SUBSTITUTE 区分大小写(因此需要 SMTP 和 smtp)
    • 如果还有其他情况(例如 X400 和 x400),您需要嵌套在另一个 SUBSTITUTE 中以满足这些情况
  4. 如果(如示例所示)SMTP 将首先出现或根本不出现,您可以删除该协议 ID 的替换

推荐阅读