汇总一个单元格中的嵌套IF语句的结果

时间:2019-04-15 11:43:33

标签: excel if-statement nested sum range

我有一个非常复杂的条件公式,适用于列的每一行(对不起,没有excel 2016 IFS),我想在一个公式中获得一个范围内所有实例的总和,而不必使所有行作为中间步骤。

在其他方面做了很多工作,但是由于某种原因,我坚持使用了这个。

每个单元格的公式为:

=IF((IF(IF(AND(ISNUMBER(Test_Samples!B2),Test_Samples!B2>0.1),Reference_Dataset!$H:$H,"")="N",Test_Samples!B2,0)<1),0,IF(IF(IF(AND(ISNUMBER(Test_Samples!B2),Test_Samples!B2>0.1),Reference_Dataset!$H:$H,"")="N",Test_Samples!B2,0)<2,1,IF(IF(IF(AND(ISNUMBER(Test_Samples!B2),Test_Samples!B2>0.1),Reference_Dataset!$H:$H,"")="N",Test_Samples!B2,0)<5,2,IF(IF(IF(AND(ISNUMBER(Test_Samples!B2),Test_Samples!B2>0.1),Reference_Dataset!$H:$H,"")="N",Test_Samples!B2,0)<13,3,IF(IF(IF(AND(ISNUMBER(Test_Samples!B2),Test_Samples!B2>0.1),Reference_Dataset!$H:$H,"")="N",Test_Samples!B2,0)<34,4,IF(IF(IF(AND(ISNUMBER(Test_Samples!B2),Test_Samples!B2>0.1),Reference_Dataset!$H:$H,"")="N",Test_Samples!B2,0)<91,5,IF(IF(IF(AND(ISNUMBER(Test_Samples!B2),Test_Samples!B2>0.1),Reference_Dataset!$H:$H,"")="N",Test_Samples!B2,0)<245,6,IF(IF(IF(AND(ISNUMBER(Test_Samples!B2),Test_Samples!B2>0.1),Reference_Dataset!$H:$H,"")="N",Test_Samples!B2,0)<666,7,))))))))

我想将其转换为一个公式,该公式可以一次性汇总B:B(或B2:B499)范围内的所有内容。

我尝试了一些SUM和SUMIF(S),然后将B2更改为B:B。这似乎行不通。

哦,如果有人提示将嵌套的IF公式简化为更易读的内容,那也是受欢迎的。公式的想法是将计数转换为类。

所引用的数据集如下:

Test_Samples:

enter image description here

Reference_Dataset:

enter image description here

If语句构成如下分类:

0 = 0

1 = 1

2 = 2-4

3 = 5-12

4 = 13-33

5 = 34-90

6 = 91-244

7 = 245-665

8 = 666+

在这里您看到“ Test_samples”中的计数为2,并且在“ Reference_dataset”中将其标记为“ N”,因此结果将其归类为“ 2”(为避免混淆:如果计数为5,则将其标记为根据课程标准为“ 3”)。 假设如果有5个实例的结果“ 2”在B2:B499范围内,则总和应为10。

1 个答案:

答案 0 :(得分:2)

为您的“结果值

Test_Samples B Value
0
1
2
5
13
34
91
245
666

在此示例中,我将其放在公式所在的同一工作表上,放在单元格A1:A10中(A1中的标题,因此A2:A10中的数据值)。然后,您可以简化公式并使其像这样引用数据范围:

=SUM(MATCH(IF(ISNUMBER(Test_Samples!$B$2:$B$499)*(Reference_Dataset!$H$2:$H$499="N"),Test_Samples!$B$2:$B$499,0),$A$2:$A$10)-1)

请注意,这是一个数组公式,因此必须使用 Ctrl Shift Enter (而不是仅 Enter < / kbd>)。