Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zählen von Teilen des Feldinhaltes in diversen Zellen





Frage

Hallo, mit Excel kenne ich mich nicht so gut aus. Jetzt brauchen wir im Verein für den Jahresplan eine Liste. Dort soll ersichtlich sein wer für was wie oft eingetragen ist. [b]Problemstellung:[/b] Hinweis: in Spalte A und B steht das Datum. in Spalte C taucht in einigen Zellen ein Stichwort (z.B. "Unterricht" und noch 3 andere) im Text irgendwo auf. Wenn dieses vorhanden ist, sind in der Zelle darunter zwischen 2 und 15 Namen mit Komma (oder Strichpunkt) getrennt. Als Sonderfall gibt es gibt aber auch Stichworte die mit den Namen in einer Zelle stehen. Dort sind es aber immer 3 Namen. Diese Namen sollen irgendwo (auf einem anderen Blatt) mit der Anzahl der Vorkommnisse (alphabetisch sortiert) aufgelistet werden. [sup](ich denke da an 5 Spalten hinter den Namen mit der jeweiligen Zahl)[/sup] Ist so etwas mit vertretbarem Aufwand zu erstellen? Ich habe keine Ahnung wie ich da ansetzen könnte. Formeln oder Makro oder beides? Schon im Voraus Danke für eine Antwort [i]Steffen[/i]

Antwort 1 von Saarbauer

Hallo,

stell mal ein Beispiel hier ein

http://www.netupload.de/

Link hier hinterlegen, vielleicht kommt man damit besser klar

Gruß

Helmut

Antwort 2 von steffen2

ich hatte mir fast gedacht dass es zu kompliziert zum erklären ist.

Link zum Muster

Die Datei existiert bisher nur im Kopf, deshalb ein Dummy-File wie es ungefähr aussieht
(es lässt sich (obwohl htm) auch mit Excel öffnen)

Gruß Steffen

Antwort 3 von nighty

hi all :)

hilfe zur selbsthilfe sollte ein forum sein,ich seh nicht einmal einen ansatz von bemühungen

gruss nighty

Antwort 4 von Saarbauer

Hallo @nighty ,

sei nicht so hartherzig. Aber in diesem Fall habe auch ich Probleme eine vernüftige Lösung zu finden.

@steffen2 wer hat eigentlich die bescheidene Tabelle aufgebaut? da dort kein System drin zu erkennen ist, ist es sehr schwierig eine Lösung zu finden

Gruß

Helmut

P.S. Wäöre auch eine andere Lösung möglich?

Antwort 5 von steffen2

@ Helmut,

Das ganze war/ist momentan ein Word-Text. Die Optik soll gleich bleiben.

Eine Alternative ist natürlich wie bisher einfach von Hand zu zählen. (wie die letzten 20 oder 30 Jahre)

Wenn es nicht geht habe ich auch kein Problem.


Gruß Steffen

Antwort 6 von Shaori

ohne Makro wirst du das schwer hinkriegen können, da du die Namen aus den Zellen filtern musst.

nur mal zum Verständnis: Die Sonderfälle sollen also zum beispiel die "Küche" sein? Wenn ja, gibts eine bestimmte Anzahl an Sonderfällen (wenn ja mal bitte schreiben) oder können das immer mehr werden?

ansonsten nur mal als Lösungsansatz, keine Ahnung ob ich heute noch zeit für sowas habe: man könnte per Makro die einzelnen Fälle aus der Tabelle unten herausziehen und dann die obige Tabelle danach durchsuchen, wenn er dann A-Unterricht zum Beispiel findet soll er in der Zeile darunter durchgehen welche Namen der Tabelle von der Tabelle unten da drin vorkommen. Wenn er Küche irgendwo findet soll er in derselben Zeile nach den Namen suchen

Antwort 7 von steffen2

@ Shaori

die "Küche" ist der einzige Sonderfall.

Aber falls das ganze mit viel Aufwand verbunden ist dann lass es bleiben.

