如何删除列中最后一个正斜杠之前的文本?
Posted
技术标签:
【中文标题】如何删除列中最后一个正斜杠之前的文本?【英文标题】:How do I delete text before the last forward slash in a column? 【发布时间】:2018-02-15 09:42:43 【问题描述】:我有一个电子表格,其中包含显示文件路径的列。它们看起来像这样:
/j/t/jtfdsrn-01r_1_1_19.jpg
/j/t/jtfdsrn-01r_1_1_18.jpg
/j/t/jtfdsrn-01r_1_1_17.jpg
/j/t/jtfdsrn-01r_1_1_16.jpg
/j/t/jtfdsrn-01r_1_1_15.jpg
/j/t/jtfdsrn-01r_1_1_14.jpg
/j/t/jtfdsrn-01r_1_1_13.jpg
/j/t/jtfdsrn-01r_1_1_12.jpg
我想删除最后一个斜线之前的所有内容,使它们看起来像这样:
/jtfdsrn-01r_1_1_19.jpg
/jtfdsrn-01r_1_1_18.jpg
/jtfdsrn-01r_1_1_17.jpg
/jtfdsrn-01r_1_1_16.jpg
/jtfdsrn-01r_1_1_15.jpg
/jtfdsrn-01r_1_1_14.jpg
/jtfdsrn-01r_1_1_13.jpg
/jtfdsrn-01r_1_1_12.jpg
我可以使用公式或内置函数来执行此操作吗?我使用 OpenOffice。
我尝试了TRIM(RIGHT(SUBSTITUTE(A1,"/",REPT(" ",LEN(A1))),LEN(A1)))
公式,但我得到了一个错误:501。
【问题讨论】:
Extract data of a cell after colon的可能重复 这个问题在过去出现过很多次。上面链接的答案中提供了最近的一个很好的解决方案。请在发布问题之前搜索该网站。=TRIM(RIGHT(SUBSTITUTE(A1,"/",REPT(" ",LEN(A1))),LEN(A1)))
尝试使用该公式时出现错误 501。
@Oscar 这些值的长度总是相同还是可能改变?
SUBSTITUTE
函数在 OO 中绝对有效,所以只需按照您的示例执行 =SUBSTITUTE(A1,"/j/t","")
。
【参考方案1】:
如果你的目标字符串总是相同的长度:
=RIGHT(A1,23)
Input: /j/t/jtfdsrn-01r_1_1_19.jpg Output: /jtfdsrn-01r_1_1_19.jpg
如果你有可变长度的字符串并且文件路径中总是有 3 个反斜杠:
="/" &RIGHT(A1, LEN(A1) -FIND("*", SUBSTITUTE(A1,"/","*",3), 1))
Input: /j/t/jtfdsrn-01r_1_1_1000.jpg Output: /jtfdsrn-01r_1_1_1000.jpg
如果文件路径中有可变长度字符串和可变反斜杠:
="/" &RIGHT(A1, LEN(A1) -FIND("*", SUBSTITUTE(A1,"/","*", LEN(A1)-LEN(SUBSTITUTE(A1,"/","") )), 1))
Input: a/b/c/j/t/jtfdsrn-01r_1_1_19.jpg Output: /jtfdsrn-01r_1_1_19.jpg
【讨论】:
【参考方案2】:让我知道这是否对你有用,如果你的价值观没有改变,不应该有问题,但如果有问题,请调查一下。
=RIGHT(A2;LEN(A2)-FIND("/";A2;3)-1)
【讨论】:
请注意,如果 OP 使用此答案,他们可能需要将;
替换为 ,
,具体取决于区域设置【参考方案3】:
在查找和替换中仅使用不带括号的通配符 (*/)
【讨论】:
以上是关于如何删除列中最后一个正斜杠之前的文本?的主要内容,如果未能解决你的问题,请参考以下文章