Frage von MPCKhome, 31

Vba Summe verkürzen von komplexerer Rechnung?

Also ich möchte diese Rechnung mit Hilfe von Variablen verkürzen. Hat jemand eventuell ein Ansatz oder sogar eine Lösung?

Range("A1")=10*log((10^(0,1+range("B1").value))+10^(0,1+range("B2").value))+...+(bis "B30")

Vielen Dank im voraus

Antwort
von YStoll, 14

10^(0.1+x) = 10^0.1 * 10^x.

10^0.1 lässt sich also ausklammern.
Dann steht da:

10*log(10^0.1 * (10^B1 + 10^B2 + ... 10^B3))

Dass lässt sich dann umschreiben zu 10*(log(10^0.1)+log(10^B1 + 10^B2 + ... 10^B3))

und weiter:

10*(0.1+log(10^B1 + 10^B2 + ... 10^B3))

= 1+10*log(10^B1 + 10^B2 + ... 10^B3)

Antwort
von Garfield0001, 31

Den inneren teil kann man in eine schleife packen.

Kommentar von MPCKhome ,

Kannst du mir sagen wie?

Kommentar von Garfield0001 ,

DIM Ze AS Integer

DIM Sum AS Double

For Ze = 1 To 30

Sum = Sum + (10^(0.1+Cells (Ze, 2). Value))

Next

Range ("A1").Value=10*log (Sum)

-----------------

Mit Cells kann man mehr machen als mit Range. Schau dir das mal an. Und einen flexiblen Bereich kann man mit Range trotzdem angeben:

ZeAnf=1

ZeEnd=30

Range(Cells (ZeAnf,1), Cells (ZeEnd,1)).Select

Markiert eben die ersten 30 Zeilen der ersten Spalte. Aber die Ze-Werte sind flexibel und können zb per code zugewiesen werden

Keine passende Antwort gefunden?

Fragen Sie die Community