# Eigene Funktion in Excel: Public function



## brabe (10. Mai 2006)

Es wäre nett, wenn mir da einer helfen könnte  
Ich habe 0 Ahnung von makros und weiss nicht, was ich machen muss!
Also bitte für einen Neuling schreiben. Danke

Also ich kann programmieren, nur weiss ich nicht, wie es bei Excel aussieht.

Ich brauche folgendes als Funktion!

_CH125=CH124+WENN(CI125<0;CI125+WENN($EO122=3;WENN(CI122<0;0;CI122)+WENN($EO121=4;WENN(CI121<0;0;CI121)+WENN($EO120=5;WENN(CI120<0;0;CI120)+WENN($EO119=6;WENN(CI119<0;0;CI119)+WENN($EO118=7;WENN(CI118<0;0;CI118)+WENN($EO117=8;WENN(CI117<0;0;CI117)+WENN($EO116=9;WENN(CI116<0;0;CI116)+WENN($EO115=10;WENN(CI115<0;0;CI115)+WENN($EO114=11;WENN(CI114<0;0;CI114)+WENN($EO113=12;WENN(CI113<0;0;CI113)+WENN($EO112=13;WENN(CI112<0;0;CI112)+WENN($EO111=14;WENN(CI111<0;0;CI111)+WENN($EO110=15;WENN(CI110<0;0;CI110)+WENN($EO109=16;WENN(CI109<0;0;CI109)+WENN($EO108=17;WENN(CI108<0;0;CI108)+WENN($EO107=18;WENN(CI107<0;0;CI107)+WENN($EO106=19;WENN(CI106<0;0;CI106)+WENN($EO105=20;WENN(CI105<0;0;CI105)_

Kurzfassung:
_CH125=CH124+WENN(CI125<0;CI125+WENN($EO122=3;WENN(CI122<0;0;CI122)_

Man kann sich vorstellen, wenn das in 20 Spalten und 400 Zeilen drinnen steht, dass das enorm viel Text ist.

Ich dachte da an folgendes:
Ich gebe 2 Matrizen (EO und Cl) und das Programm berechnet mir den Rest.

Vielen Dank für Eure Hilfe
brabe


----------



## brabe (10. Mai 2006)

Also ich habe nun immerhin hinbekommen, dass die funktion an gezeigt wird.

Aber wie muss die aussehen? Wie ist der allgemeine Aufbau? Wie deklariere ich eine Matrix?

Kann mir keiner helfen, oder bin ich zu ungeduldig


----------



## brabe (29. Mai 2006)

Ich weiss es immernoch nich, kennt sich hier keiner mit Excel aus?

Kann mir keiner einen Link schicken?


----------



## Leola13 (29. Mai 2006)

Hai,

kannst du mal eine Beispieldatei anhängen ?

Du hast doch eine Funktion, die in Abhängigkeit ob eine Zelle 0 ist, Additionen ausführt,  oder ?  



> Man kann sich vorstellen, wenn das in 20 Spalten und 400 Zeilen drinnen steht, dass das enorm viel Text ist.



Versteh ich nicht ?!

Ciao Stefan


----------



## brabe (3. Juni 2006)

_Kurzfassung:

A26=A25+WENN(B26<0;B26+WENN($C23=3;WENN(B23<0;0;B23)+...+WENN($C7=20;WENN(B7<0;0;B7)_

Beispiel Excel Datei


Habe mal ein Beispiel hochgeladen.
Es geht darum, dass ich aus einer Matrix in Spalte C nachschaue, was da drinnen steht 1-20, und dann dementsprechnen in der Spalte B in dem Feldern B1 bis B20 den Wert kopieren und in das Feld A26 eintragen


----------



## Leola13 (6. Juni 2006)

Hai,

ich kan mir hier auf der Arbeit dein Beispiel leider nicht anschauen.  

... aber schau dir mal diese Formel an : =SVERWEIS(B13;C1325;2)

Die Formel steht in A13, es wird geschaut welcher Wert in B13 steht, mit einem Wert aus C13 bis C25 verglichen und dann der entsprechende Wert von D13 bis D25 eingefügt.



> dass ich aus einer Matrix in Spalte C nachschaue


Das habe ich nicht so ganz verstanden.

Ciao Stefan


----------



## brabe (17. Juni 2006)

Das Problem an SVerweis ist, dass es nur ein Feld als Lösung angibt. Ich aber mehrere Ausgaben haben kann.

Es geht um einen Rundenbasiertes game.
Man kann Gebäude bauen, die standardmäßig 20 Runden brauchen.
Also wenn ich in Runde 1 dann 10 Gebäude baue (B1=10),
dann soll in dem Feld A20=10 stehen.
Nun kann es aber sein, dass ich in Runde 3 schnller bauen erforscht habe und in 15 Runden bauen kann.
Der Zufall will es und ich baue 10 Gebäude in der runde 5, also B5=10
Dann ist A20=B1+B5=10+10=20

Und dies will ich automatisieren.
In A20 frage ich also ab, wie die Bauzeit der letzten 20 Felder war (C1-C20) und wenn die bauzeit C1=20, .. C19=1 erfüllt ist, nehme ich die anzahl der gebauten Gebäude aus Feld B1,...B20 heran

das ist die UserFunction, die ich programmieren will
-----------

Mir geht es aber doch nur um die BEGRIFFE, wie ich eine User Function selber schreibe. Ich kenne mich nicht damit aus. 

Kennt denn keiner eine Seite, wo man Excel hilfen bekommt, wie man Excvel functionen selber programmiert


----------



## Leola13 (19. Juni 2006)

Hai,

schau dich mal hier ein bisschen um.

Edit : Oder hier

Ciao Stefan


----------



## brabe (21. Juni 2006)

vielen dank erstmal

werde mich mal umschauen und dann sagen, ob es mir geholfen hat


----------

