首页 > 其他分享 >提取最后一个分隔符前面的数据,这可难倒了大部分职场老人!

提取最后一个分隔符前面的数据,这可难倒了大部分职场老人!

时间:2023-08-26 18:31:39浏览次数:42  
标签:难倒 单元格 VALUE 99 分隔符 职场 FIND 个字符

1职场实例

小伙伴们大家好,今天我们来解决一个公众号后台粉丝咨询的一个Excel问题:如何从一列数据中批量提取每个单元格中最后一个分隔符前面的数据(也可以理解为删除最后一个分隔符及后面的数据)。这个问题看似很难,其实也有简单的突破口。

如下图所示:

A列为一列数据,我们发现每个单元格中的数据都是由多个相同的分隔符号“-”分成了若干部分(即分隔符号的数量不一定),我们想要提取最后一个分隔符号前面的内容显示在B列。

提取最后一个分隔符前面的数据,这可难倒了大部分职场老人!_数据


2解题思路

这个问题的重点,也就是突破口在于如何确定每个单元格中最后一个分隔符所在的位置(即距离左侧第一个字符的距离)。那么下面我们就来利用几个基础类函数快速的解决此问题。

我们在B2单元格输入下面的函数:

=ROW($1:$99)

ROW函数可以以内存数组的展现形式返回参数“$1:$99”,即1~99行每行的行号。最大行号的确定我们要取一个相对大的值,以确保大于等于单元格的最大字符长度,保证最终统计的准确性。

公式编辑状态下选中公式部分按下F9键查看公式返回结果,以数组状态存储的1~99行的每行的行号:

{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;87;88;89;90;91;92;93;94;95;96;97;98;99}

提取最后一个分隔符前面的数据,这可难倒了大部分职场老人!_数据_02

我们继续用ROW($1:$99)函数部分作为FIND函数的第3参数,完善为下面的公式:

=FIND("-",A2,ROW($1:$99))

FIND函数表示返回一个字符串在另一个字符串中出现的起始位置(区分大小写)。

函数结构:

=FIND(要查找的字符,被查找的字符,[从第几个字符开始查找])

如果第三参数忽略,则默认为1,即从第一个字符开始查找。

即用FIND函数在A2单元格中查找分隔符“-”,从第N个字符开始查找(这里用ROW($1:$99)的数组返回值表示)出现的起始位置。

公式编辑状态下选中公式部分按下F9键查看公式返回结果,以数组状态存储的返回结果:

{4;4;4;4;8;8;8;8;10;10;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}


这里是考验我们对FIND函数第3参数基础知识的理解程度的时候了:从第N个字符开始查找,即分隔符“-”在第N个字符处及后面开始的起始位置。

以A2单元格数据“639-289-1-7”为例:

从首个字符开始查找,查找第1个字符后的首个“-”的起始位置为4,依次类推,直到第4个字符后首个“-”的起始位置仍为4;


从首个字符开始查找,查找第5个字符后的首个“-”的起始位置为8,依次类推,直到第8个字符后首个“-”的起始位置仍为8;


从首个字符开始查找,查找第9个字符后的首个“-”的起始位置为10,依次类推,直到第10个字符后首个“-”的起始位置仍为10;


从首个字符开始查找,查找第11个字符后的首个“-”的起始位置,但是第11个字符及其后就没有符号“-”了,所以一直会返回错误值#VALUE!。

提取最后一个分隔符前面的数据,这可难倒了大部分职场老人!_分隔符_03

我们发现了一个有趣的规律,数组内元素所有数字的个数即为“最后一个分隔符所在的位置”,所以我们用COUNT函数统计数字的个数:

=COUNT(FIND("-",A2,ROW($1:$99)))

提取最后一个分隔符前面的数据,这可难倒了大部分职场老人!_分隔符_04

而最后一个分隔符前面的数据的长度,要去掉最后那个分隔符的1个单位长度后,才准确,所以在公式基础上减去1即可:

=COUNT(FIND("-",A2,ROW($1:$99)))-1

提取最后一个分隔符前面的数据,这可难倒了大部分职场老人!_数组_05

最后用LEFT函数在A2单元格从左开始,提取指定长度的字符即可:

=LEFT(A2,COUNT(FIND("-",A2,ROW($1:$99)))-1)

我们就实现了批量提取每个单元格中最后一个分隔符前面的数据(也可以理解为删除最后一个分隔符及后面的数据)的效果。


