怎么在excel的一个单元格里提取想要的部分字符在另外一列单元格显示?

需要提取从右到左开始算起,所在的第一个“部“字的“->”符号中间的内容,可能看到下面举例会比较容易理解。我想要得到B列的公式。
例如:
A B
A总部->a部->1科 a部

B总部->甲分部->b部->3科 b部
B总部->甲分部->f部->4科 f部
B总部->乙分部->d部->2科 d部
A总部->a部->5科 a部
B总部->甲分部->f部->8科->X室 f部

在B1单元格输入以下数组公式,按Ctrl+Shift+Enter组合键结束,然后向下填充公式

=TRIM(RIGHT(SUBSTITUTE(LEFT(A1,MATCH(,0/(MID(A1,ROW($1:$99),1)="部"))),">",REPT(" ",99)),9))

公式表示:通过MATCH(,0/(MID(A1,ROW($1:$99),1)="部"))找到“部”所在的位置,并以此位置截取左边的字符串,然后将其中的>替换为99个空格,替换完成后,取基右边的9个字符串,并将多余的空格通过TRIM去除。

 

详见附图

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-01
B1数组公式:
=MID(A1,MATCH(,0/(MID(A1,ROW($1:$99),1)="部"))-1,2)
按CTRL+SHIFT+回车键结束,下拉。追问

您好,这个f部不一定单单两个字的,可能f部等于采购部,也可能等于市场规划部,可以优化一下吗?

追答

数组公式:
=TRIM(RIGHT(SUBSTITUTE(LEFT(A1,MATCH(,0/(MID(A1,ROW($1:$99),1)="部"))),">",REPT(" ",99)),9))
按CTRL+SHIFT+回车键结束,下拉。

本回答被提问者和网友采纳
第2个回答  2015-10-21
根据你的单元格实际情况使用MID,RIGHT,LEFT
第3个回答  2013-11-01
源数据毫无规律可循,如何用函数,函数要解决的是规律的数据批量化操作的问题,建议你把前面的数据用空值补齐,这样才能用提取函数来解决问题.
不然就是有人能解决,恐怕你也看不懂,并且也不会做,并且学不到任何东西.
第4个回答  2013-11-01
如果严格符合你所说的规律,可以用vba来做
相似回答