Excel | 名称挤在一个单元格中,分单元格显示的方法

问题情境

数据如下图:

Excel | 名称挤在一个单元格中,分单元格显示的方法

每个地市下边区县都写在该市右侧单元格中,如B2单元格中的区县为A2单元格杭州所辖区县,如何将这些区县名称分开到每个区县各在一个单元格?

公式实现

在C2单元格输入公式:“=TRIM(MID(SUBSTITUTE($B2,"、",REPT(" ",99)),(COLUMN(A1)-1)*99 1,99))”,按Enter键完成计算,即可得杭州市所辖第一个区县“上城区”,将公式向右填充 , 可得杭州所辖其它区县;再将公式向下填充,既得所有地市所辖区县名称 。
这样,就完成了将区县名称由一个单元格分单元格显示 。
Excel | 名称挤在一个单元格中,分单元格显示的方法

公式解析

REPT(" ",99):将一个空字符重复99次 。
SUBSTITUTE($B2,"、",REPT(" ",99)):是指将B2单元格数值中的“、”都替换为99个空字符 。也就是将原来每个区县名称之间的分隔符号“、”替换为以99个空字符分隔 。此处特别注意混合引用$B2,因为公式向右填充时 , 原所有区县名称所在单元格B2不能改变,公式向下填充时,所有区县名称所在单元格所在单元格要变为公式所在行 。
COLUMN(A1):是指A1单元格所在列数,返回值为1 。
MID(SUBSTITUTE($B2,"、",REPT(" ",99)),(COLUMN(A1)-1)*99 1,99):在以99个空字符分隔的所有区县名称组成的字符串中,从第1位开始取99个字符 。当公式在C2单元格时 , 此部分返回值是:从第1位开始取99个字符,即“上城区"和其后96个空字符组成的字符串 。当公式填充到D2单元格时,此部分返回值为”3个空字符与其后的“下城区”以后其后的93个空字符 。
【Excel | 名称挤在一个单元格中,分单元格显示的方法】TRIM(MID(SUBSTITUTE($B2,"、",REPT(" ",99)),(COLUMN(A1)-1)*99 1,99)):用TRIM函数去除MID函数返回值中多余的空字符 。

相关经验推荐