精华内容
下载资源
问答
  • Excel输入数据过程中,经常出现单元格中输入这样的字符串:GH0012JI、ACVB908、华升12-58JK、五香12.56元、0001#、010258等。进行数据处理时,又需要把其中的数字0012、908、12-58、12.56、0001提取出来。 ...

    Excel输入数据过程中,经常出现在单元格中输入这样的字符串:GH0012JI、ACVB908、华升12-58JK、五香12.56元、0001#、010258等。在进行数据处理时,又需要把其中的数字0012、908、12-58、12.56、0001提取出来。

    如何通过使用Excel的工作表函数,提取出字符串中的数字?

    一、问题分析

    对于已经输入单元格中的字符串,每一个字符在字符串中都有自己固定的位置,这个固定位置都可以用序列数(1、2、3、……)来表示,用这些序列数可以构成一个可用的常数数组

    以字符串“五香12.56元”为例:序列数1、2、3、4、5、6、7、8分别对应着字符串“五香12.56元”中字符“五”、“香”、“1”、“2”、“.”、“5”、“6”、“元”。由序列数组成一个保存在内存中的新数组{1;2;3;4;5;6;7;8}(用列的形式保存),对应字符串中的字符构成的数组{“五”;“香”;“1”;“2”;“.”;“5”;“6”;“元”}。因此解决问题可以从数组着手思考。

    二、思路框架

    问题的关键是,如何用序列数重点描述出字符串中的数字部分的起始位置和终止位置,从而用MID函数从指定位置开始提取出指定个数的字符(数字)。

    不难看出,两个保存在内存中的新数组:

    {“五”;“香”;“1”;“2”;“.”;“5”;“6”;“元”}

    {1;2;3;4;5;6;7;8}

    数组具有相同大小的数据范围,而后一个数组中的每一个数值可以准确地描述出字符串中字符位置。

    字符与序列数的对应关系如下表所示:

    字符     字符位置

    五  ——    1

    香  ——    2

    1   ——    3

    2   ——    4

    .   ——    5

    5   ——    6

    6   ——    7

    元  ——    8

    所以解决问题的基本框架是:

    用MID函数从字符串的第一个数字位置起提取到最后一个数字止的字符个数。即{=MID(字符串,第一个数字位置,最后一个字符位置-第一个字符位置+1}。其中“+1”是补上最后一个数字位置减去第一个数字位置而减少的一个数字位。

    三、解决方案及步骤

    假定字符串输入在A2单元格。

    ⑴确定A2中字符串的长度。

    即用LEN函数计算出A2中字符串中字符的个数,这个字符个数值就是字符串中最后一个字符在字符串中的位置:LEN(A2)。

    ⑵确认字符串中的每一个字符位置序列数组成的新数组。

    用INDIRECT函数返回一个由文本字符串指定的引用:

    =INDIRECT("1:"&LEN($A2))

    用返回行数的函数ROW确定文本引用INDIRECT("1:"&LEN($A2))构成的新数组:{=ROW(INDIRECT("1:"&LEN($A2)))}

    ⑶用按指定位置开始返回指定个数字符的函数MID返回由新数组{=ROW(INDIRECT("1:"&LEN($A2)))}确定位置的每一个字符,并将文本转化成数值型数据:

    {=--MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)}

    注意:

    函数MID返回的字符是文本,将文本转化为数值型数据,可以用函数VALUE,也可以同等功能地用符号“- -”或“+0”或“-0”简化表达,这里用“- -”表示。

    ⑷函数ISNUMBER判别MID函数提取出来的字符是不是数字,是数字返回TRUE,不是数字返回FALSE。

    具体公式是:

    {=ISNUMBER(--MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1))}

    逻辑函数IF根据用函数ISNUMBER检测MID函数提取出来的字符是否数值的真假,返回数字字符在字符串中的位置,如果不是数字则返回空白字符。

    具体公式是:

    {=IF(ISNUMBER(--MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)),ROW(INDIRECT("1:"&LEN($A2))),"")}

    ⑹用MIN函数返回数字位置数组成数组中的最小数。

    具体公式是:

    {=MIN(IF(ISNUMBER(--MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)),ROW(INDIRECT("1:"&LEN($A2))),""))}

    ⑺用MAX函数返回数字位置数组中的最大数。

    具体公式是:

    {=MAX(IF(ISNUMBER(--MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)),ROW(INDIRECT("1:"&LEN($A2))),""))}

    ⑻确认字符串中第一个数字的起始位置:

    {=MIN(IF(ISNUMBER(--MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)),ROW(INDIRECT("1:"&LEN($A2))),""))}

    ⑼确认字符串中第一个数字与最后一个数字之间的字符个数:

    {=MAX(IF(ISNUMBER(--MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)),ROW(INDIRECT("1:"&LEN($A2))),""))- MIN(IF(ISNUMBER(--MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)),ROW(INDIRECT("1:"&LEN($A2))),""))+1}

    注意:

    公式中的“+1”,是对字符串中最后一个数字位数减去第一个数字位数,造成第一个数字与最后一个数字之间的字符个数少1的补充。

    ⑽用函数MID在A1中按指定位置开始提取指定个数的字符(数字)。

    综上所述,第⑻步的公式为MID函数的第2个参数,第⑼步的公式为MID函数的第3个参数。组合后提取A1中数字的具体公式如下。

    在B2单元格编辑公式:

    =MID($A2,MIN(IF(ISNUMBER(--MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)),ROW(INDIRECT("1:"&LEN($A2))),"")),MAX(IF(ISNUMBER(--MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)),ROW(INDIRECT("1:"&LEN($A2))),""))-MIN(IF(ISNUMBER(--MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)),ROW(INDIRECT("1:"&LEN($A2))),""))+1)

    用三键确认公式输入,即用组合键Ctrl+Shift+Enter进行公式确认。

    本公式不适用的文本字符串类型:形如WE1234GH098PIU等。

    四、适当简化公式

    基于文本数字转化为数值型数字表达方式——用函数VALUE、符号“--”和“+0”或“-0”效果完全一致,所以具体的提取文本中数字的公式可以适当简化为:

    {=MID($A2,MIN(IF(ISNUMBER(MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)+0),ROW(INDIRECT("1:"&LEN($A2))))),MAX(IF(ISNUMBER(MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)+0),ROW(INDIRECT("1:"&LEN($A2)))))-MIN(IF(ISNUMBER(MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)+0),ROW(INDIRECT("1:"&LEN($A2)))))+1)}

    五、编后语

    特别指出,对于提取文本中的数字,本公式不是最简方法,同时也不一定是最佳方案。

    通过对字符串中数字的提取操作,试图用Excel的工作表函数直接来完成原始的数字提取工作,因此编辑的公式冗长;庖丁解牛的解决方案试图说明对文本中数字提取的想法和函数、数组原始的理解及使用,从而描述清楚整个公式构成框架。


    展开全文
  • 注:在Excel中使用公式,都需要首先输入"=",否则将被认为是普通文本,输入的公式将不起作用 如下图,输入公式“=A3&B3”,按【ENTER】键,即可将A3和B3单元格内的文本字符连接在一起。效果图如下: 连接...

    背景

    我们常常会遇到这种情况,需要将两列的值合到一起,比如我下面的例子:

    excel中第一列是十位的数字,第二列是个位的数字,那我们想要得到一个完整的数,即得到12,该如何做?

    解决

    使用文本连接运算符 &

    注:在Excel中使用公式,都需要首先输入"=",否则将被认为是普通文本,输入的公式将不起作用

    如下图,输入公式“=A3&B3”,按【ENTER】键,即可将A3和B3单元格内的文本字符,串连接在一起。效果图如下:

    连接普通的文字

    实际应用中,我们希望得到的是两列中连接一些解释的文字,比如该例子中,想得到“十位:?,个位:?”的展示文本,这时依然用上面的&符号,再将想要写入的文字用双引号括起来即可

    公式:="十位:"&A2&",个位:"&B2

    利用&符号编写json数据

    在前后端合作时,后端都需要编写接口文档,以及配套的json响应数据。常见的json数据如下:

    {
      "status":0,
      "data": {
        "id": "1",
        "name":"1",
        "age":"1",
        "hobby":"1"
      },
      "msg":"success"
    }
    

    现实中,可能会有一些工具来帮助我们生成这些json数据,但是有些时候,我们在设计阶段时,只有设计好的表字段,并没有代码什么的,可能就需要手动写了,我们发现其实data的实体中的字段其实有种机械的味道,一直在ctrl C ctrl V,这时候,借助excel中的&连接符能得到json数据,又能达到偷懒的效果

    公式:=""""&A11&""":"""&B11&""","

    注:因为双引号括起来的是我们输入的文字,那输入的文字中想显示单引号,单引号需要输入双引号,以此类推

     

    展开全文
  • 其中MID函数作用为从指定的字符串中截取出指定数量字符,例如公式中的“MID(B3,7,4)”,第一个参数表示B3单元格中的身份证号,7表示从第7位开始计算,4表示从第7位开始共截取几位数字,其中公式中的“&...

    在对应的单元格中我们输入公式:

    =MID(B3,7,4)&"年"&MID(B3,11,2)&"月"&MID(B3,13,2)&"日"

    其中MID函数作用为从指定的字符串中截取出指定数量字符,例如公式中的“MID(B3,7,4)”,第一个参数表示B3单元格中的身份证号,7表示从第7位开始计算,4表示从第7位开始共截取几位数字,其中公式中的“&”表示拼接字符串。

     

    转载于:https://www.cnblogs.com/baixu/p/10381685.html

    展开全文
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    如何在EXCEL中快速定位最后一行数据 用SUN函数快速求和 在Excel中快速查看所有工作表公式 在Excel中设置行间距 怎样同时改变多行行高 快速换行 让文本换行 在Excel中行列快速转换 将原有列中的内容倒置过来 快速回到...
  • 如何在EXCEL中快速定位最后一行数据 用SUN函数快速求和 在Excel中快速查看所有工作表公式 在Excel中设置行间距 怎样同时改变多行行高 快速换行 让文本换行 在Excel中行列快速转换 将原有列中的内容倒置过来 快速回到...
  • 1.在excel如何输入公式  在excel表格中输入 & 符号是字符串的连接符,比如:  在excel表格中输入 ="sherlock"&"mina" 回车键后生成 sherlockmina 1.常用函数row(),text()  row()函数用来获取行号...

    1.在excel中如何输入公式

      在excel表格中输入 & 符号是字符串的连接符,比如:

      在excel表格中输入  ="sherlock"&"mina"  回车键后生成 sherlockmina

     

    1.常用函数row(),text()

      row()函数用来获取行号,text()函数用来格式化数字,比如:

      ="private JLabel  label_"&ROW()&";" 

         =text(100,"0000")  回车键后生成  0100

      

     

    转载于:https://www.cnblogs.com/shlerlock/p/6381077.html

    展开全文
  • 20、提取字符串中的特定字符 37 21、把基数词转换成序数词 37 22、用特殊符号补齐位数 38 23、创建文本直方图 38 24、计算单元格中的总字数 38 25、关于欧元的转换 39 26、给表格做个超级搜索引擎 39 27、Excel工作...
  • 5.2.15 在字符串中查找和搜索 5.2.16 在字符串中查找和替换  5.3 高级文本公式 5.3.1 计算单元格中指定字符的个数 5.3.2 计算单元格中指定子串的个数 5.3.3 把数字表示成序数词 5.3.4 为列数确定列字母 ...
  • 5.2.15 在字符串中查找和搜索 5.2.16 在字符串中查找和替换  5.3 高级文本公式 5.3.1 计算单元格中指定字符的个数 5.3.2 计算单元格中指定子串的个数 5.3.3 把数字表示成序数词 5.3.4 为列数确定列字母 ...
  • 细分为<用数字顺序或倒序><用EXCEL存储格内容><增加字符串><清除字符串><替换字符串>多方式改名,优点明显。例:替换字符串就支持起始长度、替换个数、GB2与BIG5码相互转换等多选项操作,也支持文件扩展名的修改。现...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
     8.3.5 字符串的使用  8.3.6 日期的使用  8.4 赋值语句  8.5 数组  8.5.1 数组的声明  8.5.2 多维数组的声明  8.5.3 动态数组的声明  8.6 对象变量  8.7 用户定义数据类型  8.8 内置函数  8.9 对象和集合...
  • 中文版Excel.2007高级VBA编程宝典 2/2

    热门讨论 2012-04-06 16:41:38
     8.3.5 字符串的使用  8.3.6 日期的使用  8.4 赋值语句  8.5 数组  8.5.1 数组的声明  8.5.2 多维数组的声明  8.5.3 动态数组的声明  8.6 对象变量  8.7 用户定义数据类型  8.8 内置函数  8.9 对象和集合...
  • 任务236: 如何在自定义地理角色 任务237: 构建简单的地图视图 任务238: 构建简单的饼图视图 任务239: 示例创建显示定量值的地图 任务240: 法国巴黎地铁车站交通量蜘蛛图(上) 任务241: 法国巴黎地铁车站交通...
  • 实例073 如何将全角字符串转换成半角字符串 实例074 如何按照指定的有效位数转换数字 实例075 如何获取汉字的拼音索引 实例076 如何设置输入方法 实例077 如何控制数据输入格式 实例078 如何控制编辑框中的...
  • ASP200问.EXE

    2010-05-20 13:25:08
    162.如何在ASP程序中打印Excel报表 163.如何在ASP中调用Java类 164.如何在线压缩和解压缩WinRAR文件 第11章 综合开发 166.如何实现聊天室功能 167.如何实现网上投票调查 168.如何实现购物车功能 169.如何实现在线...
  • 第一部分 界面设计

    2013-10-22 23:10:34
    实例073 如何将全角字符串转换成半角字符串 实例074 如何按照指定的有效位数转换数字 实例075 如何获取汉字的拼音索引 实例076 如何设置输入方法 实例077 如何控制数据输入格式 实例078 如何控制编辑框中的...
  • 实例073 如何将全角字符串转换成半角字符串 实例074 如何按照指定的有效位数转换数字 实例075 如何获取汉字的拼音索引 实例076 如何设置输入方法 实例077 如何控制数据输入格式 实例078 如何控制编辑框中的...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0050 如何在字符串中使用单引号 32 0051 结构对象的定义与使用 32 0052 使用数组为TlistView组件动态创建字段 33 0053 解决程序的死锁问题 34 0054 怎样实现接口委托 34 0055 在Delphi中使用汇编 35 ...
  • 0050 如何在字符串中使用单引号 32 0051 结构对象的定义与使用 32 0052 使用数组为TlistView组件动态创建字段 33 0053 解决程序的死锁问题 34 0054 怎样实现接口委托 34 0055 在Delphi中使用汇编 35 ...
  • 0050 如何在字符串中使用单引号 32 0051 结构对象的定义与使用 32 0052 使用数组为TlistView组件动态创建字段 33 0053 解决程序的死锁问题 34 0054 怎样实现接口委托 34 0055 在Delphi中使用汇编 35 ...
  • 0050 如何在字符串中使用单引号 32 0051 结构对象的定义与使用 32 0052 使用数组为TlistView组件动态创建字段 33 0053 解决程序的死锁问题 34 0054 怎样实现接口委托 34 0055 在Delphi中使用汇编 35 ...
  • 0050 如何在字符串中使用单引号 32 0051 结构对象的定义与使用 32 0052 使用数组为TlistView组件动态创建字段 33 0053 解决程序的死锁问题 34 0054 怎样实现接口委托 34 0055 在Delphi中使用汇编 35 ...
  • 0050 如何在字符串中使用单引号 32 0051 结构对象的定义与使用 32 0052 使用数组为TlistView组件动态创建字段 33 0053 解决程序的死锁问题 34 0054 怎样实现接口委托 34 0055 在Delphi中使用汇编 35 ...
  • 实例073 如何将全角字符串转换成半角字符串 实例074 如何按照指定的有效位数转换数字 实例075 如何获取汉字的拼音索引 实例076 如何设置输入方法 实例077 如何控制数据输入格式 实例078 如何控制编辑框中的...
  • 尹成Python27天入门到项目实战

    千人学习 2020-12-05 17:04:22
    字符串高级简单回顾..eval与exec简介字符串的简单规范字符串的截取字符串...字符串出现个数字符串编码注意事项解码失败判断字符串以什么为结束tab键转换find函数与rfind函数index函数与rindex函数字符串判断字符串间隔...
  • 3.如何在消息框中动态显示资源字符串 4.如何设置消息提示框的标题文字 5.如何使消息提示框的标题右对齐 6.如何在消息提示框中绘制表格 7.如何在消息提示框中设置图标 8.如何在消息提示框中显示问号图标 9.如何在消息...
  • 如何在消息框中动态显示资源字符串  4.如何设置消息提示框的标题文字  5.如何使消息提示框的标题右对齐  6.如何在消息提示框中绘制表格  7.如何在消息提示框中设置图标  8.如何在消息提示框中...
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    79 <br>0115 如何判断是否为数字 79 <br>0116 如何在字符串中查找指定字符 79 <br>0117 如何在字符串中用一子串替换另一子串 80 <br>0118 将新字符串添加到已有字符串中 80 <br>0119 如何在...
  • 实例047 如何在数组中插入数组元素 实例048 如何删除数组元素 实例049 利用数组实现矩阵转换 实例050 对数组进行二分查找 3.2 数组的应用 实例051 利用数组统计文字段落数 实例052 利用数组随机抽取幸运观众 ...
  • 实例047 如何在数组中插入数组元素 实例048 如何删除数组元素 实例049 利用数组实现矩阵转换 实例050 对数组进行二分查找 3.2 数组的应用 实例051 利用数组统计文字段落数 实例052 利用数组随机抽取幸运观众 ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 101
精华内容 40
关键字:

如何在excel输入数字字符串