如何使一个单元格值依赖于多个单元格(> 2)

时间:2018-01-09 16:37:33

标签: excel loops if-statement decision-tree

我有一个固定值,在表格的一行末尾,让我们说9,000。 我希望这个9,000的值依赖于在9,000之前的三个单元格(与9,000值相同的行)中输入yes或no。

例如:

if YES to question 1, then multiply 9,000 by .05, call this new value `x` 
if NO to question 1, then multiply 9,000 by 1. call this new value `x` 
if YES to question 2, then multiply x by .1, call this new value `x_2` 
if NO to question 2, then multiply x by 1, call this new value `x_2` 
if YES to question 3, then multiply x_2 by .075, call this new value `x_3` 
if NO to question 3, then multiply x_2 by 1, call this new value `x_3`

我尝试使用以下if语句:

让我们说单元格D1 = 9,000

=IF(A1="YES",D1*.05,
     IF(A1="NO",D1,
         IF(A2="YES",D1*.1,
             IF(A2="NO",D1,
                 IF(A3="YES",D1*.075,
                     IF(A3="NO",D1,"")
                   )
               )
           )
       )
   )

我的问题是,一旦输入YES的答案,9,000的值将更改为新值。

输入另一个YES后,再次更改值9,000。

但是,我希望从第一个YES获得的新值是受第二个和/或第三个YES影响的值。

1 个答案:

答案 0 :(得分:0)

你应该尝试简化你的问题

您可以在此处看到,您将获得的结果类似于A*B*C*D,其中包含:
A = 9000
B = 0.05(如果Q1 = YES),B = 1(如果Q1 = NO
C = 0.1(如果Q2 = YES),C = 1(如果Q2 = NO
D = 0.075(如果Q3 = YES),D = 1(如果Q3 = FALSE

所以我们可以改变你的公式:

=D1 * IF(A1="YES",0.05,1) * IF(A2="YES",0.1,1) * IF(A3="YES",0.075,1)

(假设,根据您提供的示例,D19000A1是问题1的答案,A2是问题2&# 39;答案和A3是问题3的回答)

如果您希望在答案既不是YES也不是NO(如果有人在问题中回答TEST)时会发生特殊情况,那么您可以在某些检查条件下注册:

=IF(AND( OR(A1="YES",A1="NO"), OR(A2="YES",A2="NO"), OR(A3="YES",A3="NO") ), 
    D1 * IF(A1="YES",0.05,1) * IF(A2="YES",0.1,1) * IF(A3="YES",0.075,1), 
    "Please answer YES or NO to the questions")