excel某一单元格输入特定文本后指定的单元格输入的数字显示负数

比如在a1输入出售 a2 a3 a4 a5 单元格所输入的正数自动转换成负数
2026-05-18 08:44:38
推荐回答(2个)
回答1:

你要一填写就变负数,只能在设置单元格中,数字自定义中,类型中写入' -# ',确定,然后你填入的数字自动就变负数了。

如果你又想在单元格输入数字,又要在单元格判定自己。不是自相矛盾吗。什么公式自己也被自己消除了啊。
我觉得要不就是VBA写程序,要不就在旁边加一行辅助行。
公式是=IF($A$1="出售",-A2,A2),也能达到判定效果。

回答2:

如果你想在原单元格中实现估计只能用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中的数值改为负。如果有其它要求可继续追问。