祝洪忠 Excel之家ExcelHome实际工作中,经常会有一些数据需要按照一定的规则进行拆分。以下图为例,A列是一些会计科目,现在需要将这些会计科目按一级科目、二级科目、三级科目这样分开。如BCD列中的样子。 对于数据的拆分,首先需要找出数据的规律。 咱们看A列的数据中,不同的科目之间都是用“/”隔开的。对于这种很有规律的数据源,用分列的方法可以快速的将数据拆分开。 接下来咱们说说具体的步骤: 首先选中A2:A17单元格区域,依次单击【数据】,【分列】。弹出【文本分列向导第1步共3步】对话框,保留默认选项,单击【下一步】按钮。 在弹出的【文本分列向导第2步共3步】对话框中,分割符号复选框中,勾选“其他”,在文本框中输入数据源中的间隔符号“/”,单击【下一步】按钮。 在弹出的【文本分列向导第3步共3步】对话框中,目标区域文本框中输入=$B$2 ,单击【完成】按钮,这样就快速完成了数据的拆分。 有时候咱们的数据源是不断变化的,如果每次都要用分列来完成就显得比较麻烦了。 除了使用基础操作的方法,还可以使用公式的方法来完成数据分列。 仍然以上面这个数据为例,在B2单元格输入以下公式,向右、向下复制: =TRIM(MID(SUBSTITUTE($A2,"/",REPT(" ",99)),COLUMN(A1)*99-98,99)) 完成后的效果如图: 下面咱们简单说说这个公式的意思: 1、REPT函数的作用是按照给定的次数重复显示文本,REPT(" ",99)部分也就是将" "(空格)重复99次。 SUBSTITUTE($A2,"/", REPT(" ",99))的意思是将$A2单元格中的"/"替换成99个空格。 COLUMN(B1)*99-98 COLUMN(C1)*99-98…. 得到的结果是1,100,199…..这样的一个递增序列,作为MID函数的参数。 MID(SUBSTITUTE($A2,"/", REPT("",99)),COLUMN(A1)*99-98,99) 也就是对SUBSTITUTE($A2,"/", REPT("",99))返回的结果分别从第1位、第100位、第199位开始截取,截取的长度为99个字符长度。 |
|
来自: mildwing1969 > 《EXCEL》