Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Textprüfung, ob Wort in Bereich enthalten ist

Textprüfung, ob Wort in Bereich enthalten ist
06.11.2024 10:06:04
Marc
Hi,

ich habe Excel-Datei erstellt, die mir anhand von Einträgen pro Kalenderwoche (in meinem Fall konkret zwischen Mi-Fr) ermittelt, welche Personen nicht eingetragen sind und diese entsprechend als abwesend ausweist. Die Idee: Jede Person muss an einem der drei Tage (Mi, Do oder Fr) eingetragen sein, dann verschwindet man aus dem Feld derer, die als fehlend ausgewiesenen werden. (Trägt man sich an mehreren Tagen ein ist das erst mal "egal").

Mein Problem: Heute prüfe ich nur auf den exakten Wert, also z.B. "Max" oder "Mustermann" und die Namen müssen zwingend mit einem Komma getrennt sein - egal ob bei den Wochentagen oder in dem Block abwesend. Solange man sich daran hält gibts kein Problem.

Jetzt hat man aber wie gesagt die Möglichkeit sich für eine Kalenderwoche abzumelden und hier fangen die Probleme an. Die Formel zur Prüfung wer fehlt oder auch nicht kann heute nur schwarz oder weiß erkennen. D.h. in dem Feld Abwesend muss eben auch genau "Max" oder "Mustermann" auftauchen gefolgt von einem Komma. Das Komma stört dabei weniger, aber eben die Tatsache, dass jemand, der z.B. "Max (Kundentermin)" einträgt, heute dazu führt, dass die Formel nicht mehr "Max" findet und entsprechend "Max" als fehlend ausweist.

Gibt es also eine Möglichkeit die Formel so umzustellen, dass einfach der Name zwischen zwei Kommas gefunden wird, egal ob es noch einen Zusatz gibt?
Und in dem Zuge habe ich vermutlich direkt das nächste Problem gefunden, dass wenn man z.B. einen Karl und einen Karlo hat, soll der Karl ja weiterhin als abwesend ausgewiesen werden, wenn er sich nicht eingetragen hat und nicht erkannt werden, wenn sich Karlo bei abwesend eingetragen hat.

Um es zu veranschaulichen findet ihr hier eine Beispieldatei zum Status Quo: https://www.herber.de/bbs/user/173410.xlsx

Ich bedanke mich bereits jetzt schon für euren Input/Hilfe.
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textprüfung, ob Wort in Bereich enthalten ist
07.11.2024 08:29:26
MCO
Guten Morgen!

Über eine Formel ist mir das zu kompliziert mit all den Zusatzbedingungen.
Daher hab ich mich für die VBA-Variante entschieden und eine funktion gebaut.

Prinzip: alle gefundenen Namen bei An-+Abwesend werden aus dem Pool rausgenommen. Übrig bleiben die fehlenden.

Aufruf der Funktion (z.b.)
=MA_filter(Mitarbeiter!$B$3:$B$4;F27:F29;G25)


die Funktion gehört in ein Modul, Editor erreichbar mit ALT+F11
Public Function MA_filter(Mitarbeiterpool As Range, Anwesend As Range, Abwesend As Range) As String


Dim ges As Range
Dim MA As String
Dim Abw_arr As Variant
Dim cl As Range

MA = Replace(Mitarbeiterpool(1, 1).Value, " ", "") & ","
Set ges = Union(Anwesend, Abwesend)

For Each cl In ges
ges_str = ges_str & Replace(cl.Value, " ", "") & ","
Next cl

Abw_arr = Split(ges_str, ",")

For i = 0 To UBound(Abw_arr)
If Abw_arr(i) > "" Then MA = Replace(MA, Split(Abw_arr(i), "(")(0) & ",", "")
Next i

MA = Replace(Left(MA, Len(MA) - 1), ",", ", ")
MA_filter = "Es fehlen: " & MA
End Function

Schreib mal, ob es so passt.
Gruß, MCO
Anzeige
AW: Textprüfung, ob Wort in Bereich enthalten ist
07.11.2024 10:45:42
daniel
Hi
probier mal diese Formel (für G6 in deiner Beispieldatei)

=LET(P;TEXTTEILEN(Mitarbeiter!$B$3;", ");

A;" "&GLÄTTEN(WECHSELN(TEXTVERKETTEN(", ";1;F6:F8;G4);",";" "))&" ";
TEXTVERKETTEN(", ";1;WENN(ISTFEHLER(SUCHEN(" "&GLÄTTEN(P)&" ";A));P;"")))

