如何使用" Average"来限制Excel单元格中的十进制计数?式?

时间:2015-12-02 00:22:55

标签: c# excel decimal excel-interop decimal-point

我使用C#Excel Interop创建电子表格。我使用公式来计算"总数"工作表底部的部分。以下是我使用的代码:

var totalTotalOrdersCell = (Range)_xlSheetDelPerf.Cells[curDelPerfRow + 2, TOTAL_ORDERS_COLUMN];
totalTotalOrdersCell.Formula = string.Format("=SUM(J10:J{0})", curDelPerfRow);

var avgAvgWeeklyDeliveriesCell = (Range)_xlSheetDelPerf.Cells[curDelPerfRow + 2, AVG_WEEKLY_DELIVERIES_COLUMN];
avgAvgWeeklyDeliveriesCell.Formula = string.Format("=AVERAGE(K10:K{0})", curDelPerfRow);

var avgAvgOrderAmountCell = (Range)_xlSheetDelPerf.Cells[curDelPerfRow + 2, AVG_ORDER_AMOUNT_COLUMN];
avgAvgOrderAmountCell.Formula = string.Format("=AVERAGE(L10:L{0})", curDelPerfRow);

var avgAvgPackageCountCell = (Range)_xlSheetDelPerf.Cells[curDelPerfRow + 2, AVG_PACKAGE_AMOUNT_COLUMN];
avgAvgPackageCountCell.Formula = string.Format("=AVERAGE(M10:M{0})", curDelPerfRow);

var totalTotalSalesCell = (Range)_xlSheetDelPerf.Cells[curDelPerfRow + 2, TOTAL_SALES_COLUMN];
totalTotalSalesCell.Formula = string.Format("=SUM(N10:N{0})", curDelPerfRow);

var totalTotalPackageCountCell = (Range)_xlSheetDelPerf.Cells[curDelPerfRow + 2, TOTAL_PACKAGE_COUNT_COLUMN];
totalTotalPackageCountCell.Formula = string.Format("=SUM(O10:O{0})", curDelPerfRow);

这就是正在制作的内容:

enter image description here

货币/货币的格式恰到好处,没有任何干预 - Excel对金钱显然很聪明。

关于整数,但并非如此 - 它显示" 20192"而不是" 20,192" - 但我已经问过这个特定问题here

我现在的问题是 - 这是一个更大的交易" - 如何限制平均值的十进制数?我想" 15.23"不是" 15.23076923"和" 34.17"不是更长,更精确的价值版本。

我如何告诉公式前者两个小数点是否足够?

1 个答案:

答案 0 :(得分:1)

您是否尝试过=TEXT公式? - 语法如下:=TEXT("412.24134","#,###.00"),答案将显示为412.24

所以你的代码就像这样(尚未经过测试):

var avgAvgWeeklyDeliveriesCell = (Range)_xlSheetDelPerf.Cells[curDelPerfRow + 2, AVG_WEEKLY_DELIVERIES_COLUMN];
avgAvgWeeklyDeliveriesCell.Formula = string.Format("=TEXT(AVERAGE(K10:K{0})", curDelPerfRow),"#,###.00");