当我在 Excel 中尝试这样做时,我似乎无法弄清楚正确的使用方法FIND
SEARCH
MID
。LEFT
以下是一个字符串的示例:
""["{\".tag\": \"file\", \"path\": {\"namespace_relative\": {\"ns_id\": \"7967408752\", \"relative_path\": \"/Assets Creative/National/2021 Brand Winter/Web/Nana-FR-16x9_WEB15F.mp4\", \"is_shared_namespace\": true}}, \"display_name\": \"Tana-FR-16x9_WEB15F.mp4\", \"file_id\": \"id:rAWlCkcfulAAAAAAAAKx4g\"}"]""
附有引文。
都在同一个电子表格中。我试图提取以下之间的文本:
"relative_path\": \"
和", \"is_shared_namespace\": true}},
因此这将是(字符串中Assets Creative/National/2021 Brand Winter/Web/Nana-FR-16x9_WEB15F.mp4
没有/
and )\
我会继续努力,但非常感谢大家的帮助。
编辑 我想我得到了答案:
=MID(M4,FIND("/Ass",M4)+1,FIND("is_shared",M4)-FIND("/Ass",M4)-7)
我不确定这是正确答案还是最佳答案,但它输出了目前我需要的内容。我现在担心的是文件是否不以 mp4 结尾
谢谢,
答案1
对此有很多解决方案。当我考虑用逗号分隔的地址字符串时,我已将所有这些解决方案都收集在了这篇文章中。
http://www.mkrgeo-blog.com/good-way-to-sanitizing-a-bulk-address-list-part-1-excel-vba/
我认为,您可以考虑 FILTERXML 函数:
=FILTERXML(“<t><s>”&SUBSTITUTE(F1,”, “,”</s><s>”)&”</s></t>”,”//s[position()=last()-1]”)
或 MID 函数,正如你所说:
=MID(A1, SEARCH(“,”,A1) + 1, SEARCH(“,”,A1,SEARCH(“,”,A1)+1) – SEARCH(“,”,A1)-1)
尽管 MID 和 FILTERXML 函数之间的差异很大,但 MIN() 函数允许我们在第一个字符出现后立即提取文本。通过使用 FILTERXML() 函数,您可以从长字符串中的任何随机位置提取字符串,只要您不会在顺序计算中迷失方向即可。每个特定字符的出现,而空格应从左到右计算。
在这种情况下,当您需要从主字符串中间获取两个子字符串时,您可以扩展上述公式:
=TEXTJOIN(“, “,,FILTERXML(“<t><s>”&SUBSTITUTE(A1,”, “,”</s><s>”)&”</s></t>”,”//s[position()=2 or position() =3]”))
添加 TEXTJOIN() 函数后,所有内容都会放在一个单元格中(不会溢出)。
=MID(A1, SEARCH(“,”,A1) + 1, SEARCH(“,”,A1,SEARCH(“,”,A1,SEARCH(“,”,A1)+1)+1) – SEARCH(“,”,A1)-1)
在这里查看更多提示:
https://www.ablebits.com/office-addins-blog/2016/06/01/split-text-string-excel/
https://stackoverflow.com/questions/61837696/excel-extract-substrings-from-string-using-filterxml
https://stackoverflow.com/questions/65955114/vba-excel-if-condition-for-splitting-address-columns
答案2
=MID(A1,FIND(String1,A1)+LEN(String1)+1,FIND(String2,A1)-(FIND(String1,A1)+LEN(String1)+1)-1)
或者,如果您想对字符串进行硬编码,则需要用双引号来转义双引号:
=MID(A1,FIND("""relative_path\"": \""",A1)+LEN("""relative_path\"": \""")+1,FIND(""", \""is_shared_namespace\"": true}}",A1)-(FIND("""relative_path\"": \""",A1)+LEN("""relative_path\"": \""")+1)-1)