Sco*_*ner 5 excel excel-formula
在现已删除的问题中,OP 要求返回1.3并0.4来自1^1.3%2^0.4。
我立即想到了 FILTERXML。
我能够做到这一点:
=MID(FILTERXML("<a><b>"&SUBSTITUTE(A1,"%","</b><b>")&"</b></a>","//b"),FIND("^",FILTERXML("<a><b>"&SUBSTITUTE(A1,"%","</b><b>")&"</b></a>","//b"))+1,99)
Run Code Online (Sandbox Code Playgroud)
但这似乎太重复了。
我substring-after在 XPATH 1.0 中找到了它,但无法让它执行我想要的操作。我首先尝试:
=FILTERXML("<a><b>"&SUBSTITUTE(A1,"%","</b><b>")&"</b></a>","//b[substring-after(., '^')]")
Run Code Online (Sandbox Code Playgroud)
但这返回了完整的字符串和:
=FILTERXML("<a><b>"&SUBSTITUTE(A1,"%","</b><b>")&"</b></a>","substring-after(//b, '^')")
Run Code Online (Sandbox Code Playgroud)
刚刚返回了一个错误。
有没有办法只使用 FILTERXML 返回所需的数字?
不幸的是,XPATH在 Excel 中似乎无法返回修改后的值,而是用于FILTERXML过滤和返回那些感兴趣的节点。重新设计这些节点需要在功能之外完成。
如果您对单次FILTERXML使用感兴趣,我建议使用两次SUBSTITUTE:
=FILTERXML("<a><b>"&SUBSTITUTE(SUBSTITUTE(A1,"^","^%"),"%","</b><b>")&"</b></a>","//b[contains(preceding::*[1],'^')]")
Run Code Online (Sandbox Code Playgroud)
或者:
=FILTERXML("<a><b>"&SUBSTITUTE(SUBSTITUTE(A1,"^","^%"),"%","</b><b>")&"</b></a>","//b[.*0=0]")
Run Code Online (Sandbox Code Playgroud)
您可能有兴趣通过FILTERXML. 也许这会让您感兴趣?
| 归档时间: |
|
| 查看次数: |
182 次 |
| 最近记录: |