vor und nach jedem Namen muss ein Komma oder Leerzeichen stehen

Gruß Daniel
Anzeige
AW: Textprüfung, ob Wort in Bereich enthalten ist
07.11.2024 15:00:41
Marc
Ich hab jetzt allerlei Kombinationen probiert und keinen Fehler finden können. Super und herzlichen Dank!! Da wäre ich im Leben nie hingekommen...
AW: Textprüfung, ob Wort in Bereich enthalten ist
07.11.2024 10:11:02
Marc
Toll, MCO. Sieht super aus, klappt in meinem Fall aber nicht. Mit einem Makro kann ich an der Stelle nicht arbeiten, weil die Excel-Datei immer direkt für alle die sie aufrufen ausweisen soll, wer fehlt. Wenn jetzt jeder immer erst nen Button drücken muss, um sich das Ergebnis anzuschauen ist das nicht so richtig praktikabel.

Also sorry, dass ich das nicht gleich eingangs geschrieben habe und du dir jetzt die Mühe gemacht hast.

Ich habe in der Zwischenzeit noch mit FINDEN(), bzw. INDEX() und VERGLEICH() rumprobiert, komme da aber noch nicht so richtig auf einen grünen Zweig. :(
Anzeige
AW: Textprüfung, ob Wort in Bereich enthalten ist
07.11.2024 10:23:34
MCO
Welchen Button willst du denn drücken?
Du sollst ne Formel eingeben und die Datei als xlsm abspeichern. Wenn dann jeder Mitarbeiter die Mappe noch aktiviert ist alles in Butter.

Aber wenn du weiter an einer Formellösung arbeiten möchtest, ist das natürlich auch völlig in Ordnung.
Da bin ich dann aber raus.
Beitrag bleibt offen...

Viel Erfolg!
Gruß, MCO
Anzeige
AW: Textprüfung, ob Wort in Bereich enthalten ist
07.11.2024 10:48:26
Marc
Da merkt man, dass ich eben VBA Anfänger bin. :)
Bisher habe ich Makros immer ausgeführt, in dem ich irgendwo in der Excel-Datei einen Button erstellt habe und darüber die Funktion ausgelöst habe, die ich aufrufen wollte. Dass man es als Zell-Formel eingeben kann war mir neu.

Ich habs also mal probiert und siehe da, funktioniert lokal. Am Beispiel mit "Karl", bzw. "Karlo" führt die Änderung in der Spalte Abwesend dazu, dass bei "Es fehlen:" mal der eine oder andere ausgewiesen wird.

Was mir aber aufgefallen ist: Wenn ich die Datei lokal öffne hatte ich jetzt vereinzelt - es kommt halt eben nicht immer - den Hinweis, dass Makros erst mal deaktiviert wurden und ich sie aktivieren muss. Wobei die Zelle G27 auch bei ausgeschaltetem Makro lokal einen Text ausgewiesen hat.

Noch "schlimmer" wirds aber, wenn ich die Datei nicht mehr lokal nutze, sondern wie in unserem Fall direkt in Teams in einem Team als Tab einbinde. Wenn ich die Datei mir anzeigen lassen klappt der erste Aufruf ohne Probleme. In dem Moment, wo ich aber in G25 aus "Karlo (Kunde)" ein "Karl (Kunde)" oder umgekehrt mache zeigt mir G27 nur noch einen Fehler, bzw. den Hinweis "#NAME?" an.

Mache ich was falsch oder stößt ein Makro, was so eingebunden wird einfach an Grenzen?
Anzeige
AW: Textprüfung, ob Wort in Bereich enthalten ist
08.11.2024 06:59:48
MCO
Moin,
Ja, Makros laufen nur auf dem lokal installierten Office, nicht in der Webversion von Excel und nicht über irgendwelche Excel-Plugins anderer Programme.
Für die Webversion müsste man alles auf SCRIPT umbauen, das hilft dir hier aber nicht.

Ob ein Hinweis zum aktivieren kommt oder nicht liegt in den Sicherheitseinstellungen hinterlegt.
"Makros immer aktivieren" könnte bei unsicheren Quellen dazu führen, dass ein bösartiges Makro unerwünschte Dinge tut.... (Vorsichtig formuliert)

Gruß, MCO
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige