Excel-在列中添加数字,因为这些数字是正数,并且它们与一行中的值相关联

可能会很复杂,所以让我给你一些背景:

我有一个包含以下数据的电子表格:

  1. H列包含1794年至2011年的date(在“H”内,每个立法者在该date有多个date)
  2. 列Q包含范围从-1到1的分数我想计算列Q中列H中每个date的平均“正”值,然后将其打印出来。

例如:

1794: Average Positive Value : .65, Average Negative: -.20 1795: Average Positive Value: .75, Average Negative: -.11 

我试图找出如何做到这一点,但我不知道相关的search条件。 希望能得到一些帮助。

谢谢!

在这里,我们使用ARRAY公式的简单方法。 请参阅SNAPSHOT

 =IFERROR(AVERAGE(IF(($H$1:$H$7=K10)*($Q$1:$Q$7>0),$Q$1:$Q$7)),"") 

您必须使用CTL + SHIFT + ENTERinput

在这里输入图像说明

没有数组公式的解决scheme是使用SUMPRODUCT

 =SUMPRODUCT(--(H1:H7=K10),--(Q1:Q7>0),Q1:Q7)/SUMPRODUCT(--(H1:H7=K10),--(Q1:Q7>0)) 

我用SUMPRODUCT撕下了Siddharth的例子。

在这里输入图像说明

你应该可以使用SUMIFS / COUNTIFS。

对于正面价值:

 =sumifs(Q:Q,H:H,1794,Q:Q,">0")/countifs(H:H,1794,Q:Q,">0") 

对于负值:

 =sumifs(Q:Q,H:H,1794,Q:Q,"<0")/countifs(H:H,1794,Q:Q,"<0") 

这可能被认为是一种破解,但是您可以使用一些隐藏的列,每个数据点都有一个复制的IF公式。 为了显示:

添加具有IF(Q> 0,Q,0)的另一列A添加具有IF(Q> 0,1,0)的另一列B添加具有IF(Q <0,Q,0)的另一列C添加另一列列D具有IF(Q <0,1,0)

然后,为了确定平均值,可以分别简单地进行SUM(A)/ SUM(B)和SUM(C)/ SUM(D),因为它将是总值除以真实出现次数。