【问题标题】:How to formulate Dynamic Excel Ranges如何制定动态 Excel 范围
【发布时间】:2019-03-23 19:06:29
【问题描述】:
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 列等于或大于 D 列的 COUNT。 比如现在这样。在 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 能力。

【问题讨论】:

    标签: excel


    【解决方案1】:

    一个 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)
    

    【讨论】:

    • 您好,感谢您的宝贵时间。根据我的第一个示例,您的公式的结果是 1,它应该是 0.5。
    • 嗨,我收紧了范围,效果很好!我在 E26 中有一个虚假的“5”,它捡起...
    • 感谢您解决这个问题。我很高兴事情对你有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    • 2021-09-13
    • 1970-01-01
    • 2016-08-30
    • 2016-05-02
    • 2022-01-22
    相关资源
    最近更新 更多