sha*_*man 4 excel excel-formula
我有以下示例数据:
1. animated_brand_300x250
2. animated_brand_300x600
3. customaffin_greenliving_solarhome_anim_outage_offer
Run Code Online (Sandbox Code Playgroud)
如何从 Microsoft Excel 中的最后一个下划线中提取字符串?
我想在第一个下划线之前和最后一个下划线之后提取值。
第一个下划线:
=LEFT(B6,SEARCH(“_”,B6)-1)
Run Code Online (Sandbox Code Playgroud)
将返回animated并customaffin作为输出。
如何返回最后一个下划线后的字符串?
_您可以使用该函数找到最后一个之后的字符串RIGHT。棘手的部分是找到最后一个 的位置_。
首先,我们需要确定有多少个_。_这可以通过删除所有字符串并比较两个字符串的长度来完成:
LEN(A1)-LEN(SUBSTITUTE(A1;"_";""))
Run Code Online (Sandbox Code Playgroud)
由于我们现在知道我们必须查找第二次出现的 _,因此我们可以使用该SUBSTITUTE函数将第二次出现的 替换_为另一个字符(这必须是不属于原始字符串的字符 - I已经选择#)。
现在,我们使用该FIND函数来搜索字符的位置#。现在可以将此位置传递给该RIGHT函数。
你的最终公式将是:
=RIGHT(A1;LEN(A1)-FIND("#";SUBSTITUTE(A1;"_";"#";LEN(A1)-LEN(SUBSTITUTE(A1;"_";"")));1))
Run Code Online (Sandbox Code Playgroud)
其他一些选择可能是:
=TRIM(RIGHT(SUBSTITUTE(A1,"_",REPT(" ",100)),100))
Run Code Online (Sandbox Code Playgroud)
或者使用FILTERXML,理论上是一个更好的选择:
=FILTERXML("<t><s>"&SUBSTITUTE(A1,"_","</s><s>")&"</s></t>","//s[last()]")
Run Code Online (Sandbox Code Playgroud)
ExcelO365 独占方法甚至可以使用XLOOKUP:
=REPLACE(A1,1,XLOOKUP("_",MID(A1,SEQUENCE(LEN(A1)),1),SEQUENCE(LEN(A1)),,0,-1),"")
Run Code Online (Sandbox Code Playgroud)
或者:
=RIGHT(A1,MATCH("_",MID(A1,SEQUENCE(LEN(A1),,LEN(A1),-1),1),0)-1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1869 次 |
| 最近记录: |