如何修复返回#VALUE的Excel编码

时间:2019-04-02 07:45:32

标签: excel excel-formula

我在Excel中有一列,该列基于另一列上的字符串返回值。例如,列A包含字符串:

"(1) Missing Data For 1 Runs..(20%)" 

,并且在B列中是:"20"。 B列中的公式为:

 "=IF(ISBLANK(N14),"",(MID(RIGHT(N14,9),SEARCH("(",RIGHT(N14,9))+1,SEARCH(")",RIGHT(N14,9))-SEARCH("(",RIGHT(N14,9))-1)+0)*100)".

此公式适用于具有不同百分比(例如30%,25%等)的相似字符串,包括A列中没有字符串或值,而B列中返回空值。

但是,列A中还有其他字符串,例如

"(2) This spare part underwent repairs.." 

其中公式在B列中返回#VALUE。此外,还有其他字符串将这两个字符串组合在一起,例如

"(1) Missing Data For 1 Runs..(17%) 
(2) This spare part underwent repairs ..", 

在B列中也返回#VALUE

在这种情况下,返回另一列百分比数字的公式是什么?

1 个答案:

答案 0 :(得分:1)

好吧,根据您的反馈,如果每个单元格只包含百分比,请使用“%”作为搜索的锚点(而不是像您一样的括号)。尝试关注

=IFERROR(VALUE(MID(A13,SEARCH("%",A13)-2,2)),IFERROR(VALUE(MID(A13,SEARCH("%",A13)-1,1)),""))

它如何工作

VALUE(MID(A13,SEARCH("%",A13)-2,2))

将查找百分比有2位数字的所有实例,如果返回2位数字作为值,则其他所有内容都会引发错误,第二部分适用。第二部分

IFERROR(VALUE(MID(A13,SEARCH("%",A13)-1,1)),"")

将查找所有具有一位数字百分比的实例,并将该一位数字作为值返回。其他所有内容都会引发错误,并返回空白。