Excel: Suche "While" bzw. "For" Bedingung

  • Hiho,


    ich erarbeite mir für die Abrechnung meiner monatl. Ausgaben (wohne jetzt ja das erste Mal alleine) gerade eine Excel-Datei.


    Diese enthält die Spalte C "Sache/Zweck". Nun möchte ich für meine Ausgabentypen Ausgehen, Einkauf, Mittagessen und Sonstiges jeweils angeben, was ich für diese ausgegeben habe, ohne manuell die einzelnen Zellen aufzuaddieren (=D13+D14 usw.)


    Ich bräuchte nun also eine Funktion, die checkt, was in "Sache/Zweck" steht und bei Übereinstimmung den Wert in "Betrag" (Spalte D) zu dem Wert in der Zelle G4 addiert. Für die Zelle G4 zum Überprüfen einer Zelle (in diesem Fall C4) würde ich das so gestalten:

    Code
    Wenn($C$4="Ausgehen";$D$4;"0")


    Gibt es eine Funktion, die dieses nun für alle C4-C100 überprüft? Möchte ungern eine unglaublich lange WENN-Funktion schreiben. Ich stelle mir das in etwas so vor (PseudoCode):


    für x=4 bis x=100 mach


    wenn Cx="Ausgehen"
    dann G4+Cx
    sonst G4+0


    Ist das nachvollziehbar was ich meine? Um es auf den Punkt zu bringen: Ich brauche eine Schleifenfunktion für Excel.


    Gruß Katsche

    "Lange Tage und angenehme Nächte!" - Roland von Gilead

  • Habe inzwischen gehört, dass man in Excel irgendwie Basic einbinden kann, eine Programmiersprache, die ich noch nicht kenne. Ist das die Möglichkeit?


    Sofern das alles zu aufwändig wird, würde ich das Problem sonst aufschieben, bis ich an der Uni genug Java gelernt habe und das als kleine Übung für zuhause lösen. Wäre das mit Java-Grundwissen gut zu lösen?

    "Lange Tage und angenehme Nächte!" - Roland von Gilead

  • Ich habe hier leider nur Office 2007 und von VBA habe ich relativ wenig Ahnung. Naja, trotzdem:


    Es gibt unter Ansicht > Symbolleisten (?) den Punkt Visual Basic (?) mit dem du die Programmierumgebung für VBA (Visual Basic for Applications) und ein Control-Fenster für Steuerelement öffnen kannst. Damit kannst du dir einen Button ins Excel-Sheet setzen und wenn auf diesen gedrückt wird, kann eine benutzerdefinierte Aktion (VBA-Code) ausgeführt werden.


    Dort kannst du dann auf Sheet(Index) oder Worksheet(Index) zugreifen (Achtung: Arrays sind in VB standardmäßig 1-Basiert (1-n, nicht 0-n-1)).


    Du kannst mit VBA eigentlich alles anstellen (auch Forms, ProgressBars, usw.). Ich habe schon Excelsheets gesehen, die weit mehr ein Programm als ein Dokument waren (mit mehr als 10.000 Zeilen Code).


    Ich selbst komme von der VB6-Sparte und kenne mich mit VBA überhaupt nicht aus. Bin grad nur beruflich gezwungen, etwas VBS-Code zu schreiben.


    Ein kleiner Crashkurs für die Syntax:



    Edith meint:


    VB ist von der Syntax sehr einfach (weil intuitiv) gehalten, allerdings wirst du sehr schnell die Kompaktheit von Java zu schätzen lernen (int i; vs Dim i as Integer). Auch Klassentechnisch ist VB etwas umständlich oder bietet manche Dinge erst gar nicht an.

    Aber der Dunst, Moe, der Dunst!

  • Okay, super danke.


    Dann werde ich mich damit mal ein wenig beschäftigen, mal schauen, ob ich es dann noch umsetze, zumindest die Planung kann ich dann ja direkt in Java verwenden.


    Gruß Katsche

    "Lange Tage und angenehme Nächte!" - Roland von Gilead

  • Ach, das hatte ich ganz vergessen: In der Programmierumgebung kannst du den Objektkatalog öffnen (F2). Damit kannst du sehen, welche Member die einzelnen Objekte haben und welche es gibt.

    Aber der Dunst, Moe, der Dunst!

  • *rofl*...


    Warum einfach, wenn's auch kompliziert geht, hm? *fg*


    =SUMMEWENN(C4 : C100;"Ausgehen";D4 : D100)


    Übersetzt:


    Addiere alle Werte aus dem Bereich D4 bis D100, bei denen im Bereich C4 bis C100 "Ausgehen" steht.


    ;-))


    Rabe


    Ergänzender Tipp:


    Falls Du auch noch wissen willst, wie oft Du aus warst:
    =ZÄHLENWENN(C4:C100;"Ausgehen")

    Computer setzen logisches Denken fort!
    Unlogisches auch....

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!