你要一填写就变负数,只能在设置单元格中,数字自定义中,类型中写入' -# ',确定,然后你填入的数字自动就变负数了。
如果你又想在单元格输入数字,又要在单元格判定自己。不是自相矛盾吗。什么公式自己也被自己消除了啊。
我觉得要不就是VBA写程序,要不就在旁边加一行辅助行。
公式是=IF($A$1="出售",-A2,A2),也能达到判定效果。
如果你想在原单元格中实现估计只能用VBA了,如果不在原单元格实现可以按照“易推到的正太”他说的加一列辅助列通过IF()函数实现
VBA的代码如下
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.EnableEvents = False
If Target.Count = 1 Then
If Target.Row = 1 And Target.Column = 1 And Target.Value = "出售" Then
[a2] = "-" & [a2]
[a3] = "-" & [a3]
[a4] = "-" & [a4]
[a5] = "-" & [a5]
ElseIf Target.Row = 1 And Target.Column = 1 Then
[a2] = Abs([a2])
[a3] = Abs([a3])
[a4] = Abs([a4])
[a5] = Abs([a5])
End If
End If
Application.EnableEvents = True
End Sub
附件中文件供参考。
注意:由于用到了宏,所以需要将Excel的宏安全性改为中或低并重新打开Excel,否则无法运行,同时这个只是根据你的问题所写的,即当你A1=出售时,只会将A2:A5中的数值改为负。如果有其它要求可继续追问。