1. 需求

半吊子程序员的小仙女说有一些数据需要去尾巴,具体格式如下:

                              原始字符串                               目标字符串
SUP-Galaxy-S21Ultra-UBPro-Violte-1 SUP-Galaxy-S21Ultra-UBPro-Violte
SUP-Galaxy-S21Ultra-UBPro-Tilt-17 SUP-Galaxy-S21Ultra-UBPro-Tilt
SUP-Galaxy-S21Ultra-UBPro-Ruddy-16 SUP-Galaxy-S21Ultra-UBPro-Ruddy
SUP-Galaxy-S21Ultra-UBPro-Blak128-17 SUP-Galaxy-S21Ultra-UBPro-Blak
SUP-Galaxy-S21Ultra-UBPro-Blak128-1 SUP-Galaxy-S21Ultra-UBPro-Blak
SUP-Galaxy-S21Ultra-UBPro-Violte-7 SUP-Galaxy-S21Ultra-UBPro-Violte
SUP-Galaxy-S21Ultra-UBPro-Violte-18 SUP-Galaxy-S21Ultra-UBPro-Violte
SUP-Galaxy-S21Ultra-UBPro-Violte SUP-Galaxy-S21Ultra-UBPro-Violte

通过观察上表可以得出结论:只需要将单元格中字符串的末尾的“横杠-”、“空格 ” 以及 “数字0-9”去掉就OK了。

2. 开干

本来打算通过excel自带的函数解决的,然而好像不是很容易,好吧那就自己写。

2.1 环境设置

首先新建一个 excel 文件(后缀名为 .xlsx ),然后点菜单 File,再点 options,出现下图:

按步骤选择 "Customize Ribbon" 后,勾上右边的 "Developer",然后点击 "OK",你将会发现菜单栏多了一项 "Developer" 菜单。

2.2 编写代码

接下来,按快捷键 "Alt+F11",出现了一个VBA窗口,然后右击 VBAProject(...) 选择 Insert ,然后点 Module 。

在出现的新空白框中输入如下代码:

Function DELETE_TAIL(str)   ' 以后的使用是通过这个函数名调用的,所以尽量取一个方便记忆的名字' 主要是通过一下循环语句判断指定单元格的最后一个字符是否为数字,横杠或者空格' 如果是,就去掉它;如果不是,就说明已经处理完毕,返回就好。Do While VBA.IsNumeric(Application.Search(Right(str, 1), " -1234567890")) str = Left(str, Len(str) - 1)LoopDELETE_TAIL = str        ' 返回值End Function

然后保存并关闭 VBA 编辑窗口,在点击 excel 的 File 菜单,将文件另存为 .xla (加载宏)文件,名字可以随便取(建议为 MyFunctions.xla),

建议保存路径为:"C:\Users\用户名\AppData\Roaming\Microsoft\AddIns\MyFunctions.xla" 。

2.3 导入编写的代码

点击 刚刚新出现的新菜单项 Developer,再点击 Excel Add-ins,将我们刚刚取的名字前打勾,表示启用这个函数库,然后点 OK 。如下图:

(如果万一没有出现这个函数库,就点击 Browse... 去找到刚刚我们存储的 .xla 文件,导入进来并打上勾就可以了)

导入完我们自己写的函数库就可以关闭所有的 excel 文档了。

3. 使用

使用就很简单了,就跟用 SUM() 函数求和是一样一样的。

结束语:谨以此文,在这个特殊的日子献给我最亲爱的小xm同志,希望我小仙女的工作能够再轻松一点。

—— 20210308

/***************************************************************************************

*********************** 这是一条不会产生编译错误的分割线 **********************

****************************************************************************************/

新需求

新方案

Function DELETE_TAIL(str)   ' 以后的使用是通过这个函数名调用的,所以尽量取一个方便记忆的名字' 主要是通过一下循环语句判断指定单元格的最后一个字符是否为数字,横杠或者空格' 如果是,就去掉它;如果不是,就说明已经处理完毕,返回就好。Do While VBA.IsNumeric(Application.Search(Right(str, 1), " -1234567890"))str = Left(str, Len(str) - 1)LoopIf VBA.IsNumeric(Application.Search(Right(str, 3), "-CA-BR/BR-UK-MX-AU")) Thenstr = Left(str, Len(str) - 3)End IfIf VBA.IsNumeric(Application.Search(Right(str, 2), "-N")) Thenstr = Left(str, Len(str) - 2)End IfIf VBA.IsNumeric(Application.Search(Left(str, 6), "IKFBA-M-")) Thenstr = Right(str, Len(str) - 6)End IfIf VBA.IsNumeric(Application.Search(Left(str, 4), "FBA-")) Thenstr = Right(str, Len(str) - 4)End IfDo While VBA.IsNumeric(Application.Search(Left(str, 1), " "))str = Right(str, Len(str) - 1)LoopDELETE_TAIL = str        ' 返回值End Function

excel 实现内建函数相关推荐

  1. 010_数字内建函数

    1. abs 1.1. 给出数字的绝对值. 2. c(当被用作是数字值时) 2.1. 该内建函数将"计算机语言"的数字转换成字符串, 这都是对计算机来说的, 而不是对用户.也就是说 ...

  2. 转:[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!...

    引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...

  3. python处理表格很厉害么_还在用excel?太落伍了,现在都用Python和Jupyter处理数据了...

    全文共3246字,预计学习时长8分钟 如果你从事的是商业交易或者在金融机构工作,Excel是必备技能. 你可以用它分析价格及其他tick数据.评估投资组合.计算风险价值.进行事后检等等.你熟练掌握数据 ...

  4. freeMarker(十)——模板语言之内建函数

    学习笔记,选自freeMarker中文文档,译自 Email: ddekany at users.sourceforge.net 1.字符串内建函数 这些内建函数作用于表达式左侧的字符串值. 如果左侧 ...

  5. 数据分析师—Excel函数篇

    世界上的数据分析师分为两类,使用Excel的分析师,和其他分析师. 每一个数据新人的入门工具都离不开Excel.因为Excel涵盖的功能足够多. 很多传统行业的数据分析师只要求掌握Excel即可,会S ...

  6. Excel服务器数据库修改,用excel做服务器数据库

    用excel做服务器数据库 内容精选 换一换 PL/pgSQL是一种可载入的过程语言.用PL/pgSQL创建的函数可以被用在任何可以使用内建函数的地方.例如,可以创建复杂条件的计算函数并且后面用它们来 ...

  7. Python入门:对Excel数据处理的学习笔记【第五章】列表类型处理技术

    注:该学习笔记是根据曾志贤老师编写的<从Excel到Python,用Python轻松处理Excel数据>所学习整理的笔记. 第五章 列表类型处理技术 列表是Python中最基础的数据结构. ...

  8. Python标识EXCEL文件中的重复行

    本代码分别对指定目录(路径='G:\\Xct\\python')下的EXCEL文件:文件01.xlsx和文件02.xls进行重复行标记,这样便于在EXCEL中用"自动筛选"的功能将 ...

  9. 微信公众号读芯术中的python_你好,程序员;再见,交易者!Jupyter即是新的Excel...

    全文共3246字,预计学习时长8分钟 如果你从事的是商业交易或者在金融机构工作,Excel是必备技能. 你可以用它分析价格及其他tick数据.评估投资组合.计算风险价值.进行事后检等等.你熟练掌握数据 ...

  10. Excel如何设置单元格行高,办公入门

    在使用Excel做设计文档时,遇到一个问题,一组报文放入一个单元格,但因为只显示一行,我的信息就成了下面这个样子

最新文章

  1. 2020人工神经网络第一次作业-参考答案第九部分
  2. python 调用linux命令-python3调用linux命令——Subprocess
  3. kpc v0.8.3发布,跨框架的组件库解决方案
  4. 谷歌发布“虚拟现实化”游戏 Ingress
  5. ajax中success函数无法改变全局或局部变量的值
  6. 华为内部面试题库---(6)
  7. 关于python变量的描述_Python变量命名的详细介绍
  8. 计算机二级java试题_计算机二级考试《Java》试题及答案
  9. 支付宝搜索升级:品牌商可在品牌直达专区投放优惠券
  10. c语言程序设计课用电脑吗,C语言程序设计之简单计算器
  11. Zabbix Lack of free swap space
  12. Source Insight 的使用
  13. buctoj2021年ACM竞赛班训练(四)全题解
  14. 计算机右键管理提示没有关联应用,win10系统计算机右键管理提示没有与之关联的程序的解决方法...
  15. 【potplayer安装及设置LAV Splitter】
  16. WARNING: One of the plugins you are using supports Java 8 language features. To try the support buil
  17. 学习 Python 之 Pygame 开发魂斗罗(八)
  18. 微信公众号中图文素材如何实现各种边框等样式
  19. 走鹃超级计算机,长江后浪推前浪 昔日最快超级计算机“走鹃”将被拆解
  20. 文章植入广告营销系统开发

热门文章

  1. MySQL 清除表空间碎片
  2. macOS如何格式化移动硬盘和U盘
  3. 我市首个湿地公园大连湾前关湿地公园今秋纳客
  4. 高等数学学习笔记——高等数学(二)学习笔记汇总
  5. Arduino - MPU6050陀螺仪三轴加速度倾角传感器
  6. 穷建站(一):申请免费的tk顶级域名
  7. Nginx(九):Nginx网页压缩技术
  8. 生活中哪些地方运用计算机网络,计算机网络技术在生活中应用.doc
  9. Port vlan Tag vlan
  10. github创建代码仓库并上传代码