Excel: 复制最后一个之前的规则 /

Excel: copy rule before last /

我尝试在最后一个之前复制文本 /

样本:

结果:

我尝试了一些类似的方法,但在我的 excel 中没有任何效果。 Return 错误无效公式。

=IF(ISERROR(FIND(" ",A2,FIND(" ",A2,1)+1)),A2,LEFT(A2,FIND(" ",A2,FIND(" ",A2,1)+1))) 

每次我遇到问题此公式无效:

您可以使用多种方式,例如:


MATCH() 正斜杠的最后一次出现:

=LEFT(A1,MATCH(2,1/(MID(A1,SEQUENCE(LEN(A1)),1)="/"))-1)

或者如果没有 Microsoft365:

=LEFT(A1,MATCH(2,1/(MID(A1,ROW(A1:INDEX(A:A,LEN(A1))),1)="/"))-1)

SUBSTITUTE() 正斜杠的最后一次出现:

=LEFT(A1,FIND("|",SUBSTITUTE(A1,"/","|",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))-1)

TEXTJOIN() 除最后一部分外的任何其他内容:

=TEXTJOIN("/",,FILTERXML("<t><s>"&SUBSTITUTE(A1,"/","</s><s>")&"</s></t>","//s[position()<last()]"))


编辑:

如果现在在 GS 中完成,您可以在内部使用 REGEXEXTRACT()INDEX():

=INDEX(IF(A2:A="",,REGEXEXTRACT(A2:A,"(^.*)\/")),,)

这会将您的所有答案都写在同一列中。

不是一个明确的答案,但你可以这样做(我用单元格 A1 作为我的例子):

  1. = LEN(A1)-LEN(SUBSTITUTE(A1;"/";"") - 这将计算您在 A1 单元格中有多少 /
  2. 那么你可以在 SUBSTITUTE 函数中使用这个计数:
    = SUBSTITUTE(A1;"/";"#";LEN(A1)-LEN(SUBSTITUTE(A1;"/";"")))
    为了用其他一些 unique 符号替换最后一次出现的 / - # 在我的示例中
  3. 使用 FIND 定位这个新的交易品种,从第一个交易品种开始搜索:
    =FIND("#"; SUBSTITUTE(A1;"/";"#";LEN(A1)-LEN(SUBSTITUTE(A1;"/";""))); 1)
    它将为您提供 # 的位置,即初始字符串中最后一个 / 的位置。
  4. 将此位置用于 LEFT 函数:
    =LEFT(A1; FIND("#"; SUBSTITUTE(A1;"/";"#";LEN(A1)-LEN(SUBSTITUTE(A1;"/";""))); 1)-1)

就像其他人已经演示的那样,只是在环中投入另一个版本的 SUBSTITUTE|RIGHT

=SUBSTITUTE(A2,"/"&TRIM(RIGHT(SUBSTITUTE(A2,"/",REPT(" ",99)),99)),"")