Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何根据D/C列使我的号码变为正/负?_Excel - Fatal编程技术网

Excel 如何根据D/C列使我的号码变为正/负?

Excel 如何根据D/C列使我的号码变为正/负?,excel,Excel,我正试图在excel中找到一个合适的公式,根据包含借方和贷方选项的下拉列表,允许我的数字变为正/负。(例如,在B7-B45单元格中,我有一个选择借方和贷方的下拉列表。在E7-E45单元格中是金额列。因此,假设用户在“E7”中键入金额,如果他们从下拉列表中选择“贷方”,我希望该数字更改为“负数”。但是,如果他们选择“借方”从下拉列表中,他们输入的数字仍然是“正数”。您能再添加一列吗?那么这就是我建议的解决方案: =IF(B7="Credit",-1*E7,E7) 如果无法添加列,我将编写一个小

我正试图在excel中找到一个合适的公式,根据包含借方和贷方选项的下拉列表,允许我的数字变为正/负。(例如,在B7-B45单元格中,我有一个选择借方和贷方的下拉列表。在E7-E45单元格中是金额列。因此,假设用户在“E7”中键入金额,如果他们从下拉列表中选择“贷方”,我希望该数字更改为“负数”。但是,如果他们选择“借方”从下拉列表中,他们输入的数字仍然是“正数”。

您能再添加一列吗?那么这就是我建议的解决方案:

=IF(B7="Credit",-1*E7,E7)

如果无法添加列,我将编写一个小宏,例如:

Sub CheckValue()

For i = 7 To 45
    If ActiveSheet.Range("B" & i).Value = "Credit" Then
        If Sgn(ActiveSheet.Range("E" & i).Value) = 1 Then
            ActiveSheet.Range("E" & i).Value = ActiveSheet.Range("E" & i).Value * -1
        End If
    End If
Next i

End Sub

你能再加一列吗?那么这就是我建议的解决方案:

=IF(B7="Credit",-1*E7,E7)

如果无法添加列,我将编写一个小宏,例如:

Sub CheckValue()

For i = 7 To 45
    If ActiveSheet.Range("B" & i).Value = "Credit" Then
        If Sgn(ActiveSheet.Range("E" & i).Value) = 1 Then
            ActiveSheet.Range("E" & i).Value = ActiveSheet.Range("E" & i).Value * -1
        End If
    End If
Next i

End Sub

最简单的方法是:-
=-(num)

示例:-

=-(-1)输出:1

=-(1)输出:-1

最简单的方法是:-
=-(num)

示例:-

=-(-1)输出:1

=-(1)输出:-1

这个问题与本网站无关,因为它不是一个编程问题。我同意Joe的观点,这不是一个“我的代码有什么问题”的问题。作为开始OP的讨论,除非您有帮助器列,否则您将需要使用VBA。如果使用VBA,则使用工作表更改事件检测B列和E列中下拉列表(我假设其数据验证)中的单元格更改。然后根据B中的值,将E更改为+/-ABS(E中的值)。希望这能让你开始。谢谢@n贝利是的下拉列表是数据验证。我会用这种方法试试,看看结果如何。为什么不做相反的事情呢?如果
>0
中有“debit”,如果
中有“credit”,这个问题对于这个网站来说是离题的,因为它不是一个编程问题。我同意Joe的观点,这不是一个“我的代码有什么问题”的问题。作为开始OP的讨论,除非您有帮助器列,否则您将需要使用VBA。如果使用VBA,则使用工作表更改事件检测B列和E列中下拉列表(我假设其数据验证)中的单元格更改。然后根据B中的值,将E更改为+/-ABS(E中的值)。希望这能让你开始。谢谢@n贝利是的下拉列表是数据验证。我会用这种方法试试,看看结果如何。为什么不做相反的事情呢?如果
>0
在B中简单地用“借方”和
在B中用“贷方”这是我的难题,它只能是一个金额列,我认为不可能用公式表示。我和你做的完全一样,但那不是他们想要的格式。我只是想确保我没有遗漏任何东西。我试图锁定公式,这样我仍然可以更改值,如果需要的话,而不是让公式擦除,但这也是不可能的。有没有别的方法可以得到我需要的东西?是的,你可以用宏来实现。我添加了一段代码,说明如何解决它。需要在输入E列中的所有金额后运行。非常感谢!!不用担心,Tiffany。这是我的困境,它只能是一个金额列,我认为这不可能是公式方面的。我和你做的完全一样,但那不是他们想要的格式。我只是想确保我没有遗漏任何东西。我试图锁定公式,这样我仍然可以更改值,如果需要的话,而不是让公式擦除,但这也是不可能的。有没有别的方法可以得到我需要的东西?是的,你可以用宏来实现。我添加了一段代码,说明如何解决它。需要在输入E列中的所有金额后运行。非常感谢!!不用担心,蒂芙尼。