如果EXEEL中的其他情况

如何编写一个函数来计算

如果A = VARCHAR或CHAR,则将B值与E值进行比较,如果相同,则匹配'其他'不匹配'。

如果A = NUM​​ERIC,则将B值与F值和C值与G值进行比较,如果相同则匹配'其他'不匹配'

除VARCHAR / CHAR / NUMERIC外,“空白”

* NULL将其视为0

ABCDEFGH VARCHAR 8 0 VARCHAR 8 0 0 Match CHAR 8 0 CHAR 8 0 0 Match NUMERIC 19 2 NUMERIC 9 19 2 Match NUMERIC 1 NULL NUMEIC 5 1 0 Match NUMERIC 1 1 NUMERC 5 1 0 Not Match DATE 1 1 DATE 8 23 3 Blank 

这里是代码,如何将NULL值更改为0?

 =IF(OR(A1="VARCHAR",A1="CHAR"),IF(B1=E1,"MATCH","NOT MATCH"),IF(A1="NUMERIC",IF(AND(B1=F1,C1=G1),"MATCH","NOT MATCH"),"Blank")) 

用嵌套的IF语句将Null转换为零。

= IF(细胞= “空”,0,小区)

这里在列C和列G中转换值:

 =IF(OR(A1="VARCHAR",A1="CHAR"),IF(B1=E1,"MATCH","NOT MATCH"),IF(A1="NUMERIC",IF(AND(B1=F1,IF(C1="Null",0,C1)=IF(G1="Null",0,G1)),"MATCH","NOT MATCH"),"Blank")) 

你也可以使用这个略短的公式:

 =IF(OR(A4={"VARCHAR","CHAR"}),IF(B4=E4,"MATCH","NOT MATCH"),IF(A4="NUMERIC",IF(AND(B4=F4,IFERROR(1*C4,0)=G4),"MATCH","NOT MATCH"),"Blank")) 

OR(A4={"VARCHAR","CHAR"})是写OR(A1="VARCHAR",A1="CHAR")一种较短的方式。

IFERROR(1*C4,0)用于NULL部分。 只有当C4不是数字时, 1*C4返回一个错误,这就是C4为NULL 。 如果这是一个错误,那就用0代替。