c# - 这个导致我在 Excel 电子表格中看到绿色三角形的公式有什么问题?

标签 c# excel-formula excel-interop error-checking

我的 Excel 电子表格中出现绿色三角形,表明该单元格的基础公式有问题,尽管该列单元格中的数据看起来正确且格式正确。

我用来填充该列的代码是:

var avgWeeklyDeliveriesCell = (Excel.Range)_xlSheet.Cells[curDelPerfRow, 
    AVG_WEEKLY_DELIVERIES_COLUMN];
avgWeeklyDeliveriesCell.Value2 = string.Format("=ROUND(AVERAGE(C{0}:I{0}), 2)", 
    curDelPerfRow);
avgWeeklyDeliveriesCell.NumberFormat = "#,##0.00";

该列中的值为 3.431.572.00

这个公式 ("=ROUND(AVERAGE(C{0}:I{0}), 2)") 有什么问题?它似乎有效,那么为什么绿色三角形使它们的存在可见?

更新

我添加了这段代码:

_xlApp.ErrorCheckingOptions.InconsistentFormula = false;
_xlApp.ErrorCheckingOptions.BackgroundChecking = false;

...但这没什么区别;我仍然看到小绿人。

更新 2

我有大约 99.97% 的把握确定警告是假的(毕竟,值是正确的),但我无法将其关闭,如前所述。

为什么我这么确定我的配方是好的?请注意这个尖叫声:

enter image description here

当我单击绿色三角形并将鼠标悬停在带有绿色感叹号的符号上时,我看到的消息是“此单元格中的公式指的是一个范围,该范围旁边有其他数字”

显示的公式是“=ROUND(AVERAGE(C10:I10), 2)”,这是我想要的 - “Sun Orders”到“Sat Orders”,但显然由于在计算的那些和绿色提示的那些之间存在另一列(“总订单”),它认为有些不对劲/失控。

我在想也许我应该将公式更改为:

=ROUND(I11 / 7, 2)

...或者:

=ROUND(I11 DIV 7, 2)

...但这些都不被接受...

最佳答案

问题是“总订单”列是一个设定值,而不是一个公式。将“总订单”列设置为:

=SUM(C10:I10)

Sample excel image showing the inserted value vs. formula

您的警告将消失。您的平均公式是正确的,Excel 正在寻找您。

关于c# - 这个导致我在 Excel 电子表格中看到绿色三角形的公式有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35280884/

相关文章:

c# - 我如何编写一个函数来返回从 C# 中的基类派生的任何对象?

excel - 设置 FILTER 公式的最大行数

excel - 如何搜索一列名称并根据名称末尾是否有特殊字符做出决定

vba - 从化学式中提取数字

c# - 使用 layoutInflator xamarin 膨胀时出现运行时异常?

c# - 具有通用类参数和转换的函数

c# - javascript:根据计数器是奇数还是偶数来切换两个字符串的最佳方法

c# - 异步读取 Excel 工作表

c# - 使用 C# 将 HTML 表格转换为 Excel 工作表

c# - ExcelDNA 评估公式为自定义 UDF 返回 ExcelErrorName