2

Excelセルの最後の2つのアンダースコアの間のテキストを見つけるには、Excelの数式が必要です。

すなわち

AAA_BBB_CCC_DDDD_E => DDDD
AAA_BBB_CCC_DDD_EEE_E => EEE
AAA_BBB_CCC_DDD_EEE_F_ => F
AAA_BBB_CCC_DDD_EE_GGGGGGGGGG => EE
AAA_BBB_CCC_DDD_EEE_FFF_GGGGGGGGGGGG_H => GGGGGGGGGGGG

私が得た式は、次の最後のインデックスに基づいています: EXCEL LAST INDEX OF

=RIGHT(LEFT(A2,SEARCH("@",SUBSTITUTE(A2,"_","@",LEN(A2)-LEN(SUBSTITUTE(A2,"_",""))))-1),LEN(LEFT(A2,SEARCH("@",SUBSTITUTE(A2,"_","@",LEN(A2)-LEN(SUBSTITUTE(A2,"_",""))))-1))-SEARCH("@",SUBSTITUTE(LEFT(A2,SEARCH("@",SUBSTITUTE(A2,"_","@",LEN(A2)-LEN(SUBSTITUTE(A2,"_",""))))-1),"_","@",LEN(LEFT(A2,SEARCH("@",SUBSTITUTE(A2,"_","@",LEN(A2)-LEN(SUBSTITUTE(A2,"_",""))))-1))-LEN(SUBSTITUTE(LEFT(A2,SEARCH("@",SUBSTITUTE(A2,"_","@",LEN(A2)-LEN(SUBSTITUTE(A2,"_",""))))-1),"_","")))))

これをもっと複雑にしないようにする必要があります、何かアイデアはありますか?

4

3 に答える 3

8

Try this

=TRIM(LEFT(RIGHT(SUBSTITUTE(H3,"_",REPT(" ",100)),200),100))

Note, if any of the segments could be longer than 50 characters, increase the 100 and 200 figures accordingly

于 2012-11-06T10:26:43.313 に答える
2

別のバリエーションがあります.....

=MID(A1,FIND("^",SUBSTITUTE(A1,"_","^",LEN(A1)-LEN(SUBSTITUTE(A1,"_",""))-1))+1,SUM(FIND("^",SUBSTITUTE(A1,"_","^",LEN(A1)-LEN(SUBSTITUTE(A1,"_",""))-{0,1}))*{1,-1})-1)

于 2012-11-06T14:22:23.703 に答える
2

The solution of chris is quite neat - however, I came up with an alternative too.

=MID(A1,1+SEARCH("@", 
     SUBSTITUDE(A1,"_","@",LEN(A1)-1-LEN(SUBSTITUDE(A1,"_","")))),
     SEARCH("@",SUBSTITUDE(A1,"_","@",LEN(A1)-LEN(SUBSTITUDE(A1,"_",""))))-1-
     SEARCH("@",SUBSTITUDE(A1,"_","@",LEN(A1)-1-LEN(SUBSTITUDE(A1,"_","")))))
于 2012-11-06T10:44:22.693 に答える