Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
340to344
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
340to344
340to344
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mathematische Summe durchführen

Mathematische Summe durchführen
24.11.2003 15:28:25
Sebastian
Hallo,

ich habe folgendes Problem: Wie kann man die Funktionen in eine Summe einbetten?
Allgemein formuliert möchte ich eine Funktion f(x,y) mit y als Funktionsgröße aus einer anderen Zelle, die konstant bleibt, aufsummieren mit z.B. 1 <= x <= 9, also f(1,y)+f(2,y)+...+f(8,y)+f(9,y). Dazu könnte ich natürlich 9 Zellen programmieren, wobei die erste einfach nur f(1,y), die zweite f(2,y) usw. berechnet und dann alle Zellen aufsummieren, aber das ist mir erstens zu kompliziert, zweitens brauche ich dann eine Menge Platz und drittens denke ich: Es muss doch einfacher mit nur einer Zelle gehen! Dazu hätte ich eine weitere Frage: Ist dies sogar mit mehreren Variablen (x1, x2, x3) möglich, die jeweils von einer Untergrenze bis zu einer Obergrenze (wobei die Grenzen unterschiedlich sein dürfen) gezählt werden? Vielen Dank für jede Hilfe.

Gruß,
Sebastian

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mathematische Summe durchführen
24.11.2003 16:27:56
IngoG
Hallo Sebastian,

Hast Du schon mal mit Matrixformeln gearbeitet?

dort hast Du die Möglichkeit, zellen nacheinander zu durchlaufen und für jede Zelle eine operation durchzuführen.

zB liefert =summe(zeile(1:100)) als matrixformel das ergebnis 5050, also 1+2+3+4...+100

Matrixformeln schließt man bei der Eingabe ab mit Strg-Shift-Enter.

der nachteil ist, dass der laufparameter maximal 65535 zellen annehmen kann und du nur einen parameter zur verfügung hast.

Vielleicht hilft dir das ja weiter

Gruß Ingo

PS, wenn du eine konkrete Funktion hast kann man Dir wahrscheinlich leichter helfen...
Anzeige
AW: Mathematische Summe durchführen
24.11.2003 17:27:13
Sebastian
Hallo Ingo,

Danke für die Antwort! Ja, ich habe eine konkrete Formel. Für ein einziges Summenglied lautet sie: (Achtung: dort wo "(KLEINER)" steht, sollte eigentlich das mathematische Kleiner-Zeichen stehen. Bei der Vorschau war dann alles Nachfolgende leider abgeschnitten, weswegen ich es durch "(KLEINER)" ersetzt habe.)

WENN(UND(x+z>=B1;y+z>=B2;x+y+z(KLEINER)B1+B2);KOMBINATIONEN(A1;x)*KOMBINATIONEN(A2;y)*KOMBINATIONEN(A3;z)*KOMBINATIONEN(A4;A5);0)

Dabei sind A1 bis A5 sowie B1 und B2 Werte, die konstant sind und aus einer Zelle ausgelesen werden. Nun soll diese Funktion für alle Kombinationen mit 0 <= x <= 9, 0 <= y <= 9 und 0 <= z <= 3 ausgeführt und ihre Ergebnisse aufsummiert werden. Wie stelle ich das am geschicktesten an? Mit Matrixformeln habe ich noch nie gearbeitet. Ein Problem habe ich dabei noch: Diese Summe muss ich in 60 Zellen durchführen für unterschiedliche Ausgangsparameter A1 bis A5 sowie B1 und B2 (die dann natürlich auf andere Zellen verweisen).

Gruß,
Sebastian
Anzeige
AW: Mathematische Summe durchführen
24.11.2003 17:32:55
Sebastian
Hallo nochmal,

in der Funktion habe ich noch einige Bedingungen in der WENN(UND())-Funktion vergessen:
x <= A1, y <= A2 und z <= A3, da sonst KOMBINATIONEN nicht berechnet werden kann.

Gruß,
Sebastian
Kleiner als
24.11.2003 21:06:15
Jörg Gradert
Hallo Sebastian,
deine Formel ist mir mathematisch zu hoch, ich wollte dir nur mitteilen, dass das < mit & und lt (3 Zeichen zusammengeschrieben) erzeugt wird.
Das grösser als mit & und gt. Also &lowerthan &greaterthan
Dass der Rest sonst abgeschnitten wird, liegt daran, dass die spitzen Klammern als HTML Tags interpretiert werden.

Gruss Jörg
Anzeige
benutzerdef. function
25.11.2003 00:04:47
IngoG
Hallo Sebastian,

ich glaube für eine Matrixfunktion ist die anforderung zu aufwendig, habe deshalb mal eine

Function geschrieben, die genau das machen sollte, was du beschrieben hast:

