2016-05-02 16 views
0

Ich habe Terz-Spektrendaten von akustischen Messungen und ich möchte den Gesamtpegel berechnen. Die Werte für jedes Terz-Band sind in Dezibel angegeben. Daher ist die Berechnungsformel ein bisschen lang. Es wäre L_overall = 10 * log10 (10^(L_a/10) + 10^(L_b/10) + 10^(L_c/10) + 10^(L_d/10) ...).Funktion auf jede Zelle in Excel anwenden

Da es viele Frequenzen gibt, möchte ich nicht die ganze Formel von Hand schreiben. Ich möchte auch keine andere Spalte verwenden, um die innere Berechnung (10^(x/10)) vor der äußeren Berechnung durchzuführen (10 * log10 (x + y + z + ...)). Also frage ich mich, ob es eine Funktion in Excel gibt, die es erlaubt, für jede Zelle eine Berechnung anzuwenden, wie sie es zum Beispiel in Matlab gibt (cellfun, arrayfun).

Ich hoffe, mit etwas, um am Ende ähnlich wie L_overall = 10 * log10 (10^(B10: B80/10), die mir die ganze Berechnung in nur eine Zelle zu tun erlauben würde

. Zugabe: I Ich habe vergessen zu sagen, dass ich die Terz-Daten unverändert lassen möchte, ich möchte das nicht ändern, da ich es verwenden muss, um dieses Spektrum zu plotten, also möchte ich idealerweise die ganze Arbeit in nur einer Zelle machen die lange Formel, aber es würde eine ganze Weile dauern, das für alle Frequenzen zu schreiben.

Natürlich könnte ich einfach eine andere Spalte verwenden und die Mathematik dort tun, aber das scheint auch unbequem.

Antwort

2

Eigentlich wäre die Formel so etwas wie dieses:

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

Oder diese:

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

enter image description here

0

Es ist ein wenig klobig, aber Sie könnten 10^(L_a/10) für eine Zelle tun, dann klicken und ziehen Sie die untere rechte Ecke, um diesen Lauf für alle Zellen zu machen. Dann erstellen Sie eine andere Zelle, die 10 * log10 der Summe dieser Zellen nimmt.

0

Wenn Ihr Ziel ist nur eine bestimmte Formel in einem Bündel von Zellen einfügen Sie diese verwenden:

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 

Wählen Sie einfach alle Zellen, in denen Sie die Formel eingefügt werden soll und dann die Unter laufen. Stellen Sie sicher, dass Ihre Formel gültig ist.

Verwandte Themen