zoukankan      html  css  js  c++  java
  • Excel-根据分隔符将一个单元格的内容分发到多个单元格

    A1

    1;2;3;4;5;6;7;;;;10

    现在想将A1根据";"进行分离,再讲分离出来的一个值填到一个单元格中

    =TRIM(MID(SUBSTITUTE($A$12,";",REPT(" ",99)),(ROW(A1)-1)*99+1,99))

    次值为1

    =TRIM(MID(SUBSTITUTE($A$12,";",REPT(" ",99)),(ROW(A1)-1+1)*99+1,99))

    次值为2

    =TRIM(MID(SUBSTITUTE($A$12,";",REPT(" ",99)),(ROW(A1)-1+2)*99+1,99))

    次值为3

    TRIM=去掉空格

    MID=从一个文本字符串的指定位置开始,截取指定数目的字符。MID(A1,4,3),表示从A1单元格中的第4个字符开始提取,提取字符为3个

    SUBSTITUTE=如果需要在一个文字串中替换指定的文本,可以使用函数SUBSTITUTE.

    REPT函数可以按照定义的次数重复显示文本,相当于复制文本

    ROW=返回所选择的某一个单元格的行数。

        

    实例
    如果A1=学习的革命、A2=电脑
    则公式=SUBSTITUTE(A1,"的革命",A2,1)
    返回“学习电脑”

    REPT("*-", 3) // 字符串显示 3 次 *-*-*-
    =REPT("-",10) //短划线显示 10 次 ----------

    ------------------------------------------------------------------------------------------------------------------

    发现使用过程中上面的公式有时不准确,下面另外一种方法

    G6:

    0.1;2.56;一生一世;D;E;F;G;H

    0.1=

    =MID(G6,1,FIND("@",SUBSTITUTE(G6,";","@",1))-1)

    2.56=

     =MID(G6,FIND("@",SUBSTITUTE(G6,";","@",1))+1,FIND("@",SUBSTITUTE(G6,";","@",2))-FIND("@",SUBSTITUTE(G6,";","@",1))-1)

    一生一世=

    =MID(G6,FIND("@",SUBSTITUTE(G6,";","@",2))+1,FIND("@",SUBSTITUTE(G6,";","@",3))-FIND("@",SUBSTITUTE(G6,";","@",2))-1)

    原理:

    由于find只能获取该字符串出现的第一个位置

    0.1@2.56;一生一世;D;E;F;G;H    找到第一个;位置

    0.1;2.56@一生一世;D;E;F;G;H    找到第二个;位置

    Mid() 中间的数据数据就出来了

  • 相关阅读:
    从零开始学VUE之组件化开发(组件数据的存放)
    从零开始学VUE之组件化开发(组件分离写法)
    从零开始学VUE之组件化开发(语法糖优化组件注册)
    进程与线程的一个简单解释
    Crontab爬虫定时执行
    接口分类复习
    最长公共子串
    最长公共子序列(力扣第1143题)
    Reduce端分组排序源码分析
    Job提交流程源码和切片源码详解
  • 原文地址:https://www.cnblogs.com/swobble/p/9244480.html
Copyright © 2011-2022 走看看