Power-Kiddy 10 Geschrieben 25. Februar 2010 Melden Teilen Geschrieben 25. Februar 2010 Hallo! Besteht die Möglichkeit, in Excel die Anzahl der Werte (Summanden) aus die sich ein Ergebnis zusammen setzt zählen zu lassen. Der Benutzer hat eine (einzige Zelle) mit z.B: der Formel: =1 + 3 + 5 Kann ich irgendwie die Anzahl der Summanden "zählen" um den Wert (3 in diesem Fall) in eine Zelle zu schreiben? Danke! Kiddy Zitieren Link zu diesem Kommentar
Damian 1.533 Geschrieben 25. Februar 2010 Melden Teilen Geschrieben 25. Februar 2010 Hi. Gib mal in der Excel-Hilfe den Begriff "Anzahl2" ein. Damian Zitieren Link zu diesem Kommentar
Sigma 10 Geschrieben 25. Februar 2010 Melden Teilen Geschrieben 25. Februar 2010 Hallo, @Damian Deinen Lösungsvorschlag habe ich nicht verstanden. Bei welcher Zellfunktion wird denn die Formel als Text zurückgegeben? Ich kann es nur mittels VBA lösen. @Power-Kiddy Einen der folgenden Codeschnipsel in ein VBA-Modul einfügen und schon ist eine Funktion zum Zählen der Summanden einer Formel verfügbar. Public Function anzahlSummanden(zelle As Range) Dim formel As String Dim zaehler As Integer zaehler = 0 'wenn Formel vorhanden If zelle.HasFormula Then 'Formel als Text holen formel = zelle.Formula 'durch Text durchgehen und Anzahl der '+' zählen Dim i As Integer For i = 1 To Len(formel) If Mid(formel, i, 1) = "+" Then zaehler = zaehler + 1 End If Next 'da die Summanden immer einer mehr als die '+' sind If zaehler > 0 Then zaehler = zaehler + 1 End If 'Ergebnisrückgabe anzahlSummanden = zaehler End Function oder alternativ Public Function anzahlSummanden2(zelle As Range) Dim formel As String Dim dummy As String Dim erg As Integer erg = 0 'alle '+' aus Formel entfernen dummy = Replace(formel, "+", "") 'Verkürzung der Formel entspricht der Anzahl der '+' If Len(dummy) < Len(formel) Then erg = Len(formel) - Len(dummy) + 1 End If anzahlSummanden2 = erg End Function Grüße, Sigma Zitieren Link zu diesem Kommentar
Damian 1.533 Geschrieben 25. Februar 2010 Melden Teilen Geschrieben 25. Februar 2010 Hi. @DamianDeinen Lösungsvorschlag habe ich nicht verstanden. Bei welcher Zellfunktion wird denn die Formel als Text zurückgegeben? Garnicht, mein Lösungsvorschlag ist nämlich Bockm****! :rolleyes: ;) Hab glatt überlesen, dass Kiddy die Anzahl innerhalb einer Zelle zählen will. Wer lesen kann ist klar im Vorteil. :D Damian Zitieren Link zu diesem Kommentar
Power-Kiddy 10 Geschrieben 26. Februar 2010 Autor Melden Teilen Geschrieben 26. Februar 2010 @Power-Kiddy Einen der folgenden Codeschnipsel in ein VBA-Modul einfügen und schon ist eine Funktion zum Zählen der Summanden einer Formel verfügbar. Hallo! Der Code funktioniert und ist recht übersichtlich! Dank Dir! Ich mache kaum was mit VBA und es kostet mich immer wieder Überwindung. Gruß! Kiddy Zitieren Link zu diesem Kommentar
Sigma 10 Geschrieben 26. Februar 2010 Melden Teilen Geschrieben 26. Februar 2010 Hallo, freut mich, dass es geholfen hat. Da Du den ersten Code verwendet hast, ist ein Fehler im zweiten glücklicherweise nicht zum Tragen gekommen. Dort fehlte noch die Zuweisung des Formeltextes. Der Vollständigkeit halber ist hier noch der korrigierte: Public Function anzahlSummanden2(zelle As Range) Dim formel As String Dim dummy As String Dim erg As Integer erg = 0 If zelle.HasFormula Then 'Formel als Text holen formel = zelle.Formula 'alle '+' aus Formel entfernen dummy = Replace(formel, "+", "") 'Verkürzung der Formel entspricht der Anzahl der '+' If Len(dummy) < Len(formel) Then erg = Len(formel) - Len(dummy) + 1 End If End If anzahlSummanden2 = erg End Function Grüße, Sigma Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.