【问题标题】: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。

【问题讨论】:

  • 这个问题在过去出现过很多次。上面链接的答案中提供了最近的一个很好的解决方案。请在发布问题之前搜索该网站。 =TRIM(RIGHT(SUBSTITUTE(A1,"/",REPT(" ",LEN(A1))),LEN(A1)))
  • 尝试使用该公式时出现错误 501。
  • @Oscar 这些值的长度总是相同还是可能改变?
  • SUBSTITUTE 函数在 OO 中绝对有效,所以只需按照您的示例执行 =SUBSTITUTE(A1,"/j/t","")

标签: excel csv formula openoffice-calc


【解决方案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】:

    在查找和替换中仅使用不带括号的通配符 (*/)

    【讨论】:

      猜你喜欢
      • 2015-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-23
      • 2019-09-19
      • 2019-02-06
      • 2016-06-16
      • 2021-11-18
      相关资源
      最近更新 更多