我有一个相当长的 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)
它来查找相应的值。