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)

总结:

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

相关推荐
浩瀚星辰20242 分钟前
图论基础算法:DFS、BFS、并查集与拓扑排序的Java实现
java·算法·深度优先·图论
灋✘逞_兇12 分钟前
Node.Js是什么?
服务器·javascript·node.js
LjQ204015 分钟前
Java的一课一得
java·开发语言·后端·web
苦学编程的谢24 分钟前
SpringBoot项目的创建
java·spring boot·intellij-idea
武昌库里写JAVA1 小时前
vue3面试题(个人笔记)
java·vue.js·spring boot·学习·课程设计
别来无恙1491 小时前
整合Spring、Spring MVC与MyBatis:构建高效Java Web应用
java·spring·mvc
小飞悟1 小时前
那些年我们忽略的高频事件,正在拖垮你的页面
javascript·设计模式·面试
求知摆渡1 小时前
共享代码不是共享风险——公共库解耦的三种进化路径
java·后端·架构
中微子1 小时前
闭包面试宝典:高频考点与实战解析
前端·javascript
JiaJZhong2 小时前
力扣.最长回文子串(c++)
java·c++·leetcode