EXACT函数是否在数组公式中返回“#N / A”错误?

时间:2019-08-13 18:57:33

标签: excel excel-formula

当我将公式应用于范围B3:B7时,它可以很好地工作。当我将公式应用于范围B4:C4时,效果并不理想。该公式将检测范围内的小写字母。

垂直:=IF(SUM(EXACT(IFERROR(LEFT(RIGHT(B3:B7,LEN(B3:B7)-SEARCH(" ",B3:B7,1)),2),""),{"Bb","Yb","Zb","Eb","Pb","Tb","Gb","Mb","Kb","bB","yB","zB","eB","pB","tB","gB","mB","kB","bb","yb","zb","eb","pb","tb","gb","mb","kb"})+0)>=1,"LOWERCASE DETECT","CORRECT")

水平:=IF(SUM(EXACT(IFERROR(LEFT(RIGHT(B4:C4,LEN(B4:C4)-SEARCH(" ",B4:C4,1)),2),""),{"Bb","Yb","Zb","Eb","Pb","Tb","Gb","Mb","Kb","bB","yB","zB","eB","pB","tB","gB","mB","kB","bb","yb","zb","eb","pb","tb","gb","mb","kb"})+0)>=1,"LOWERCASE DETECT","CORRECT")

公式返回#N / A错误。

=IF(SUM({0,0,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A})>=1,"LOWERCASE DETECT","CORRECT")

我尝试使用IFNA()捕获#N / A,但未成功:

=SUM(IFNA(EXACT(IFERROR(LEFT(RIGHT(B4:C4,LEN(B4:C4)-SEARCH(" ",B4:C4,1)),2),""),{"Bb","Yb","Zb","Eb","Pb","Tb","Gb","Mb","Kb","bB","yB","zB","eB","pB","tB","gB","mB","kB","bb","yb","zb","eb","pb","tb","gb","mb","kb"})+0,0))

公式返回0

=IF(SUM({0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0})>=1,"LOWERCASE DETECT","CORRECT")

再次失败,该公式不计算在内。为什么公式在水平方向上不起作用?

enter image description here

1 个答案:

答案 0 :(得分:3)

您可以使用以下命令保存一些键入内容:

=IF(SUMPRODUCT(--(NOT(EXACT(UPPER(RIGHT(B4:C4,2)),RIGHT(B4:C4,2))))),"LOWERCASE DETECT","CORRECT")

enter image description here


公式的错误是您创建了一个水平数组,将其与水平数组进行比较,该水平数组必须为相同的数字并进行一对一比较。

您需要转置值数组:

=IF(SUM(EXACT(IFERROR(LEFT(RIGHT(B4:C4,LEN(B4:C4)-SEARCH(" ",B4:C4,1)),2),""),TRANSPOSE({"Bb","Yb","Zb","Eb","Pb","Tb","Gb","Mb","Kb","bB","yB","zB","eB","pB","tB","gB","mB","kB","bb","yb","zb","eb","pb","tb","gb","mb","kb"}))+0)>=1,"LOWERCASE DETECT","CORRECT")

enter image description here