我正在处理Excel电子表格,并希望在单元格中使用if语句,如果满足某个条件则允许用户输入,否则计算一个值。像
这样的东西=if(condition true, whatever user wants, 5*$A$1,)
有办法做到这一点吗?
答案 0 :(得分:1)
您无法在与公式相同的单元格中输入用户输入。 (不使用VBA)
要在没有VBA的情况下执行此操作,您需要使用至少2个单元格,一个包含您的公式,另一个包含用户值
有几种方法可以使用VBA
这是一个简单的,但不会真正推荐它,如果很多单元格使用它,你会得到很多输入框!
用法:=IF(condition, UserInput(), false result)
Public Function UserInput() As Integer ' used integer as an example
Dim Result As Variant
Result = Application.InputBox("Enter an Integer", "Input Required", , , , , , 1) ' inputbox, the final 1 makes it only accept numbers
If VarType(Result) = vbBoolean Then
UserInput = 0 ' the default value
Else
UserInput = CInt(Result) ' make sure its an integer
End If
End Function
另一个,将涉及使用选择更改和单元格更改事件来读取正在更改的单元格的初始值,并允许更改(将值添加到初始公式' s" true&#34 ;通过将单元格公式恢复为初始公式来阻止或拒绝更改。
答案 1 :(得分:0)
您需要使用宏来仅更新空列,或者您需要允许用户在另一列中输入值,然后合并此列中的值,第三个选项是用公式填充它并允许人们编辑它如果他们只想要值
,任何价值答案 2 :(得分:0)
=IF(C11="Economic",120,IF(C11="DBServer",480,IF(C11="Gamer",120,IF(C11="Custom",M15,"null"))))
我的例子是在给定某些约束的情况下构建最佳计算机。有Economic
,DBServer
,Gamer
和Custom
作为选项的下拉列表。如果你选择经济,那么120将显示在单元格中,DbServer意味着480,等等。如果您选择自定义,那么它将引用单元格M15,这是一个用户输入,不会影响您想要的单元格的代码最终号码。