使用冒号分隔符将 Microsoft Excel 2010 中的一个单元格中的数据拆分为多个

使用冒号分隔符将 Microsoft Excel 2010 中的一个单元格中的数据拆分为多个

我想将冒号后的单词拉回到新列中,因此从下面的示例中,我希望在 B 中放入 Specie、在 C 中放入 jehwejkrhwejkrhwe、在 D 中放入 07/06/2018、在 E 中放入 Kim's Wizard Wand Shop 并在 F 中放入 Q18FSESPE00374。有什么想法吗?

[ 产品 :硬币], [ UMR : jehwejkrhwejkrhwe], [生效日期 : 07/06/2018], [Insd : Kim's Wizard Wand Shop], [PolNo : Q18FSESPE00374]

答案1

=MID(A1,SEARCH(":",A1)+1,LEN(A1)-(SEARCH(":",A1)+1))

我的公式必须应用于每个单元格中的数据。

如果在 Sheet2 上执行此操作并将其指向 Sheet1 上的数据可能会更好。

答案2

可以通过以下两种方式之一来实现。


1 - 使用辅助行和两个简单​​公式:

带有辅助行的公式的屏幕截图

中的公式B2为:

=FIND(CHAR(1),SUBSTITUTE($A$1,":",CHAR(1),COLUMN()-COLUMN($B:$B)+1))

中的公式B3是:

=MID($A$1,B2+1,FIND("]",$A$1,B2)-B2-1)


2——没有辅助行,但有复杂的公式:

无辅助行的公式的屏幕截图

中的公式B2为:

=MID($A$1,FIND(CHAR(1),SUBSTITUTE($A$1,":",CHAR(1),COLUMN()-COLUMN($B:$B)+1))+1,FIND(CHAR(1),SUBSTITUTE($A$1,"]",CHAR(1),COLUMN()-COLUMN($B:$B)+1))-1-FIND(CHAR(1),SUBSTITUTE($A$1,":",CHAR(1),COLUMN()-COLUMN($B:$B)+1)))

上述公式的美化版本如下:

=
MID(
  $A$1,
  FIND(CHAR(1),SUBSTITUTE($A$1,":",CHAR(1),COLUMN()-COLUMN($B:$B)+1))+1,
  FIND(CHAR(1),SUBSTITUTE($A$1,"]",CHAR(1),COLUMN()-COLUMN($B:$B)+1))-1
  -FIND(CHAR(1),SUBSTITUTE($A$1,":",CHAR(1),COLUMN()-COLUMN($B:$B)+1))
)

笔记

  • CHAR(1)之所以使用这个字符,是因为几乎可以肯定该字符不会出现在字符串中。当然,也可以将其更改为您确定不会出现在源字符串中的任何其他字符。

相关内容