当我将公式应用于范围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")
再次失败,该公式不计算在内。为什么公式在水平方向上不起作用?
答案 0 :(得分:3)
您可以使用以下命令保存一些键入内容:
=IF(SUMPRODUCT(--(NOT(EXACT(UPPER(RIGHT(B4:C4,2)),RIGHT(B4:C4,2))))),"LOWERCASE DETECT","CORRECT")
公式的错误是您创建了一个水平数组,将其与水平数组进行比较,该水平数组必须为相同的数字并进行一对一比较。
您需要转置值数组:
=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")