冗长的Excel公式需要简化

Ven*_*ted 7 excel excel-formula

有没有办法简化这个公式?

=IFERROR(IF(LEN(RIGHT(K3,LEN(K3)-FIND("@",SUBSTITUTE(K3," ","@",LEN(K3)-LEN(SUBSTITUTE(K3," ",""))))))<4,IF(LEN(RIGHT(K3,LEN(K3)-FIND("@",SUBSTITUTE(K3," ","@",LEN(K3)-LEN(SUBSTITUTE(K3," ",""))))))< 3,IF(LEN("00"&LEFT(RIGHT(K3,2),1)+1&"l")>4,"0"&LEFT(RIGHT(K3,2),1)+1&"l","00"&LEFT(RIGHT(K3,2),1)+1&"l"),IF(LEN("0"&LEFT(RIGHT(K3,3),2)+1&"l")<4,"00"&LEFT(RIGHT(K3,3),2)+1&"l","0"&LEFT(RIGHT(K3,3),2)+1&"l")),IF(LEN(LEFT(RIGHT(K3,4),3)+1&"l")<4,IF(LEN(LEFT(RIGHT(K3,4),3)+1&"l")< 3,"00"&LEFT(RIGHT(K3,4),3)+1&"l","0"&LEFT(RIGHT(K3,4),3)+1&"l"),(LEFT(RIGHT(K3,4),3)+1&"l"))),IF(LEN(K3)<4,IF(LEN(K3)< 3,IF(LEN("00"&LEFT(K3,1)+1&"l")>4,"0"&LEFT(K3,1)+1&"l","00"&LEFT(K3,1)+1&"l"),IF(LEN("0"&LEFT(K3,2)+1&"l")<4,"00"&LEFT(K3,2)+1&"l","0"&LEFT(K3,2)+1&"l")),IF(LEN(LEFT(K3,3)+1&"l")< 3,"00" & LEFT(K3,3)+1&"l", IF(LEN(LEFT(K3,3)+1&"l")<4,"0"&LEFT(K3,3)+1&"l",LEFT(K3,3)+1&"l"))))
Run Code Online (Sandbox Code Playgroud)

它必须找到单元格中的最后一个数字,给它加 1 并在最后放一个 L。如果号码少于 3 位,则必须在号码前添加 0(083、071、043、005、002 等)。

Input          - Output

1L             - 002L
03R            - 004L
483L           - 484L
232R 233L 234L - 235L
08L 009L       - 010L
4L 005R 6R     - 007L
89L 90R 91L    - 092L
Run Code Online (Sandbox Code Playgroud)

Ror*_*ory 6

这适用于您的示例:

=TEXT(-LOOKUP(2,-MID(TRIM(RIGHT(SUBSTITUTE(K3," ",REPT(" ",1000)),1000)),1,ROW($1:$15)))+1,"000L")
Run Code Online (Sandbox Code Playgroud)


Sco*_*ner 6

另一个使用 FILTERXML:

=TEXT(FILTERXML("<t><s>"&SUBSTITUTE(LEFT(K3,LEN(K3)-1)," ","</s><s>")&"</s></t>","//s[last()]")+1,"000")&"L"
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


小智 5

我已经测试了以下内容,我认为它符合您的标准

=TEXT(SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(B3," ",REPT(" ",100)),100)), RIGHT(B3, 1), "")+1, "000")&"L"
Run Code Online (Sandbox Code Playgroud)