如何制定动态Excel范围

时间:2019-03-23 10:46:33

标签: excel

Column C   Column D   Column E
  14          6            1
  11                   16.52
   5                   82.64
  30                       0
  60                       0
  12                       0
   9                       0
   4                       0

我有这三列,它们都是用户输入的,因此它们在数值上是动态的。  C列有一个数字范围,比D列的值小一些。  E列的值大于0。  E列中的0表示不计算C列中的同一行。  我需要做的是在E列中获取相应的“非零”值,并测试C列中的值是否小于D列。  然后,计算D列与C列中任何小于D列的值之间的差,然后将该值除以C列的COUNT等于或大于D列。  例如现在。在C列中,我不会评估第5:9行,因为E列在那些行中为0。  C列第4行是值5,比D列6小1,所以差为1。C列中有2个值等于或大于D列  所以结果是1/2 = .5

另一个例子:

Column C   Column D   Column E
  14          6            1
  11                   16.52
   5                   82.64
  30                       0
  60                       0
  12                       0
   9                       0
   4                   19.56

在此示例中,列C的第2、3、4、9行中有4个使用的值。其中两个值比D列小D2-C4 + D2-C9 = 3。  结果是3/2 = 1.5

另一个例子:

Column C   Column D   Column E
  14          6            1
  11                   16.52
   5                       0
  30                       0
  60                       0
   6                   18.66
   9                       0
   4                       0

结果为0/3 = 0

我试图用INDEX / MATCH,SUMPRODUCT,COUNTIFS,SMALL,INDIRECT,MIN来解决问题,但这超出了我的EXCEL能力。

1 个答案:

答案 0 :(得分:2)

应该使用SUMIFS,几个COUNTIFS和一些数学运算。

=(D2*COUNTIFS(E:E, "<>"&0, C:C, "<"&D2)-SUMIFS(C:C, E:E, "<>"&0, C:C, "<"&D2))/COUNTIFS(E:E, "<>"&0, C:C, ">="&D2)