在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. 034_非交互自动生成 SSH 密钥文件

    #!/bin/bash#-t 指定 SSH 密钥的算法为 RSA 算法;-N 设置密钥的密码为空;-f 指定生成的密钥文件存放在哪里 rm -rf ~/.ssh/{known_hosts,id_rsa ...

  2. Druid连接池 属性说明

    1.1 maxActive 连接池支持的最大连接数.一般取值20就可以了,一般把maxActive设置成可能的并发量就行了设 0 为没有限制. 1.2 maxIdle 连接池中最多可空闲maxIdle ...

  3. [Luogu] 树状数组

    https://www.luogu.org/problemnew/show/P3374 单点修改,区间查询 #include <iostream> #include <cstdio& ...

  4. OI 常用模板 手写

    线性筛素数 (例题 洛谷P3383) bool p[50000010]; int cnt = 0; int prime[10000010]; inline void init() { int N = ...

  5. 取出easyui的datagrid的总数

    var grid = $('#datagrid'); var options = grid.datagrid('getPager').data("pagination").opti ...

  6. 创建createElement

    let oDiv = { tag:'div',  props:{ id:'box' } }:   let oP = createElement('p',{'class':'list'},['周一']) ...

  7. Linux下R环境安装

    R环境的两种安装方式,源码编译安装和yum在线安装 第一种:源码编译安装 1.首先,从官网上下载3.5.0版本 2.下载完后记得解压,我的习惯是解压在/usr/local下面 tar -zxvf R- ...

  8. Python 学习 —— 进阶篇(装饰器、类的特殊方法)

    Python基础部分学完之后,在进入其OOP部分前,先理解一下其装饰器这种结构,其功能可类比于Java中的面向切面编程,下面参见具体实例: def log(f): def fn(x): print ' ...

  9. 漫谈Objective-C在语法上的改进

    Objective-C 2.0从2006年正式发布至今已经有10年了.Apple在此期间也不断地为其注入新的语法特性,比如Blocks.NSNumber literal.NSArray literal ...

  10. vue的路由认识

    this.$router.options.routes //获得整个路由路径对象 this.$route.matched //获得当前路由的路径对象