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)

总结:

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

相关推荐
赛博末影猫几秒前
Spring理论知识(Ⅴ)——Spring Web模块
java·前端·spring
zimoyin2 分钟前
使用 Kotlin 将 Vertx 和 Springboot 整合
java·spring boot·kotlin
苹果酱05679 分钟前
Redis基础篇(万丈高楼平地起):核心底层数据结构
java·vue.js·spring boot·mysql·课程设计
一丝晨光34 分钟前
为什么会有函数调用参数带标签的写法?Swift函数调用的参数传递需要加前缀是否是冗余?函数调用?函数参数?
java·开发语言·c++·ios·c#·objective-c·swift
GISer_Jing1 小时前
DeepSeek 阐述 2025年前端发展趋势
前端·javascript·react.js·前端框架
prince_zxill1 小时前
RESTful 架构原则及其在 API 设计中的应用
前端·javascript·架构·前端框架·restful
fat house cat_2 小时前
【思维导图】redis
java·redis·思维导图
爱上语文3 小时前
登录认证(5):过滤器:Filter
java·后端·spring
geovindu3 小时前
D3.js Org Chart
开发语言·javascript·ecmascript