Hallo, ich habe bei Excel in einer Zelle folgendes stehen: =12,8+17,95+49,95+9. Ich möchte daraus die Anzahl der Werte auslesen, also 4. Wer kann helfen?

... komplette Frage anzeigen

5 Antworten

Das kommt darauf an, was sonst noch in der Zelle stehen kann.
Bei dem Beispiel oben genügt:

=LÄNGE(A1)-LÄNGE(WECHSELN(A1;"+";""))+1

Wenn nur die vier Grundrechenarten vorkommen können:

=LÄNGE(A1)-LÄNGE(WECHSELN(WECHSELN(WECHSELN(WECHSELN(A1;"+";"");"-";"");"*";"");"/";""))+1

Reicht das schon für Dein Vorhaben?

P.S.: Voraussetzung ist allerdings, dass der Ausdruck als Text vorliegt. Entweder Du setzt ein Hochkomma davor ('=...) oder Du formatierst die Zelle VOR dem Eintragen als Text oder Du lässt einfach das =-Zeichen weg.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Ghanasoccer
20.03.2016, 17:55

Ich dachte, dass du eher auf das kommst als auf das 4-fach-wechseln:

=SUMMENPRODUKT((TEIL(B1;SPALTE(1:1);1)={"+";"-";"*";"/"})*1)+1

Is zumindest kurz :)

1

Als ausbaufähigen Ansatz folgender Vorschlag:

Sub Wertezählen()
Forrmel = Cells(1, 1).Formula
For i = 1 To Len(Forrmel)
If Mid(Forrmel, i, 1) = "+" Then
Wertezähler = Wertezähler + 1
End If
Next
'MsgBox ("Anzahl Werte: " & Wertezähler + 1)
Cells(2, 1) = "'" & Forrmel
Cells(3, 1) = "Anzahl der zu addierenden Werte: " & Wertezähler + 1
End Sub

Zu prüfende Zelle: A1 , entspricht Cells(1,1)
Ausgabe der Formel als Test in A2, entspricht Cells(2,1)
Anzahl der festgestellten Pluszeichen in A3, entspricht Cells(3,1)

Gruß aus Berlin

Antwort bewerten Vielen Dank für Deine Bewertung

Mit normalen Formeln kann man nicht auf die Formeln anderer Zellen zugreifen, sondern nur auf das Ergebnis.

Du könntest Du eine eigene Funktion hinterlegen in VBA:

Function zeicheninzelle(wo)
Dim s As String
s = wo.Formula
s = Replace(s, "*", "+")
s = Replace(s, "/", "+")
s = Replace(s, "-", "+")
For i = 1 To Len(s)
If InStr(i, s, "+") > 0 Then i = InStr(i, s, "+") + 1
zeicheninzelle = zeicheninzelle + 1
Next
End Function

Das kannst Du dann wie eine Formel verwenden, also in eine Zelle
=zeicheninzelle(B1) und es werden die Anzahl der Rechenoperatoren geliefert. Wenn Du stattdessen lieber die Anzahl der Zahlen willst (so hab ich die Frage eher verstanden, muss nach dem next noch ein
zeicheninzelle=zeicheninzelle+1 hinein.

Weißt Du wie man das hinterlegt?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von achimberlin
19.03.2016, 13:37

Hallo, Dein Vorschlag hört sich gut an. Leider habe ich bisher noch nicht mit VBA und Excel gearbeitet, sondern immer nur mit den "normalen" Bordmitteln...Wie hinterlege ich so eine Formel?

0

Vielleicht nicht "die Lösung". Du könntest die "+" Zeichen zählen. Und dann plus 1. Wäre so mein Ansatz.

Antwort bewerten Vielen Dank für Deine Bewertung

Ich glaube nicht, dass das geht.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Oubyi
19.03.2016, 18:13

Selbst ich traue mich nur selten zu behaupten, dass Excel etwas nicht kann.
Angeblich wird die nächste Version sogar Kaffee kochen können ㋛.

Wenn Du also in Excel nicht so fit bist, dann solltest Du Dir überlegen, auf eine Antwort zu verzichten, zumal wenn sie mit "Ich glaube..." beginnt.

2