Excel-在列中添加数字,因为这些数字是正数,并且它们与一行中的值相关联
可能会很复杂,所以让我给你一些背景:
我有一个包含以下数据的电子表格:
- H列包含1794年至2011年的date(在“H”内,每个立法者在该date有多个date)
- 列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),因为它将是总值除以真实出现次数。