Excel中的逻辑运算符If循环

所以这个工作:

=IF(OR(D2="MEXICO",D2="TURKEY",D2="CHINA",D2="BRAZIL",D2="INDIA",D2="INDONESIA",D2="POLAND",D2="COLOMBIA",D2="ARGENTINA",D2="PHILIPPINES"),D2,"Others") 

但是这不是

 =IF(D2=OR("MEXICO","TURKEY","CHINA","BRAZIL","INDIA","INDONESIA","POLAND","COLOMBIA","ARGENTINA","PHILIPPINES"),D2,"Others") 

有没有办法避免每一次写入D2 =? 我正在查看是否可以在多个地方使用标准..说在另一张表我也有国家名称,但只是不在列“D”。

我build议你在某个表格的某个栏目中创build一个国家/地区名称列表,并将其用作查找您需要的地方。 你可以用这个数据创build一个单独的表格,比如数据表。

假设你有一个A1:A25数据表的国家列表,你可以这样做:

  =IF(COUNTIF(datasheet!A1:datasheet!A25, D2) <> 0, D2, "Other") 

另外,如果我期望他们将来会改变的话,我会为这组国名创build一个命名范围 。 这样我的公式将引用名称,如果我添加国家,我不必更改公式。

你可以使用这样的东西:

 =IF(ISERROR(VLOOKUP(D2,{"MEXICO","TURKEY"},1,0)),"Others",D2) 

另外,@ barryhoudinibuild议,在Excel 2007或更高版本中,您可以使用:

 =IFERROR(VLOOKUP(D2,{"MEXICO","TURKEY"},1,0),"Others") 

有可能使用OR但是您需要稍微改变语法 – 就像这样

=IF(OR(D2={"MEXICO","TURKEY","CHINA","BRAZIL","INDIA","INDONESIA","POLAND","COLOMBIA","ARGENTINA","PHILIPPINES"}),D2,"Others")

或者,这应该为你工作:

 =IF(ISNA(MATCH(D2, {"MEXICO","TURKEY","CHINA","BRAZIL","INDIA","INDONESIA","POLAND","COLOMBIA","ARGENTINA","PHILIPPINES"}, 0)), "Others", D2)