Und für 2008 wird der Plan so umgestaltet dass er besser zu Excel passt. (Da muss ich denn noch jemand überzeugen, aber das klappt heoffentlich)

und dann werde ich es mir in Ruhe ansehen

Gruß Steffen

Antwort 8 von Shaori

Hallo Steffen,

hier der Link, damit du genau siehst was gemeint ist

http://www.netupload.de/detail.php?img=e8124d5370701f1e665946f138ab...

Makro:

Sub count()
Dim zelle As Range
Dim i As Integer

ActiveSheet.Range("C3:C19").Select

For Each zelle In Selection
If InStr(1, zelle.Value, Range("B26").Value) Then
For i = 27 To 36
If InStr(1, zelle.Offset(1, 0).Value, ActiveSheet.Range("A" & i).Value) Then
ActiveSheet.Range("B" & i).Value = ActiveSheet.Range("B" & i).Value + 1
End If
Next i
End If

If InStr(1, zelle.Value, Range("C26").Value) Then
For i = 27 To 36
If InStr(1, zelle.Offset(1, 0).Value, ActiveSheet.Range("A" & i).Value) Then
ActiveSheet.Range("C" & i).Value = ActiveSheet.Range("C" & i).Value + 1
End If
Next i
End If

If InStr(1, zelle.Value, Range("D26").Value) Then
For i = 27 To 36
If InStr(1, zelle.Offset(1, 0).Value, ActiveSheet.Range("A" & i).Value) Then
ActiveSheet.Range("D" & i).Value = ActiveSheet.Range("D" & i).Value + 1
End If
Next i
End If

If InStr(1, zelle.Value, Range("E26").Value) Then
For i = 27 To 36
If InStr(1, zelle.Offset(1, 0).Value, ActiveSheet.Range("A" & i).Value) Then
ActiveSheet.Range("E" & i).Value = ActiveSheet.Range("E" & i).Value + 1
End If
Next i
End If

If InStr(1, zelle.Value, Range("F26").Value) Then
For i = 27 To 36
If InStr(1, zelle.Value, ActiveSheet.Range("A" & i).Value) Then
ActiveSheet.Range("F" & i).Value = ActiveSheet.Range("F" & i).Value + 1
End If
Next i
End If

Next zelle

End Sub


kurze Erklärung: Das Makro sucht in dem Bereich der am Anfang selektiert wird (dann anpassen an die vollständige Datei) nach den 5 Schlüsselwörtern aus der Tabelle unten (A-Unterricht, B-Unterricht, usw.) und geht dann, wenn er ein Begriff gefunden hat die Namen durch und überprüft ob sie in der nächsten Zeile vorkommen (bei Küche dieselbe Zeile). Wenn dem so ist, wird in der Tabelle einfach entsprechend der Wert um 1 erhöht. Damit das bei dir in der vollständigen Variante läuft musst du schaun, dass du die Bezüge auf die Tabelle unten richtig anpasst. In der gelinkten Datei sind Kommentare im Quellcode, damit du siehst wo du es anpassen musst.
Das Makro befindet sich im Modul1

Falls du Fragen hast oder etwas geändert haben willst dann melde dich hier.

mfg
Shaori

Antwort 9 von Shaori

Nachtrag:

in den Anfangszeilen der If-Schleifen, also zum Beispiel:

If InStr(1, zelle.Value, Range("B26").Value) Then

schreibst du mal bitte

If InStr(1, zelle.Value, ActiveSheet.Range("B26").Value) Then

dann passt es auch mit den Kommentaren und ist sicherer...

am einfachsten ist es, wenn du die Tabelle auf dem gleichen Tabellenblatt lässt :-)

Antwort 10 von steffen2

@ Shaori

SUPER

genau so hab ich es mir vorgestellt.

Ich habe das Makro in meine Musterdatei rüberkopiert und die Zeilen und Spaltennummern angepasst und es ist sofort gelaufen.

Danke !!

Steffen

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: