2016-05-02 7 views
0

私は音響測定による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)だから私は、Matlabにあるように(cellfun、arrayfun)、各セルに計算を適用できる関数がExcelにあるのだろうかと思います。

私はB10 10 ^((L_overall = 10 * log10のような類似した何かで終わることを望む:私は :B80/10)私は単に一つのセル内のすべての計算を行うことができるようになる

追加。テルツのデータを変更しないことを忘れてしまったことを忘れてしまったので、私はそのスペクトルをプロットするためにそれを使用しなければならないので、変更したくないので、すべての周波数に対してそれを入力するにはかなりの時間がかかります。

もちろん、別の列を使用して数学を行うこともできますが、それも不便です。

答えて

2

実際の式はこのようなものになるだろう:

=10*LOG(SUM(INDEX(10^(B10:B80/10),)),10) 

またはこの:

=10*LOG(SUMPRODUCT(10^(B10:B80/10)),10) 

enter image description here

0

ちょっと大変ですが、1つのセルに対して10 ^(L_a/10)を実行してから、右下隅をクリックしてドラッグすると、すべてのセルに対して実行されます。 次に、それらのセルのSUMの10 * log10を取る別のセルを作成します。

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 

は、単にあなたが数式を挿入して、サブを実行したいすべてのセルを選択します。あなたの数式が有効であることを確認してください。