在EXCEL文档里想从很长的文件路径中取得文件名,【数据】→【分列】是个不错的选择,但用函数会显得更高大上一些。

首先,需要获取最后一个"\"所在的位置。

方法1:

FIND("@",SUBSTITUTE(A1(字符串所在单元格),"\","@",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))

这个比较好理解,只要理解了SUBSTITUTE第四个参数的作用就好。

SUBSTITUTE第四个参数:可选。 指定要用 new_text 替换 old_text 的事件。 如果指定了 instance_num,则只有满足要求的 old_text 被替换。 否则,文本中出现的所有 old_text 都会更改为 new_text。

例:

所以,整个函数的意思是把字符串中最后一个"\"替换成字符串中没出现过的其他字符(如“@”),然后在查找这个没出现过的字符所在的位置就可以了。

方法2:

LOOKUP(1,0/(MID(A1(字符串所在单元格),COLUMN(1:1),1)="\"),COLUMN(1:1))

这个理解起来比较难。

先来理解COLUMN(1:1)的意思:

在空白EXCEL文档里选中第一行,在编辑栏里输入=COLUMN(1:1),再按Ctrl+Shift+Enter组合键

可以看到COLUMN(1:1)的结果是一个1~16384的数组。

再看(MID(A1(字符串所在单元格),COLUMN(1:1),1)="\"),作用是一个个取出字符串中的字符,并判断是否与"\"相同,相同则返回TRUE,否则返回FALSE。

0/TRUE得0,0/FALSE得

所以0/(MID(A1(字符串所在单元格),COLUMN(1:1),1)="\")的结果是

所以LOOKUP(1,0/(MID(A1(字符串所在单元格),COLUMN(1:1),1)="\"),COLUMN(1:1))的结果是

EXCEL帮助里的备注:

本例中的LOOKUP函数在0/(MID(A1(字符串所在单元格),COLUMN(1:1),1)="\")里是找不到1的,所以它找到的是0,但在0/(MID(A1(字符串所在单元格),COLUMN(1:1),1)="\")里有多个0,从结果来看,它找到的是最后一个0。(为什么?在EXCEL帮助里没有找到相关说明)

 声明:本文是本人查阅网上及书籍等各种资料,再加上自己的实际测试总结而来,仅供学习交流用,请勿使用于商业用途,任何由此产生的法律版权问题概不负责,谢谢。

EXCEL 查找某个字符在字符串中最后一次出现的位置的更多相关文章

  1. sqlserver 查找某个字符在字符串中第N次出现的位置

    例如:查找'A,' 在'A,B,C,D,A,B,C,D,C,D,B,A,C,E,'中第二次出现的位置怎么实现,SQL 中有这样的函数吗? SQL code /* 方法很多,这里简单写一个 返回@fin ...

  2. C语言strchr()函数:查找某字符在字符串中首次出现的位置

    头文件:#include <string.h> strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:    char * strchr (const char *str, ...

  3. oracle查找某个字符在字符串中的个数的技巧

    Oracle没有提供查找某个字符在字符串中出现次数的函数,当遇到这样的需求的时候,我们只能使用另外的方法去实现. 简单的思路就是,假设有个字符串str,然后里面有n个[a]字符,当把这n个[a]字符去 ...

  4. 统计字符在字符串中第n次出现的位置

    输入一个字符串s,一个数字n和一个字符c,统计这个字符c在字符串s中第n次出现的位置 输入格式: 输入3行.第1行是字符串s,第2行是数字n,第3行是被查找的字符c. 输出格式: 第n个字符在字符串中 ...

  5. 查找字符在字符串中第N次出现的位置

      1.查找字符串 @find 在字符串 @str 中第 (@n) 次出现的位置.没有第 (@n) 次返回 0. 返回@find在@str中第(@n)次出现的位置.没有第(@n)次返回0. ), ), ...

  6. python 实现查找某个字符在字符串中出现次数,并以字典形式输出

    把字符串'aenabsascd'中的字符出现的次数统计出来,并以字典形式输出 方法一: def count_str(str): dic={} for i in str: dic[i]=str.coun ...

  7. JS查找某个字符在字符串中出现的位置及次数

    var str = 'fdhfgcsaedvcfhgfh'; var index = str.indexOf('f'); // 字符出现的位置 var num = 0; // 这个字符出现的次数 wh ...

  8. php--某个字符在字符串中的位置比较

    <?php $haystack = 'helloe'; $needle = 'e'; $pos = stripos($haystack, $needle); echo "\n" ...

  9. C 语言实例 - 查找字符在字符串中出现的次数

    C 语言实例 - 查找字符在字符串中出现的次数 C 语言实例 C 语言实例 查找字符在字符串中的起始位置(索引值从 开始). 实例 #include <stdio.h> int main( ...

随机推荐

  1. 利用前端三大件(html+css+js)开发一个简单的“todolist”项目

    一.介绍 todolist,即待办事项.在windows android ios上参考微软家出的那个To-Do应用,大概就是那样的.我这个更简单,功能只有“待办” “已完成”两项,并且是在浏览器打开的 ...

  2. 区间DP小结 及例题分析:P1880 [NOI1995]石子合并,P1063 能量项链

    区间类动态规划 一.基本概念 区间类动态规划是线性动态规划的拓展,它在分阶段划分问题时,与阶段中元素出现的顺序和由前一阶段的那些元素合并而来由很大的关系.例如状态f [ i ][ j ],它表示以已合 ...

  3. mysql 查询整个数据库所有表的行数

    >use information_schema; >select sum(table_rows) from tables where TABLE_SCHEMA = "test&q ...

  4. 十一、FHS基础原理

      文件系统: http://note.youdao.com/noteshare?id=298f02714da5b9483429a40dda667f35&sub=6120396419BA477 ...

  5. go之构造体方法

    package main import ( "fmt" "math" ) type Vertexs struct { X, Y float64 } //Abs ...

  6. Windows下MongoDB的安装过程及基本配置

    首先当然是到官网下载 MongoDB 了,点击进入后会看到下载页面,如下图所示: 安装有2种方式: 一种是通过直接点击下载的安装文件进行安装: 另一种是通过命令提示符来安装,下面我将直接通过第一种方式 ...

  7. MySQL中information_schema数据库是干啥的

    大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个 information_schema数据库.information_schema数据库是做什么用的呢,使用WordPress博客 ...

  8. UML期末复习题——2.5:System Sequence Diagram & Post-condition

    第五题:系统顺序图 重要概念: 1.对象: 对象是特定行为与属性的集合. 对象的表示方式有三种: a.包括对象名和类名 b.只有类名. c.只有对象名 2.消息表示形式: 消息用于描述对象间交互的方式 ...

  9. 美国药品销售额top200

    python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&ut ...

  10. Npoi Web 项目中(XSSFWorkbook) 导出出现无法访问已关闭的流

    NPOI生产.xlsx文件件时,在使用book.Write(ms);后,会关闭流,这样导致再次使用Respons输出流的时候就出错了. 造成关闭流的主要原因有时其实是跨域,同域是没有问题的. //新建 ...