提取最后一个分隔符前面的数据,这可难倒了大部分职场老人!_数组_06



标签:难倒,单元格,VALUE,99,分隔符,职场,FIND,个字符
From: https://blog.51cto.com/u_15825298/7245811

相关文章

  • 【LeetCode2118. 建立方程】 group_concat指定分隔符,指定排序顺序
    目录题目地址题目描述代码题目地址https://leetcode.cn/problems/build-the-equation/description/题目描述Example2:输入:Terms表:+-------+--------+|power|factor|+-------+--------+|4|-4||2|1||1|-1|+-------+---......
  • 将正确答案,放到对应单选题的括号内,这个问题太考验职场人了!
    1职场实例小伙伴们大家好,今天我们来解决一个互助交流群内的一位群友提出的一个Excel职场需求:如何将正确答案,放到对应单选题的括号内。这个问题给小编的第一感觉就是“无从下手”,但是通过观察原始数据,小编发现还是规整且有规律的表格数据。Excel对“有规律的数据”基本上都能通过一......
  • python语言学习-------------------------------------csv模块将有规律的分隔符去掉,转
    上代码:importcsvf=open("C:/Users/Administrator/Desktop/11.txt",'r')withf:reader=csv.reader(f,delimiter=",")forrowinreader:foreinrow:print(e)实现效果如下: G:\Python3.8解释器\python.exeC:/U......
  • 所谓的职场抗压,到底咋回事
    话题来源于我运营的知识星球,有同学在群里发了一份招聘jD,其中有一项要求是抗压能力强,然后群里就开始了关于这份招聘JD的讨论。大家重点关注的是抗压能力,有吐槽的,有比较积极的,当然也有提建议如何应对抗压这种事的。关于招聘中提到的抗压,以及工作的压力,打工人应该都见惯了。那......
  • 内卷和躺平之外,职场还有其他选择
    上周写了篇文章《不要仅限于只做测试工作》,我想要表达的是不要被岗位名称和定义的职责范围困住自己,要尝试去做一些更大范围的更能锻炼自己能力的事情。后台有一位同学留言如此说道:质量保障之外潜台词里面关注效率,测试左移、右移都是在围绕提升效率和质量做文章。单系统问题......
  • 测试同学如何提升自己的职场竞争力
    看到朋友圈一个HR发的招聘信息,招聘2名外包测试开发岗位,如果只会python+pytest+request这种基础的测开技术,极大概率是过不了面试的。一方面为她发的信息所惊讶,因为外包的岗位一般在我们看来薪资不高且要求较低;另一方面则是惊叹于行业发展的速度和对从业人员的要求在不断提升。 ......
  • CSV文件分隔符转换
    CSV文件系统默认分隔符是逗号(,),但是如果自定义过分隔符,再次保存就会变成分号(;),此时再用逗号去读数据时程序会报错。例如设置csv格式如下: Python方法pd.read_csv(file_path,delimiter=",")使用逗号去读取时会报错Traceback(mostrecentcalllast):File"xxx\Python39\lib......
  • 警惕职场PUA,远离某......
    在这个经济的寒冬,一职难求的时间节点,还是憋不住,想聊聊这个敏感的职场话题。为什么想写这篇文章,并且把前同事被PUA的事分享给大家?是因为之前悲惨的经历和他十二分的相似,也是被某阿空降过来的领导PUA到严重怀疑人生;好在现在已经走出来了。想分享给更多的新人,希望能做到提前识别,有效应......
  • 程序员30岁的职场困境该如何解决?
    一、从“工程师”到“码农”的演变在互联网的初期,程序员还被尊称为工程师,角色更像是创新者和探索者。那时候,百废待兴,他们需要亲自去探索、去创新,去定义这个新兴领域的规则和标准。那无疑是个欣欣向荣的时代。然而,如今的互联网早已过了那个野蛮生长的时代,工种逐渐细分,程序员成为了......
  • 2012 不同年龄段员工 <=40岁 41-50岁 >50岁 2012年考察不同年龄段职场人
    Asisclearlyreflectedinthetableabove,itcanbeseenthatthestatisticsaboutemployees'jobsatisfactionindifferentage.Comparedwithothers,thoseovertheageof50havethelargestpercentageofsatisfaction,whichis40%.Itisnoticeabl......