Excel中的公式 - 对数平均

时间:2015-06-11 12:51:44

标签: c# excel math excel-formula formula

我需要实现这个等式:

Logarithmic Sum

在c#中,它非常简单:

static double LogarithmicSummed(IReadOnlyList<double> values)
{
    double outVal = 0;
    for (int i = 0; i < values.Count; i++)
    {
        outVal = outVal + Math.Pow(10, values[i] / 10);
    }
    return 10 * Math.Log10(outVal);
} 

我需要验证excel表中的数据,我以编程方式打印出数据。这是原始数据,我对原始数据的c#计算和应该与我的c#计算匹配的excel表格。我只是不知道如何在excel中编写公式。

我知道数据所在的行和列,它们彼此相邻。例如,如果我需要算术平均值,即:

Arithmetic average

我可以为每一行打印出来:

// If row = 1, startColumn = A, endColumn = D, noOfColumn = 4. This would print: =SUM(A1:D1)/4
mean[row] = @"=SUM(" + startColumn + row + ":" + endColumn + row + ")/" + noOfColumns;

我打印出什么来匹配我写的第一个公式?或者我需要在Excel中写什么?

2 个答案:

答案 0 :(得分:2)

没有VBA:

将数据放入 A1 A10 ,然后在 B1 中输入:

=10^(A1/10)

并复制下来。然后在另一个单元格中输入:

=10*LOG10(SUM(B1:B10))

enter image description here

您可以使用以下命令来避免“帮助”列(列 B

=10*LOG10(SUMPRODUCT(10^((A1:A10)/10)))

答案 1 :(得分:0)

如果您输入公式的方式如何,那么为什么不使用总和的字面形式?即在列上使用for循环并填写:

10*log(10^(A1/10)+10^(A2/10)+10^(A3/10)+10^(A4/10))