单元格中“Loose Stacked”选项没有返回数值,而是返回“FALSE”,而所有其他选项“Barrel Stacked”和“Laced”都返回正确值,除了“Loose Stacked”。我尝试在公式中的值周围添加“”,但得到的仍然是 FALSE,而不是值。
如果语句:
=IF(AND(B10="Loose Stacked",D9<=10),10,IF(AND(B10="Loose Stacked",D9<=15),12,IF(AND(B10="Loose Stacked",D9>15),14,IF(AND(B10="Barrel Stacked",D9<=10),12,IF(AND(B10="Barrel Stacked",D9<=15),14,IF(AND(B10="Barrel Stacked",D9>15),16,IF(AND(B10="Laced",D9<10),14,IF(AND(B10="Laced",D9<=15),16,IF(AND(B10="Laced",D9>15),18)))))))))
答案1
您的公式看起来不错,可能是因为参数太多超出了 Excel 的限制。不同版本的 Excel 可能有不同的限制,我没有研究限制是什么 - 但当您达到限制时,它可能会使您的公式不可读且不易维护或调试。
对于您的问题,您可以使用以下方法获得类似的VLOOKUP()
结果MATCH()
:
这里我在 处添加了一个查找表F5:I7
。对于任何大于 0 的值(即单元格 F5),将返回第 5 行;对于从 10 开始的值(即单元格 F6),将返回第 6 行,等等。这是通过=VLOOKUP(...)
解决方案的一部分完成的。
我们需要告诉VLOOKUP
返回哪一列(即 G/H/I 列)。它是 的第 3 个参数VLOOKUP
,我用它MATCH(B10,$F$4:$I$4,0)
来确定返回哪一列。该MATCH()
函数在单元格范围内搜索指定的项目,然后返回该项目在范围内的相对位置。
例如,当从 中搜索“Loose Stacked”时F4:I4
,由于它是第二项,因此2
从 返回。变为,因此返回或值 12。MATCH(B10,$F$4:$I$4,0)
VLOOKUP(10,F5:I7,MATCH(...))
VLOOKUP(10,F5:I7,2)
G6
VLOOKUP
与嵌套相比,使用嵌套的好处IF
是公式的可读性和可维护性更好。如果将来需要更改任何内容,只需更改表格即可。