Function summenformel(a1 As Integer, a2 As Integer, a3 As Integer, a4 As Integer, a5 As Integer, b1 As Integer, b2 As Integer) As Double
Dim x%, y%, z%
Dim summe As Double
Application.Volatile
If a4 < a5 Then
summenformel = 0
Exit Function
End If
summe = 0
For x = 0 To 9
For y = 0 To 9
For z = 0 To 3
If (x + z <= b1) And (y + z >= b2) And (x + y + z < b1 + b2) Then
summe = summe + Application.WorksheetFunction.Combin(a1, x) * Application.WorksheetFunction.Combin(a2, y) * _
Application.WorksheetFunction.Combin(a3, z) * Application.WorksheetFunction.Combin(a4, a5)
End If
Next z
Next y
Next x
summenformel = summe
End Function


Du kannst ja vielleicht an bekannten beispielen mal testen und mir bescheid geben

Gruß Ingo

Anzeige
Ergänzung
25.11.2003 13:46:46
IngoG
Hallo Sebastian,
hab natürlich prompt die zusätzlichen Bedingungen vergessen:


Function summenformel(a1 As Integer, a2 As Integer, a3 As Integer, a4 As Integer, a5 As Integer, b1 As Integer, b2 As Integer) As Double
Dim x%, y%, z%
Dim summe As Double
Application.Volatile
If a4 <= a5 Then
summenformel = 0
Exit Function
End If
summe = 0
For x = 0 To 9
For y = 0 To 9
For z = 0 To 3
If (x + z <= b1) And (y + z >= b2) And (x + y + z < b1 + b2) and _
(x<=a1) and (y<=a2) and (z<=a3) Then
summe = summe + Application.WorksheetFunction.Combin(a1, x) * Application.WorksheetFunction.Combin(a2, y) * _
Application.WorksheetFunction.Combin(a3, z) * Application.WorksheetFunction.Combin(a4, a5)
End If
Next z
Next y
Next x
summenformel = summe
End Function


Gruß Ingo
Anzeige
AW: Ergänzung
25.11.2003 18:58:35
Sebastian
Hallo,

ich versuche gerade, im Visual Basic Editor diese Funktion zu definieren. Vom
Kontext her scheine ich sie zu verstehen, da das alles mit C++ sehr ähnlich
und überhaupt logisch aufgebaut ist. Das müsste in der Tat meine Summe ergeben.
Danke Ingo! Praktischer wäre natürlich eine Funktion, die jede beliebige Funktion
mit gewissen Parametern aufsummieren könnte, also eine allgemeine Version dessen.
Aber hiermit würde ich mich schon begnügen. Ich habe nur Probleme, dieses Script
oder wie auch immer der Informatiker sowas nennt, in Excel einbinde.
Ich habe zuvor noch nie mit Visual Basic gearbeitet und daher einige Fragen:

1) Nach jeder Zeile (ich drücke die ENTER-Taste) meckert der Editor. Ich habe
festgestellt, dass man auch mit der Pfeil-Rechts-Taste in die nächste Zeile
kommt. Da meckert der Editor auch nicht, ist das also die richtige
Vorgehensweise?

2) Muss der Entwurfsmodus eingeschaltet sein?

3) Was mache ich, wenn ich alles geschrieben habe? Schliesse ich es mit ENTER
ab? Oder führe ich den Kompilierbefehl durch?

4) Wie binde ich die kompilierte Funktion in meine Excel-Tabelle ein?

Ich weiß, das sind viele Fragen auf einmal... Aber leider habe ich noch nie mit Visual Basic gearbeitet.

Gruß,
Sebastian
Anzeige
AW: Mathematische Summe durchführen
26.11.2003 09:47:05
IngoG
Hallo Sebastian,

Du brauchst nicht den ganzen text abzutippen, sonsdern kannst einfach über paste and copy den Text aus dem obigen Beitrag in ein Modul deiner Datei kopieren.

wenn Du das getan hast, kannst Du in der Datei die funktion benutzen, wie eine normale Excelfunktion. Du findest sie unter benutzerdefinierte Funktionen.

wenn etwas nicht klappt, meld dich einfach nochmal

Gruß Ingo
AW: Mathematische Summe durchführen
27.11.2003 14:50:06
Sebastian
Hallo,

ich habe das jetzt zum Laufen gekriegt. Das Modul ist eine echt praktische Sache für sowas. Wenn man weiss, dass es das gibt, natürlich... ;-) Ingo: Deine Funktion klappt wunderbar, ich habe nur übersehen, dass a5 doch auch abhängig von x, y und z ist (die Summe der "unteren Zahlen" in den Permutationen ist immer gleich, also kommt in der letzten Permutation -x-y-z vor). Das habe ich dann noch entsprechend angepasst, war aber kein Problem. Die Funktion habe ich anhand von selbst per Hand gerechneten Beispielen überprüft und bestätigen können. Nochmals Danke für Alles!

Gruß,
Sebastian
Anzeige
Danke für die Rückmeldung
28.11.2003 14:37:01
IngoG
Hallo Sebastian,
freut mich, dass ich Dir helfen konnte

Gruß Ingo

15 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige