EXCEL文本处理总结:如何查找(/定位)字符串内,符合条件的多个符号里的最后一个?

news/2023/12/9 7:36:38

目录

题外话:学习总结

1 新手切忌贪多

2 熟练者切忌懒惰

3 这2件事恰恰都和人性相反

1 EXCEL文本处理相关函数

2 查找函数 find()  和 search()

2.1 find() 

2.2 search()

2.3 下面是测试的公式情况

3 如何查找(定位)符合条件的某个字符的位置?

3.1 如何查找符合条件的第1个字符?

3.2 如何查找符合条件的第2个字符?

3.3 如何查找符合条件的第N个字符?

3.4 如何查找符合条件的最后一个字符

3.4.1 方法1,将字符串倒转读取+ 取第1个就等于取了最后1个

3.4.2 方法2,使用 trim() + 嵌套substitute()的方法

4 如何查找是否有

5 如何查重

6 如何替换

下一篇 :如何查多条数据内最后一个符合要求的呢?


题外话:学习总结

学习EXCEL/VBA 或者其他东西,是要与懒惰的自己做斗争

1 新手切忌贪多

  • 新手看到,像什么,XX函数的10个技巧,这种根本就不要去学,一定要止住贪念
  • 新手应该带着自己的问题来寻找答案,去学习
  • 找到问题的答案后,顺着这个展开,把知识的骨架学习一遍,搞懂脉络
  • 那些技巧是血肉,有更好,没有将来也可以搜到,学到,不着急

2 熟练者切忌懒惰

  • 会了以后,如果止步于,每次遇到问题去搜索
  • 往往多年都无法再进步
  • 处于反复学,反复忘记的循环里
  • 而应该,从各种角度去多维度的总结知识,
  1. 比如总结常用函数的多种使用技巧
  2. 比如总结某些问题有哪些解决办法
  3. 横向比较各种功能,函数,代码,透视表,图表的优劣
  • 这个过程很痛苦,很费时间,可能反复去学习,但是迈过去了,以后你大脑里就有了知识脉络,对很多问题就有思路,即使要查,解决问题都是信手拈来。
  • 就达到了高手境界
  • 至于怎么到大师,我不是大师,我还不知道。。。

3 这2件事恰恰都和人性相反

  • 刚开始的时候,人热情很高,贪多,求快,冒进,失败概率高
  • 熟练一些了,入了门了,却止步于一知半解,不深究,不总结,不提高,永远无法进入高手的境界
  • 切记!

1 EXCEL文本处理相关函数

常用文本处理函数如下

  • 格式处理
  • text()
  • 内容处理,选择,长度,部分选取等
  • len()
  • left()
  • right()
  • mid()
  • 字符串拼接
  • textjoin()
  • &
  • cancatenate()
  • 查找
  • find()
  • search()
  • 替换
  • substitute()
  • replace()

下文就几个比较重点,比较麻烦的问题进行总结

2 查找函数 find()  和 search()

这2个函数有不少差别,功能上可以说是刚好互补的

2.1 find() 

  • find() 基础语法: find("要查找目标内容", 查找的范围,开始位数)
  • find() 是按 字符数进行计数
  • 对应 findb()  是按字节数进行计数,比如英文和数字为1个字节,而汉字是2个字节
  • find() 区分大小写的
  • find() 不能使用通配符查找

2.2 search()

  • search() 基础语法: search("要查找目标内容", 查找的范围,开始位数)
  • search() 是按 字符数进行计数
  • 对应 searchb()  是按字节数进行计数,比如英文和数字为1个字节,而汉字是2个字节
  • search() 不区分大小写的
  • search() 可以使用通配符查找

2.3 下面是测试的公式情况

 

3 如何查找(定位)符合条件的某个字符的位置?

3.1 如何查找符合条件的第1个字符?

  • 使用 find()  或者 search() 查找符合条件的内容,如果在查找范围内存在多个,都只会返回符合条件的第一个字符的位置!
  • 具体试验情况见下图

 

3.2 如何查找符合条件的第2个字符?

  • 可以使用从第1个字符后开始查找
  • 而且,第一个字符的位置可以不数,而采用查找+嵌套的方式

  • 从第1个符合要求的字符 (例如\)之后,第2个符合要求字符(例如\)之前开始查找
  • 下面2个公式本质都一样
  • FIND("\",A31)的结果也是5,只是是动态查询而不是写死的,更灵活
  • FIND("\",A31,5)
  • FIND("\",A31,FIND("\",A31)+1)

 

3.3 如何查找符合条件的第N个字符?

  • 从要查找的第N个符合要求的字符前开始查找?
  • 但是如果是多行数据,不同行的数据长度不一样呢?数据不规范呢?
  • 这样就这样无论直接数位数,或者嵌套都很麻烦了
  • 怎么办呢?
  • 是个问题

3.4 如何查找符合条件的最后一个字符

  • 多种方法
  • 如何定位第1个,第2个
  • 最后1个?

3.4.1 方法1,将字符串倒转读取+ 取第1个就等于取了最后1个

  • 将字符串倒转读取+ 取第1个就等于取了最后1个
  • 用VBA写个简单的自定义函数
  • 然后EXCEL使用这个自定义函数 reverse1() 即可倒转字符串内容!

用VBA写个简单的自定义函数

Function reverse1(str As String)
  reverse1 = StrReverse(str)
End Function

 

3.4.2 方法2,使用 trim() + 嵌套substitute()的方法

取最后一个符合要求的字符\之后的内容

 TRIM(RIGHT(SUBSTITUTE(A43,"\",REPT(" ",500)),500))

查找最后一个符合要求的字符\之后的位置

FIND(TRIM(RIGHT(SUBSTITUTE(A43,"\",REPT(" ",500)),500)),A43)-1

4 如何查找是否有

5 如何查重

6 如何替换

下一篇 :如何查多条数据内最后一个符合要求的呢?

可能要用到数组公式等


http://www.niftyadmin.cn/n/409330.html

相关文章

线程,你是个什么?

线程的基本定义 线程(Thread)是操作系统能够进行运算调度的最小单位,它被包含在进程(Process)中,是进程中的实际运作单位。一个线程可以与同一进程中的其他线程共享进程的全部资源,包括内存、文…

【Java】Java核心要点总结:62

文章目录 1. 线程中的线程是怎么创建的,是一开始就随着线程池的启动创建好的吗?2. 既然Volatile能够保证变量的可见性,是否意味着基于其的运算是并发安全的3. ThreadLoadl是什么 有哪些使用场景4. ThreadLoadl是怎么解决并发安全的5. 有人说要…

「HTML和CSS入门指南」section 标签详解

什么是 section 标签? 在 HTML 中,section 标签用于表示文档中的一个区域或节。通常用于包含相关内容,例如文章的章节或主题。 section 标签的基本语法 以下是 section 标签的基本语法: <section><!-- 在这里放置您的内容 --> </section>请注意,secti…

uView 2.X 的 picker 组件实现省市区县联动选择功能

uView 2.X 的 picker 组件实现省市区县联动选择功能 <template><view class"container"><view class"p-card"><view class"p-title"><text>收货地址信息</text></view><view class"" s…

Rocky Linux9安装教程

序言 Centos废了&#xff0c;最近在考虑将服务器迁移至Rockylinux系统&#xff0c;在这里记录下安装过程 当前安装版本RockyLinux9.2&#xff08;minimal版本&#xff09;&#xff0c;VMware Fusion专业版13.0.2 创建虚拟机 第一步&#xff1a; 先下载好ISO文件&#xff0c…

final finally 和 finalize的区别

final、finally和finalize都是Java中的关键字&#xff0c;但它们的含义和用途却不同。 final 表示不可变&#xff0c;用于修饰类、方法和变量。 finally 表示无论如何都会执行的代码块&#xff0c;用于清理资源和恢复现场。 finalize 是Object类的一个方法&#xff0c;用于在…

【日志解析】【启发式】Drain:一种用于日志解析的深度解析树

Drain&#xff1a;An Online Log Parsing Approach with Fixed Depth Tree 文章目录 Drain&#xff1a;An Online Log Parsing Approach with Fixed Depth Tree1 论文出处2 背景2.1 背景介绍2.2 针对问题2.3 创新点 3 主要设计思路3.1 Drain整体结构3.2 具体步骤 4 实验设计5 个…

chatgpt赋能python:Python平铺图片的SEO优化

Python平铺图片的SEO优化 在网站设计中&#xff0c;图片是一个重要的元素。但是&#xff0c;使用大量的图片会导致网站加载速度变慢&#xff0c;从而影响用户的体验。为了解决这个问题&#xff0c;我们可以使用平铺图片&#xff0c;这样可以减小图片的大小&#xff0c;提高网站…

一、人像分割

开源PP-HumanSegl模型,提供了三个高质量的人像分割模型:有应用于服务端GPU部署的PP-HumanSegl模型,有适用于移动端的轻量PP-HumanSeg模型,还有能够在浏览器部署的超轻量模型PP-HumanSegs模型。 近期百度视频会议 上线了虚拟背景功能,支持在网页端视频会议时进行背景切…

Keras-3-实例2-多分类问题

1. 多分类问题&#xff1a; 1.1 路透社数据集加载 路透社数据集由路透社在1986年发布&#xff0c;包含46个不同的主题&#xff1a;某些主题样本较多&#xff0c;某些较少&#xff0c;但是训练集中每个主题都至少含有10个样本。 from keras.datasets import reuters(train_da…

【集群】LVS负载均衡群集(一)

文章目录 前言一、企业群集应用概述1. 群集的含义1.1 群集的特点1.2 扩展服务器的方式 2. 群集的类型2.1 负载均衡群集&#xff08;Load Balance Cluster&#xff09;2.2 高可用群集&#xff08;High Availability Cluster&#xff09;2.3 高性能运算群集&#xff08;High Perf…

总结893

学习目标&#xff1a; 月目标&#xff1a;6月&#xff08;线性代数强化9讲&#xff0c;背诵15篇短文&#xff0c;考研核心词过三遍&#xff09; 周目标&#xff1a;线性代数强化3讲&#xff0c;英语背3篇文章并回诵&#xff0c;检测 每日必复习&#xff08;5分钟&#xff09;…

Rust每日一练(Leetday0024) 爬楼梯、简化路径、编辑距离

目录 70. 爬楼梯 Climbing Stairs &#x1f31f; 71. 简化路径 Simplify Path &#x1f31f;&#x1f31f; 72. 编辑距离 Edit Distance &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专…

Java程序执行流程

Java程序执行的整个过程可以分为三个阶段&#xff1a;编译、加载和运行 1.编译 Java程序的源代码需要经过编译器&#xff08;例如javac&#xff09;的编译&#xff0c;将其转换成字节码&#xff08;即.class文件&#xff09;&#xff0c;这个过程称为编译。编译器会对源代码中…

SpringBoot整合Ip2region获取IP地址和定位

1.Ip2region的介绍 1.1.Ip2region 是什么 ip2region v2.0 - 是一个离线IP地址定位库和IP定位数据管理框架&#xff0c;10微秒级别的查询效率&#xff0c;提供了众多主流编程语言的 xdb 数据生成和查询客户端实现 。 1.2.Ip2region 特性 1.2.1 标准化的数据格式 每个 ip 数…

【深入浅出C#】章节 2:数据类型和变量:类型转换和类型推断

类型转换和类型推断是C#编程中重要的概念和技术&#xff0c;它们在处理数据和变量时起到关键作用。类型转换允许我们在不同数据类型之间进行转换&#xff0c;以便进行正确的计算和操作。它可以帮助我们处理数据的精度、范围和表达需求。而类型推断则使代码更加简洁和可读&#…
最新文章