excel实用问题:提取文字当中的数字进行运算

0、前言:

  • 这里汇总在使用excel工作过程中遇到的问题,excel使用wps版本,小规模数据我们自己提取数据可行,大规模数据就有些难受了,因此就产生了如下处理办法。

需求:需要把所有文字当中的数字提取出来,然后进行运算,如下所示:

前提知识:

  • 前提知识1:mid(查找单元,开始位置,截取长度),返回字符串。right(字符串,长度)、left(字符串,长度),right和left都返回固定长度的字符串。
  • 前提知识2:find(查找的字符串,查找单元,开始位置),返回查找字符串在查找单元的位置。
  • 前提知识3:len(字符串),返回字符串长度。
  • 前提知识4:文字转数字函数value,用N函数不可行,会识别为0。
  • 前提知识5:clean(text),当提取出来的文字前后可能有空字符的时候,用value转换会报错,可以用该函数删除text中的非打印字符。

思路:

  • 可以发现规律,有的数据是只有1条缴纳信息,最多的数据是有2条缴纳信息,那就在右侧插入3列,第1列放1条缴纳信息提取的金额和2条缴纳信息部分内容,第2列放2条缴纳信息中第1条缴纳信息的金额,第3列放2条缴纳信息中第2条缴纳信息的金额。然后在下面合计,汇总即可。

具体步骤:

  • 第一步:第一列数据提取,公式是=VALUE(MID(D4,FIND(":",D4,1)+1,LEN(D4)-FIND(":",D4,1))),通过mid提取D4单元格,:符号对应位置开始,往后所有的数字。
  • 第二步:同样用mid和find组合,公式是=VALUE(CLEAN(LEFT(E6,FIND("年",E6,1)-3)))提取第2条缴纳金额,然后用clean函数清空非打印字符,然后用value函数转为数字。这时候要注意,没有第2条金额的会出现value报错,通过列3筛选所有value报错选项,然后ctrl+g,选择可见单元格,然后delete删除即可得到如下信息:
  • 第三步:公式是=VALUE(CLEAN(MID(E6,FIND(":",E6,1)+1,LEN(E6)-FIND(":",E6,1)))),类似第二步即可得到以下信息:
  • 最后一步汇总:汇总选择用subtotal函数:=SUBTOTAL(109,E4:E22)

总结:

  • 通过以上步骤可以得出,数据规范的重要性,试想如果每条数据不是用固定表述书写,长短不一,内容不一,那么用上述方法也就不可行了。因此在收集数据之初,就要定好数据规范!
  • 处理数据,既要考虑到清洗数据,让数据规范化,还要考虑数据处理的效率,以及处理结果是否正确的验证难度。

相关推荐
lkbhua莱克瓦242 分钟前
集合进阶8——Stream流
java·开发语言·笔记·github·stream流·学习方法·集合
骑自行车的码农7 分钟前
🍂 React DOM树的构建原理和算法
javascript·算法·react.js
北极糊的狐13 分钟前
Vue3 中父子组件传参是组件通信的核心场景,需遵循「父传子靠 Props,子传父靠自定义事件」的原则,以下是资料总结
前端·javascript·vue.js
20岁30年经验的码农20 分钟前
Java Elasticsearch 实战指南
java·开发语言·elasticsearch
okseekw22 分钟前
Java 中的注释与关键字的初步学习
java
luv_sw26 分钟前
JavaSE-面向对象-构造器
java
okseekw29 分钟前
Java 中的类型转换:结合实战代码深入解析
java
CoderYanger33 分钟前
优选算法-优先级队列(堆):75.数据流中的第K大元素
java·开发语言·算法·leetcode·职场和发展·1024程序员节
luv_sw37 分钟前
JavaSE-面向对象-抽象类和接口
java
TracyCoder1231 小时前
MySQL 实战宝典(八):Java后端MySQL分库分表工具解析与选型秘籍
java·开发语言·mysql