我要简化一点点希望能够找到我的问题的关键。
我有一个电子表格,其中一个单元格包含大量公式。(再次强调,我简化了公式,以避免问题太长而无人阅读)。
在最后一刻,引入了一个新变量。如果这个新变量小于该公式的值,则公式应该返回这个新变量。
这是对 MIN() 函数的完美使用,但我在让 MIN() 函数使用复杂公式(其中包含许多 IF 语句)作为其参数之一并使用数据范围作为另一个参数时遇到了挑战。
例如,这不起作用:
MIN(NEW_DATA_RANGE,如果(x=y/pi...))
NEW_DATA_RANGE
包含新变量的数据范围在哪里。
如果我NEW_DATA_RANGE
用文字常量替换,它工作正常。同样,如果我用文字常量替换公式,它工作正常。但是当我尝试取数据范围内值的 MIN() 时和对于复杂的公式,LibreOffice 总是返回零 (0)。
这可能是 LibreOffice Calc 中的一个错误,还是因为某种原因您不能使用数据范围和复杂公式作为 MIN() 函数的参数?
答案1
虽然文档对此没有特别说明,但 MIN() 需要将单元格范围或值列表作为参数。由于函数返回值,因此 MIN() 的其他参数也必须是值。因此,您需要将 NEW_DATA_RANGE 作为参数传递给另一个返回值的函数。例如。
=MIN(MIN(NEW_DATA_RANGE),IF(x=y/pi...))
如果 NEW_DATA_RANGE 可以包含空单元格
=IF(ISEMPTY(A),IF(x=y/pi...),MIN(MIN(A),IF(x=y/pi...)))
我将用用户定义的函数替换 IF(...)。