我想按此顺序在单元格上运行以下公式,以防前一个公式返回错误。
=MID(P2,SEARCH("q=",P2)+2,SEARCH("&",P2)-SEARCH("q=",P2)-2)
=MID(P2,SEARCH("p=",P2)+2,SEARCH("&",P2)-SEARCH("p=",P2)-2)
=RIGHT(P2,LEN(P2)-FIND("q=",P2)-1)
=RIGHT(P2,LEN(P2)-FIND("p=",P2)-1)
我该如何定义它?
答案1
我已经设法使用 IFERORR 内的多个 IFERROR 来实现此目的:
=IFERROR(MID(R167,SEARCH("q=",R167)+2,SEARCH("&",R167)-SEARCH("q=",R167)-2),IFERROR(MID(R167,SEARCH("p=",R167)+2,SEARCH("&",R167)-SEARCH("p=",R167)-2),IFERROR(RIGHT(R167,LEN(R167)-FIND("q=",R167)-1),IFERROR(RIGHT(R167,LEN(R167)-FIND("p=",R167)-1),zzzzzz))))
答案2
使用IFERROR()
公式是一个不错的选择。但是,你应该避免使用一个巨大的公式,这是一种不好的做法,如果你的公式出现问题,它会太大而无法调试。我会选择在四个单独的列中使用这个
A2
=IFERROR(MID(P2,SEARCH("q=",P2)+2,SEARCH("&",P2)-SEARCH("q=",P2)-2),0)
B2
=IF(A2=0,0,MID(P2,SEARCH("p=",P2)+2,SEARCH("&",P2)-SEARCH("p=",P2)-2))
C2
=IF(B2=0,0,RIGHT(P2,LEN(P2)-FIND("q=",P2)-1),0)
D2
=IF(C2=0,0,RIGHT(P2,LEN(P2)-FIND("p=",P2)-1),0)
最后一个简单的SUM
就足够了
E2
=SUM(A2:D2)
您可以隐藏/分组列A到德,但这样你就能看到答案