我有来自声学测量的Terz光谱数据,我想计算整体水平。每个Terz波段的值均以分贝为单位。因此,计算公式有点冗长。它将是L_overall = 10 * log10(10 ^(L_a / 10)+ 10 ^(L_b / 10)+ 10 ^(L_c / 10)+ 10 ^(L_d / 10)......)。
由于频率很高,我不想手工编写整个公式。在进行外部计算(10 * log10(x + y + z + ...))之前,我也不想使用另一列进行内部计算(10 ^(x / 10))。所以我想知道Excel中是否有一个函数允许对每个单元格应用计算,例如Matlab中的计算(cellfun,arrayfun)。
我希望最终得到像L_overall = 10 * log10(10 ^(B10:B80 / 10)这样的东西,这样我就可以在一个单元格中进行所有计算。
增加: 我忘了说我希望terz-data不变。我不想改变它,因为我必须使用它来绘制该频谱。理想情况下,我希望所有工作只在一个单元格中完成。我可以通过冗长的公式来做到这一点,但是为所有频率键入它需要相当长的时间。
当然,我可以简单地使用另一列并在那里进行数学计算,但这似乎也很不方便。
答案 0 :(得分:2)
答案 1 :(得分:0)
它有点笨重,但你可以为一个单元格做10 ^(L_a / 10),然后单击并拖动右下角以使所有单元格运行。 然后创建另一个单元格,该单元格占用这些单元格的SUM的10 * log10。
答案 2 :(得分:0)
如果你的目标只是在一堆单元格中插入一个特定的公式,你可以使用它:
For Each rCell In Application.Selection
rCell.Formula = "=10*log10(10^(L_a/10)+10^(L_b/10)+10^(L_c/10)+10^(L_d/10)...)"
Next rCell
只需选择要插入公式的所有单元格,然后运行sub。确保您的公式有效。