c# - 使用 C# 将 Sumif 公式添加到单元格错误

标签 c# excel sumifs

我正在尝试通过 C# 将公式添加到 Excel 中多行的单元格中。 我试图用公式实现的是 SUM所有不包含字符串 N/A 的单元格, 在 column D to S在每一行。

这是我要添加的公式:

=SUMIF(DX:SX,"<>N/A")

(在上面的例子中我用X改变了实际的行号)

所以我循环遍历行并执行此操作:

    foreach (var row in rows)
    {
        ws.Cells[row, 2].Formula = string.Format("=SUMIF(D{0}:S{0},\"<>N/A\")", row + 1);                          
    }

这里我得到了异常:

System.ArgumentException : Failed to parse: =SUMIF(D2:S2,"<>N/A"). Error: Unsupported function: SUMIF.For list of supported functions consult GemBox.Spreadsheet documentation.

我还尝试添加公式的瑞典语版本:

=SUMMA.OM(DX:SX;"<>N/A")

(在上面的例子中我用X改变了实际的行号)

这里我得到了异常:

System.ArgumentException : Failed to parse: =SUMMA.OM(D2:S2;"<>N/A"). Error: Not expected: SUMMA

最奇怪的是,如果我在 Excel 的单元格中手动输入瑞典公式,它就可以工作。

感谢我能得到的任何帮助,非常感谢。

最佳答案

实际上,我看不出有任何理由会引发该错误——您所做的似乎应该有效。本着提供另一种测试途径的精神,您还可以尝试公式的 R1C1 版本,看看是否可行:

foreach (var row in rows)
{
    ws.Cells[row, 2].FormulaR1C1 = "=SUMIF(R[0]C[2]:R[0]C[17],\"<>N/A\")";
}

除非您的 rows 变量包含无效数字,否则我不确定它为什么会抛出该异常。在您给出的示例错误中,这应该没问题。

关于c# - 使用 C# 将 Sumif 公式添加到单元格错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51436980/

相关文章:

vba - 总和范围直到某个单元格颜色或值之后?

c# - 有没有办法从 C# 中的引用类初始化对象?

c# - 在 c# exe 和 c++ dll 之间使用 Mutex

c# - 带网络流的充气城堡

.net - 在 C#.NET 中,使用 using 关键字打开连接,我需要关闭并处理连接还是 .NET 为我做这件事?

c# - 保存重新计算的 Excel 文件

Excel - SUMIF 函数

excel - 可以在动态(溢出)范围上执行 sumif(s)并返回(2d)数组吗?

r - R 能否执行与嵌套在 VLOOKUP 中的 HLOOKUP 等效的操作?

vba - 如何在路径中编写带有变量的vba