根据标准平均然后输出

时间:2015-10-08 22:13:21

标签: excel

我有一个Excel表格,前六列的值为12。接下来的六列与前六列相关联,并且具有需要平均的值 - 将根据前六列中是否存在12值来计算两个平均值。然后,根据两个平均值,最后六列需要分配一个等于H(高平均值)或L(低平均值)的值。这很难解释,所以这里有一个例子:

   A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R
1  2  2  1  2  2  1  8  8  9  8  6  8  L  L  H  L  L  H  

C列和F列的值等于1,因此需要对列I和L求平均值。然后,因为列A,B,D和E具有等于2的值,所以需要对列G,H,J和K进行平均。与1(I和L)值相关联的列的平均值为8.5,以及与2(G,H,J和G)值相关联的列的平均值K)是7.5。现在,列M-R必须标有HL,具体取决于列G-L中的相应值是高(H)还是低(L)平均值的一部分。在这种情况下,由于列I和L具有较大的平均值,因此需要为列O和R分配H。其他列(M,N,P和Q)将被分配L,因为它们的关联列(G,H,J,K)具有较低的平均值。

2 个答案:

答案 0 :(得分:1)

请考虑将以下公式放在M列的第一行,然后复制到R列:

=IF(AVERAGEIF($A$1:$F$1,A1,$G$1:$L$1)=MAX(AVERAGEIF($A$1:$F$1,1,$G$1:$L$1),AVERAGEIF($A$1:$F$1,2,$G$1:$L$1)),"H","L")

逻辑是,如果A1上对应于1或2的值的平均值等于两者之间的计算的MAX,那么这对应于高数字。如果不是,则它对应于Low值。请注意,这不考虑平均值何时相等,在这种情况下所有条目都记为高。您可以通过添加公式来检查该值是否等于MIN。希望这可以帮助。的问候,

答案 1 :(得分:0)

如果您不想使用Visual Basic,可以使用此方法,但可能需要更多列。

    xx A B C D E F G H I J K L
    1  2 2 1 2 2 1 8 8 9 8 6 8

对于单元格M1输入:= if(A1 = 1,G1,“”)
请注意,这是G1术语后连续两行的常规引号(“)。” 将其复制到单元格M1-R1 现在,单元格M1-R1应仅包含标有1的列的数据 接下来对于单元格S1输入:= average(M1:R1)
这不应该考虑空白单元格,所以你应该只有“1”单元格的平均值
现在复制“2”单元格的过程: 对于单元格T1输入:= if(A1 = 2,G1,“”)
将其复制到单元格T1-Y1 对于单元格Z1,输入:= average(T1:Y1)

现在对于单元格AA1输入:= if(S1> Z1,1,2)
现在AA1将拥有平均值更高的数字。因此,如果“1”细胞具有更高的平均值,则细胞AA1将是1,否则它将是2 现在,对于单元格AB1,输入= if(A1 = $ AA1,“H”,“L”)
将AB1复制到AB1到AG1的单元格,您就完成了
细胞AB1-AG1将具有你的H和L's。请注意,这种方法有一个缺点,除了它有点复杂,即如果平均值相等,它仍然会打印“2”,因为它具有更高的平均值。

无论如何,希望你能找到一个更简单的方法,但是如果你不能,那么这个方法应该可行。