【问题标题】:Excel formula sumproduct consuming more time (EPPlus)Excel 公式 sumproduct 消耗更多时间 (EPPlus)
【发布时间】:2014-07-18 20:18:11
【问题描述】:

我有一个工作簿,其中包含 2 张工作表。 cmets 和摘要

在 cmets 表中,我有列 - 类别、类型和状态

  • 类别采用字符串值,如 cmets、安全性、控制流等。
  • type 取值为 P 或 C
  • status 取值为 Y 或 N

在我的总结中,我有列 - 类别、P_type、C_Type、total_status

  • 类别包含与 cmets 表中相同的字符串
  • p_type - 对应类别的p-type编号
  • C_type - 对应类别的c-type编号
  • total_staus - P 和 C 类型对应类别的 Y 数

为此,我用公式填充了每个单元格

if (j == 3)
{
    cellRange.Formula = "SUMPRODUCT((Comments!B:B=B" + i + ")*(Comments!D:D=\"P\"))";
}

if (j == 4)
{
    cellRange.Formula = "SUMPRODUCT((Comments!B:B=B" + i + ")*(Comments!D:D=\"C\"))";
}

if (j == 5)
{        
    cellRange.Formula = "SUMPRODUCT((Comments!B:B=B" + i + ")*(Comments!G:G=\"Y\"))";
}

注意:cmets 表使用数据库填充,它可以有任意数量的行。 在摘要表中,B 列包含类别字符串 在 cmets 表中,D 列和 G 列分别包含类型和状态

每当我打开 Excel 工作表或更改列类型和状态中的任何单元格值时,都会花费大量时间。
类别编号为 14,因此 SUMPRODUCT 公式共有 42 个。

我已更改 excel 设置以使用所有处理器;在我的系统中有 8 个可用。

任何减少这些 sumproduct 计算的建议。

谢谢

【问题讨论】:

    标签: excel epplus


    【解决方案1】:

    我在每个公式的搜索范围中添加了行限制。现在时间发生了重大变化。 好多了。

     cellRange.Formula = "SUMPRODUCT((Comments!B7:B"+nTotalRows+"=B" + i + ")*(Comments!D7:D"+nTotalRows+"=\"P\"))";
    

    【讨论】:

      猜你喜欢
      • 2022-06-12
      • 1970-01-01
      • 2017-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多