更改公式中使用的函数,使用在单独单元格中以文本形式存储的函数名称

更改公式中使用的函数,使用在单独单元格中以文本形式存储的函数名称

我有这个公式

=ROUNDUP(D12/(D6-D5),IFERROR(VLOOKUP(G9,reference!$C$2:$D$7,2,0),100))

并且我想ROUNDUP根据来自单独单元格的文本更改部分(例如,,F7其中文本可以是 ROUNDDOWNROUND)。

我尝试使用SUBSTITUTE()REPLACE()函数。以下是我的几次尝试:

=REPLACE("=ROUNDUP(…)",2,7,F7)*

=REPLACE(ROUNDUP(…),2,7,F7)

*此版本最终创建了正确的公式,但它显示为文本,而不是公式。我可以将其粘贴到另一个单元格中,它可以正常工作。所以我尝试*1在此公式中添加,但仍然不起作用。

一种解决方法是使用嵌套IF,但这会创建太多行,所以我希望有另一种选择。

答案1

您可以使用CHOOSEMATCH功能,虽然仍然不是最佳的,但比以下更好IF

=CHOOSE(MATCH(F7,{ROUND,ROUNDUP,ROUNDDOWN},0),ROUND(D12/(D6-D5),ROUNDUP(D12/(D6-D5),ROUNDDOWN(D12/(D6-D5))

相关内容