从单个单元格中search并提取子string

在Excel中我有以下情况。 Column A包含基准列表(例如S&P TSX 60 ),而B1列出了每个基准前的百分比复合基准列表:

 5% S&P 500/ 25% S&P 500 Financial/ 50% S&P TSX 60 (ex-Energy)/ 20% CAC 40 

如果组合包含基准,我需要能够提取百分比。 我能够做到大部分,但似乎无法弄清楚数据validation步骤。

如图所示, 标普TSX 60不在复合材料中,但标普TSX 60(ex-Energy)是。 然而,该公式仍然返回标普TSX 60标普TSX 60(不含能源)的百分比。

Excel公式中需要额外的东西来防止这种情况发生?

还是会更容易在VBA做?

这个公式应该适合你:

 =IFERROR(MID($B$1,FIND(A2&"/",$B$1&"/")-4,3),"") 

但是你应该给他一个伟大的想法。

试试这个公式=IFERROR(LEFT(MID($B$1,SEARCH(A2&"/",$B$1,1)-4,LEN(A2)),3),"-")

在这里输入图像说明