Excel,TRIM 路径到倒数第二个“/”

Excel,TRIM 路径到倒数第二个“/”

我有以下路径:

堆栈溢出

超级/用户

我有公式:

=RIGHT(A2,LEN(A2)-FIND("|",SUBSTITUTE(A2,"/","|",B2))+1)

目前,这会采用 A2 中的路径,无论我在 B2 中输入什么 #,都会根据 # 修剪路径。因此,如果我在 B2 中输入 2,它将返回 flow,如果我输入 1,它将返回 Over/Flow。问题是我拥有的路径长度不一致,并且不会修剪结束节点。我的公式在 C2 中。要解析的数字在 B2 中。路径在 A2 中。

这里的技巧是让它提取倒数第​​二个节点。

期望输出

超过

极好的

答案1

/这种方法将允许根据 B2 中的值提取任何分离的段。

首先定义一个名字seq_99

seq_99 refers to: =IF(ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))=1,1,(ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))-1)*99)

这将创建一个值数组{1;99;198;297;...}

笔记如果你的任何片段可能更长,则增加 99;例如增加到 999)

然后尝试这个公式:

=INDEX(TRIM(MID(SUBSTITUTE(A2,"/",REPT(" ",99)),seq_99,99)),B2)

其中 B2 包含您想要提取的片段的位置。

如果你想反向计算,例如

1 = 最后一段

2 = 倒数第二段

然后将 B2 替换为:

(LEN(A2)-LEN(SUBSTITUTE(A2,"/","")))+2-B2

因此公式如下:

=INDEX(TRIM(MID(SUBSTITUTE(A2,"/",REPT(" ",99)),seq_99,99)),(LEN(A2)-LEN(SUBSTITUTE(A2,"/","")))+2-B2)

以下是使用公式的示例。请注意,2B 列中的 表示倒数第二段,公式如下:

在此处输入图片描述

答案2

用这个:

=TRIM(MID(SUBSTITUTE(A2,"/",REPT(" ",99)),(LEN(A2)-LEN(SUBSTITUTE(A2,"/",""))-1)*99+1,99))

它将返回倒数第二个:

在此处输入图片描述

相关内容