网站首页 > 精选教程 正文
例 将消费金额从消费明细中提取出来单独存放
下图所示为一份生活费消费明细表,由于数据输入不规范,无法直接汇总生活费。为便于汇总,需将消费金额从消费明细中提取出来单独存放。
每条消费明细记录中只包含一个数字字符串,提取到的数字即为消费金额,没有其他数字字符串的干扰。
在D2单元格中输入以下数组公式,按<Ctrl+Shift+Enter>组合键,并将公式向下制到D11单元格。
{=-LOOKUP(1,-MID(C2,MIN(FIND(ROW($1:$10)-1,C2&1/17)),ROW($1:$16)))}
使用FIND函数在消费明细中查找0-9这10个数字,返回这10个数字在消费明细中最先出现的位置。公式中出“1/17”的计算结果为0.058823529417647,是一个包含0-9的数字字符串,其作用是使FND函数能查找到0-9的所有数字,不返回错误值。
使用MIN函数返回消费明细中第一个数字的位置,结合MID函数依次提取长度为1-16的数字字符串,结果如下。
{“8";"80";"800";"800元";"800元";"800元";"800元";"800元";"800元";"800元";00元";"800元";"800元";"800元";"800元";"800元"}
取负运算将文本型数字转换为负数,同时将文本字符串转换为错误值。
最后使用LOOKUP函数忽略错误值返回数组中最后一个数值,得到负的消费金额再进行一次取负运算即得到消费金额。
例 提取首个手机号码
下图所示为某经销商的客户信息,为了便于管理,需要从中提取手机号码。
手机号码是以13、15、17及18开头的11位数字字符串。而客户信息中包含公司名称、联系人姓名、固定电话、移动手机号及传真,有多个数字字符串对手机号码形成干扰,需甄别后才能提取。
在C3单元格中输入以下数组公式,按<Ctrl+Shift+Enter>组合键,并向下复制到C10单元格。
{=MID(B3,MIN(MATCH(1&{3,5,7,8},LEFT(MID(B3&1.13000151718E+21,ROW($1:90),11)/10^9,2),)),11)}
公式中,“1.13000151718E+21”是一个包含13、15、17及18开头的四类手机号码的数值。将其连接在客户信息之后,是为了避免MATCH函数在查找四类手机号码时返回错误值,达到容错的目的。
使用MID函数从“B3&1.13000151718E+21”字符串中依次提取1个字符长度的字符串。通过“10^9”的算术运算。将11位均为数学的字符串转换为大于0且小于100的小数,将包含非数字的文本字符串转换为错误值。
使用LEFT函数提取左边两个字符,通过MATCH函数查找13、15、17及18,分别返回以13、15、17及18开头的手机号码在客户信息中的位置。
使用MIN函数返回手机号码在客户信息中的最小位置,即首个手机号码的位置。
最后使用MID函数从客户信息中首个手机号码的位置处提取11个字符长度的字符串,得到首个手机号码。
- 上一篇: 利用VBA提取特定行及清空数组举例
- 下一篇: 迟早要知道的JS系列之常用数组方法
猜你喜欢
- 2024-11-12 Java 中为什么 的char 数组比不可变的String更适合存储密码?
- 2024-11-12 啃碎JDK源码(三):ArrayList jdk中的哪些源码是必看的
- 2024-11-12 几行 Java 代码搞定图片提取文字功能
- 2024-11-12 excel函数技巧:choose+filter提取自定义数组
- 2024-11-12 vlookup的高阶用法——数据提取,不是很简单,但是很实用
- 2024-11-12 Java截取新闻标题 java截取string
- 2024-11-12 常用数组方法;看过的有福了 数组常用方法汇总
- 2024-11-12 新函数TAKE来了,自动提取前几名的数据,太好用了
- 2024-11-12 Office新函数Take,提取前后名次名单像喝水一样简单,记得收藏
- 2024-11-12 C语言用结构体向字符数组提取数据
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)