如何编写复杂的 Excel 2013“与”“或”函数

如何编写复杂的 Excel 2013“与”“或”函数

我有一个相当长的 excel 公式需要帮助。我有一个电子表格,其中大约5600 rows有相同的重复项 ~73。不过,在每一组中,并不是所有 73 个项都存在。

我需要用与前两列相对应的数据填充第三列。

我的公式大致如下:

=IF(OR(AND(C61="Rundersnippers",D61="Naam 产品"),"BP1001_RS"), (AND(C61="Rundersnippers",D61="Naam 杠杆"),"BP1002_RS"), (AND(C61="Rundersnippers",D61="Plaats 杠杆"),"BP1003_RS"), (AND(C61="Rundersnippers",D61="EG nr. op verpakking"),"BP1004_RS"),

Excel 不太喜欢这种情况。我该如何修复?

答案1

您使用了无效的语法。

您的公式的第一个错误是OR()语句。该OR()语句的工作方式与AND()语句相同,只是如果满足任何条件,它就会返回 true - 而不是满足所有条件。从上面的例子中可以看出,它是不必要的,应该删除。

您的公式的第二个错误是您错误地嵌套了IF()语句(或者更准确地说,根本没有包括它们)。语句的语法IF()是:

=IF([logic_test], [value_if_true], [value_if_false])

要嵌套IF()语句,您需要编写一个附加IF()语句来代替[value_if_false]参数。即

=IF([logic_test], [value_if_true],
   IF([logic_test], [value_if_true], [value_if_false])
 )

从上面来看,你的公式应该是这样的:

=IF(AND(C61="Rundersnippers", D61="Naam product"), "BP1001_RS",
   IF(AND(C61="Rundersnippers", D61="Naam Leverancier"), "BP1002_RS",
     IF(AND(C61="Rundersnippers", D61="Plaats leverancier"), "BP1003_RS",
       // And so on..
     )
   )
 )

然而,我强烈建议你重新考虑你的方法。一个好的经验法则是:如果公式重复性太强,那你就做错了。

考虑合并 A 列和 B 列的值(=A1&"-"&B1),然后从单独的表中索引这些值。即

Data

| Foo            | Bar                | Baz       |
| -------------- | ------------------ | --------- |
| Rundersnippers | Naam product       |           |
| Rundersnippers | Naam Leverancier   |           |
| Rundersnippers | Plaats leverancier |           |

Index

| Index                             | Value     |
| --------------------------------- | --------- |
| Rundersnippers-Naam product       | BP1001_RS |
| Rundersnippers-Naam Leverancier   | BP1002_RS |
| Rundersnippers-Plaats leverancier | BP1003_RS |

然后在您的Data标签中,使用=VLOOKUP(A2&"-"&B2, Index!A:B, 2, FALSE)它来查找相应的值。

相关内容