问题描述
我尝试在上次之前复制文本 /
示例:
- 14501/30305
- 14501/30305
- 14507/39756
- 15936/15943/15954
- 14507/15940/30405
- 15936/15943/15980
结果:
- 14501
- 14501
- 14507
- 15936/15943
- 14507/15940
- 15936/15943
我尝试了一些类似的方法,但在我的 excel 中没有工作。返回错误无效公式。
=IF(ISERROR(FIND(" ",A2,FIND(" ",1)+1)),LEFT(A2,1)+1)))
解决方法
不是一个明确的答案,但您可以这样做(我在示例中使用了单元格 A1):
-
= LEN(A1)-LEN(SUBSTITUTE(A1;"/";"")
- 这将计算您在 A1 单元格中有多少/
- 然后你可以在SUBSTITUTE函数中使用这个计数:
= SUBSTITUTE(A1;"/";"#";LEN(A1)-LEN(SUBSTITUTE(A1;"/";"")))
为了用其他一些唯一符号替换最后一个/
出现 -#
在我的示例中 - 使用 FIND 从第一个符号开始搜索来定位这个新符号:
=FIND("#"; SUBSTITUTE(A1;"/";"#";LEN(A1)-LEN(SUBSTITUTE(A1;"/";""))); 1)
它将为您提供#
的位置,即初始字符串中最后一个/
的位置。 - 将此位置用于 LEFT 功能:
=LEFT(A1; FIND("#"; SUBSTITUTE(A1;"/";"#";LEN(A1)-LEN(SUBSTITUTE(A1;"/";""))); 1)-1)
您可以使用多种方式,例如:
MATCH()
最后一次出现的正斜杠:
=LEFT(A1,MATCH(2,1/(MID(A1,SEQUENCE(LEN(A1)),1)="/"))-1)
或者如果没有 Microsoft365:
=LEFT(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,"(^.*)\/")),)
这会将您的所有答案放在同一列中。
,正如其他人已经演示的那样,只是在环中加入另一个版本的 SUBSTITUTE|RIGHT
。
=SUBSTITUTE(A2,"/"&TRIM(RIGHT(SUBSTITUTE(A2,REPT(" ",99)),"")