列excel的值的平均频率

时间:2016-07-21 00:40:23

标签: excel multiple-columns frequency

我正在寻找计算它们存在的0的平均频率IN BETWEEN每行的1。 我过去使用过Frequency&频率组合。列函数用于计算平均条纹(1或0)和Max Streak(1和0)。

Data Table

例如,行2,3,4&省略图6,因为没有1-0-1的序列发生。第5,7行和第5行8具有1-0-1的序列。对于这些,我不确定如何计算每行1的0之间的平均数。

非常感谢任何帮助,并提前致谢!

干杯

2 个答案:

答案 0 :(得分:0)

您可以使用例如=COUNTIF( $B5:$S5, 1 )来计算1和=COUNT( $B5:$S5 )以计算数字。您还可以查看FREQUENCY功能 如果这不能回答您的问题,请尝试提供一个较小的示例和您期望的数字。

答案 1 :(得分:0)

您可以使用数组公式获得创意。例如,尝试在单元格T2中输入此怪物公式作为数组公式(Ctrl + Shift + Enter)并填充。

=IFERROR(   2   *   AVERAGE(   IF(($B2:$R2=0)*($C2:$S2=1)*COLUMN($B2:$R2)*(COLUMN($B2:$R2) > COLUMN($B2)+MATCH(1,$B2:$S2,0)-1) - ($B2:$R2=1)*($C2:$S2=0)*COLUMN($B2:$R2)*(COLUMN($B2:$R2) < MAX(COLUMN($B2:$S2)*($B2:$S2=1)))  <>  0,  ($B2:$R2=0)*($C2:$S2=1)*COLUMN($B2:$R2)*(COLUMN($B2:$R2) > COLUMN($B2)+MATCH(1,$B2:$S2,0)-1) - ($B2:$R2=1)*($C2:$S2=0)*COLUMN($B2:$R2)*(COLUMN($B2:$R2) < MAX(COLUMN($B2:$S2)*($B2:$S2=1)))  )   ),   0)

没有详细说明,这是正在发生的事情:

  • ($B2:$R2=0)*($C2:$S2=1)*COLUMN($B2:$R2) - 这将返回一个列数数组,表示行从0转换为1(条纹结束)。类似地,- ($B2:$R2=1)*($C2:$S2=0)*COLUMN($B2:$R2)向数组添加行号从1转换为0(条纹开始)的列号,除非它被减去以给出负列号。
  • 对每对正负列数求和将得出条纹长度。总和除以条纹数得出平均条纹长度。更简单地说是所有正面​​和正面的平均值的2倍。负列号将给出相同的结果。
  • 行中的前导和尾随零是一个问题,因此添加了一个额外的掩码来忽略它们。 *(COLUMN($B2:$R2) > COLUMN($B2)+MATCH(1,$B2:$S2,0)-1)忽略前导零,*(COLUMN($B2:$R2) < MAX(COLUMN($B2:$S2)*($B2:$S2=1)))忽略尾随零。
  • 因此,使用AVERAGE(IF(exp <> 0, exp))的平均值计算中不包含零,不幸的是,该公式的大小增加了一倍。
  • 最后,如果不存在条纹,则会发生错误,因此使用了IFERROR(exp, 0)