我有一个Excel表格,前六列的值为1
或2
。接下来的六列与前六列相关联,并且具有需要平均的值 - 将根据前六列中是否存在1
或2
值来计算两个平均值。然后,根据两个平均值,最后六列需要分配一个等于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必须标有H
或L
,具体取决于列G-L中的相应值是高(H)还是低(L)平均值的一部分。在这种情况下,由于列I和L具有较大的平均值,因此需要为列O和R分配H
。其他列(M,N,P和Q)将被分配L
,因为它们的关联列(G,H,J,K)具有较低的平均值。
答案 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”,因为它具有更高的平均值。
无论如何,希望你能找到一个更简单的方法,但是如果你不能,那么这个方法应该可行。