Autor
|
Thema: Vorkommen eines Zeichens in Zelle zählen (5078 mal gelesen)
|
carsten-3m Mitglied Dipl.-Ing. Mbau (Produktmanagement, Patent- und Normwesen)
Beiträge: 950 Registriert: 08.05.2007 Excel 2010
|
erstellt am: 05. Okt. 2009 10:38 <-- editieren / zitieren --> Unities abgeben:
Gleich vorweg, ich hab das Problem gelöst, aber... ich mag meinen holprigen Ansatz gar nicht. Frage also: Geht das besser? Aufgabe: Finde in einer benannten Zelle sämtliche Vorkommen eines bestimmten Zeichens. Konkrete Anwendung: Kollege hat eine Aufgabenliste erstellt, in der zu jeder Aufgabe in einer Zelle Namen aufgelistet sind, fein säuberlich durch Komma getrennt. Er zählte die Kollegen immer von Hand, ich wollte das Excel überlassen. Lösungsansatz: Kommas zählen und 1 addieren = Anzahl Namen in der Zelle. Hört sich leicht an. Bis ich dann angefangen habe, dies Excel beizubiegen. Mit Formeln schien mir (vielleicht irre ich hier) das Problem nicht in den Griff zu bekommen, also VBA. Kleine Schleife die Kommas zählt - simpel. Das Ganze als Funktion mit Parameterübergabe. Nur diese Adressübergabe, die wollte mir nicht recht glücken. Nun schauts so aus: Funktionsaufruf für Zelle D8:
Code: =wieviele(ZELLE("Adresse";D8))
Funktion (nicht lachen):
Code: Function wieviele(zelle As String) As Integer Dim n As Integer, zaehler As Integer Dim liste As String liste = Range(zelle) zaehler = 0 For n = 1 To Len(liste) If Mid(liste, n, 1) = "," Then zaehler = zaehler + 1 End If Next wieviele = zaehler + 1 End Function
Die Funktion kann man sicher eleganter programmieren, ohne Frage. Mir geht es aber eher um den Funktionsaufruf. Der sieht unglücklich aus mit der Excelformel als Stütze der Parameterübergabe. Ginge das irgendwie "schöner" (besser)? PS: Sorry für den Roman edit: Schreibteufelfehler ------------------ Seit Pro/E Version 1 dabei, auwei... [Diese Nachricht wurde von carsten-3m am 05. Okt. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADdog Ehrenmitglied V.I.P. h.c.
Beiträge: 2237 Registriert: 30.04.2004
|
erstellt am: 05. Okt. 2009 11:10 <-- editieren / zitieren --> Unities abgeben: Nur für carsten-3m
Zitat: Original erstellt von carsten-3m: ...Mit Formeln schien mir (vielleicht irre ich hier) das Problem nicht in den Griff zu bekommen...
[ Code: =LÄNGE(A1)-LÄNGE(WECHSELN(A1;",";))
.
------------------ Gruß Thomas CADdog, the dog formerly known as TR AutoCAD spricht mit einem, aber viele hören nicht zu. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten-3m Mitglied Dipl.-Ing. Mbau (Produktmanagement, Patent- und Normwesen)
Beiträge: 950 Registriert: 08.05.2007 Excel 2010
|
erstellt am: 05. Okt. 2009 11:24 <-- editieren / zitieren --> Unities abgeben:
|
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 05. Okt. 2009 12:28 <-- editieren / zitieren --> Unities abgeben: Nur für carsten-3m
|
carsten-3m Mitglied Dipl.-Ing. Mbau (Produktmanagement, Patent- und Normwesen)
Beiträge: 950 Registriert: 08.05.2007 Excel 2010
|
erstellt am: 05. Okt. 2009 15:57 <-- editieren / zitieren --> Unities abgeben:
|
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 05. Okt. 2009 17:48 <-- editieren / zitieren --> Unities abgeben: Nur für carsten-3m
|
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 06. Okt. 2009 18:48 <-- editieren / zitieren --> Unities abgeben: Nur für carsten-3m
Hi Carsten, Möglichkeit für eine Lösung mittels benutzerdefinierter Funktion:
Code: Function inWert(ZellInhalt) As Integer inWert = UBound(Split(ZellInhalt, ", ")) + 1 End Function
und als Formel für die Auswertung der Zelle A2 in der Ergebniszelle: =inWert(A2)------------------ Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten-3m Mitglied Dipl.-Ing. Mbau (Produktmanagement, Patent- und Normwesen)
Beiträge: 950 Registriert: 08.05.2007 Excel 2010
|
erstellt am: 07. Okt. 2009 11:02 <-- editieren / zitieren --> Unities abgeben:
Okay, ich sehe ein, dass meine Ausprobierzeit in VBA doch bald zuende gehen muss. Was ihr alles für tolle Sachen kennt. Danke auch Dir Karin. Muss mir mal ein Buch kaufen... ------------------ Seit Pro/E Version 1 dabei, auwei... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 07. Okt. 2009 11:09 <-- editieren / zitieren --> Unities abgeben: Nur für carsten-3m
Zitat: Original erstellt von carsten-3m: Muss mir mal ein Buch kaufen...
Schau dir die Beispiele im Forum an und baue sie nach - das ist das beste "Buch" was du dir kaufen kannst und ist dazu auch noch kostenlos ------------------ Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |