从excel中的字符串中提取值

时间:2016-07-26 16:17:50

标签: excel excel-formula ms-office

我在我的一个excel字段中有这个字符串:

"a:3:{
i:0;
a:1:{s:10:"Adult Name";s:11:"Mohamed";}
i:1;
a:1:{s:10:"Adult Name";s:11:"Mathew";}
i:2;
a:1:{s:10:"Adult Name";s:11:"Paul";
i:3;
a:1:{s:10:"Adult Name";s:11:"John";}
}"

我想将名称提取到分隔字段,如:

   A         B
  1. 成人1 :Mohamed
  2. 成人2 :Mathew
  3. 成人3 :保罗
  4. 成人4 :约翰

1 个答案:

答案 0 :(得分:0)

Example

你的字符串放在F5中。 手动输入A5并向下拖动。由于最后一个字符中有一个数字,excel会在拖动时自动将数字增加1。

我确定了在每个名称之前开始的重复出现的字符序列,并将其称为开始标记。对于一个出现在名字末尾的角色我做了同样的事情。这些值分别放在C3和D3中。

使用以下公式,我在C3中提供了每个开始标记的字符串中的起始位置:

=SEARCH(C$3,$F$5,C4+1)

C4 + 1告诉find从前一个搜索结果的下一个字符开始。因此,C4需要为空白。

使用以下公式,然后使用D3中的结束标记值找到名称的结尾:

=SEARCH(D$3,$F$5,C5+LEN($C$3))

一旦开始和结束位置已知,使用以下公式从F5中的字符串中提取名称:

=MID($F$5,C5+LEN($C$3),D5-C5-LEN($C$3))

这些公式放在第5行并向下复制以匹配“Adult#”

列表