用于向单元格添加数字的公式,如果该值大于特定数字,则更改该值

时间:2018-01-24 08:13:36

标签: excel excel-formula

在A栏中,我有1到30的数字,在B栏中,我想在A栏中加上10,即

如果A1是1我希望{B1}中的11和C1中我想要21
如果A2为2,我想在B2和C2中12,我希望22

我不希望B列和C列中的数字超过我在A列中的数字的最大限制,在这种情况下是30

我需要一个公式来实现这一目标,这样B列和C列中的任何一个单元都没有超过30的数字,如果加法超过了我希望从中减去30。我用IF尝试了这个,但它没有帮助,因为我不知道如何在添加数字之后操纵当前的单元格。

预期结果的屏幕截图: Screenshot of expected results

我希望B列中的数字与A列中的数字相加10,并且不应超过最大数量。

2 个答案:

答案 0 :(得分:1)

在B1中

也许

=A1+10-30*(A1+10>30)

并且在C1中,两者都被复制以适应:

=B1+10-30*(B1+10>30)

考虑到B1,通过将(A1+10>30)渲染为(A1>20),可以略微简化上述内容。

A1+10是基本要求。

条件是A1+10超过30,应该扣除30。这可以重写为"其中A1超过20"。

(A1>20)返回TRUE(当A1超过20时)和FALSE(否则)。

所有人都不感兴趣的是,当用作乘数时,Excel将TRUE视为1,将FALSE视为0

因此,当A1小于或等于20时,不会从A1 + 10中扣除任何内容。 30*(A1>20)变为30*FALSE(有效30*0),即0。但是,当A1超过20时,30*(A1>20)变为30*TRUE(有效30*1),即30

答案 1 :(得分:0)

B1的公式为:

=IF(A1+10>MAX($A$1:$A$30),A1+10-MAX($A$1:$A$30),A1+10)

(对于C1,只需从B1做“向右填充”。)

有时最好使用多个列来获得结果:

首先我在D1 =A1+10中创建,然后在E1 =MAX($A$1:$A$30)中创建。

$表示填充时列或行号不会改变,因此A1在每个单元格中保持固定为A1。

在F1中我创建了一个IF公式:=IF(D1>$E$1,D1-$E$1,D1)表示“ IF D1超过A1到A30的最高值那么减去D1的最高值 ELSE 只显示D1(= A1 + 10)“

如果你替换这些值:

(E1):=IF(D1>MAX($A$1:$A$30),D1-MAX($A$1:$A$30),D1)
(D1):=IF(A1+10>MAX($A$1:$A$30),A1+10-MAX($A$1:$A$30),A1+10)

你得到我刚才提到的结果。