Erstes Zeichen einer Excel-Eingabe in einer Zelle soll nur ein Buchstabe sein dürfen . Wie lautet die Funktion/Syntax?
Hallo. Mein Problem ist , ich möchte in einer bestimmten Spalte als erstes Zeichen nur einen Buchstaben zulassen. Gibt es eine Excel-Funktion oder ein Makro was das durchführen kann ? MfG neulandr
2 Antworten
Markiere z.B. A1 und gehe dann auf:
Daten/ Datentools/Datenüberprüfung/
Dort trägst Du ein:
Einstellungen--> Zulassen: Benutzerdefiniert
Formel:
=UND(CODE(LINKS(A1;1))>=65;CODE(LINKS(A1;1))<=122)
Bei Eingabe- und Fehlermeldung kannst Du Dir aussuchen, was passieren soll.
Hilft Dir das?
An die Umlaute hatte ich gedacht und wollte darauf hinweisen, habe es aber dann leider wieder vergessen. An die Zeichen von 91 bis 96 hatte ich nicht gedacht.
Ich werde die Formel aber nur entsprechend erweitern, falls der FS noch reagiert.
Danke für Deine konstruktive Kritik.
Das ist (relativ) simpel:
=ISTZAHL(FINDEN(LINKS(A1;1);"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZäüöÄÜÖß"))
DH! und voll flexibel, auch für Erweiterung auf andere Zeichen!
Muss nur noch als Warnfunktion umgestaltet werden: entweder in einer umliegenden Zelle als
=FINDEN(LINKS(C21;1);"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZäüöÄÜÖß") =>#Wert!,wenn was nicht Aufgeführtes eingegeben.
eine bedingte Formatierung mit Bedingung =DeineFormel
oder einem Ereignis-µ (spare ich mir angesichts der anderen Möglichkeiten)
Formatierung so, dass eine Fehleingabe auffällig wird
Diese Formel kann auch - statt meiner - in die Datengültigkeit eingegeben werden.
Tolle Idee, das "quasi verkehrt herum" aufzubauen!
Danke für dein Kompliment!
Reguläre Ausdrücke wären mal eine tolle Erweiterung für Excel-Suchfunktionen ;) Das würde es nochmal etwas schlanker machen.
Weitere Abspeckmöglichkeit:
=ISTZAHL(FINDEN(GROSS(LINKS(A1;1));"ABCDEFGHIJKLMNOPQRSTUVWXYZÄÜÖß"))
unglaublich, welche Lösungen möglich sind, wenn jeder die Ideen des anderen aufgreift! (wird häufig durchs Konkurrenzdenken verhindert, bin da auch nicht ganz frei davon und mache mir das nicht immer bewusst!)
Hoffe, der FS vergibt einen Stern!
Ganz kann sich wohl niemand davon frei sprechen, gerade im Bereich Excel, weil die zu verteilenden HA spärlich gesät sind.
Gut dass du nochmal erwähnst, dass ein Füreinander allen mehr hilft als ein Gegeneinander.
Gibt es da Ideen, wie man das gestalten könnte?
In Wennfehler ist das per Formeldefinition gemacht, aber man kann ja nicht zig Formeln einführen: WennNull, WennZuLang, WennZahl...
könnte mir vorstellen, einen Teilausdruck zwischen >spitze Klammern< zu setzen und dann nur so zu wiederholen ><, meinetwegen auch >|...|<
Vllt kann man mit einer konstruktiven Kritik MS wirklich dazu bewegen, sowas einzuführen, vllt aber auch über Druck von OO/LO?
Sollten das vllt intern mal diskutieren!
In VBA lassen sich Reguläre Ausdrücke problemlos nutzen und entsprechend leicht benutzerdefinierte Funktionen gestalten. Das Pattern muss dann natürlich als Zeichenkette übergeben werden.
Man muss dafür nur auf die Bibliotheken des Scripting Hosts verweisen.
Selbst kann man sich das einfach bauen, aber an den gegebenen Formeln kann Microsoft noch gewaltig schrauben. Eine Suche von Texten in Bereichen und Rückgabe von Zelladresse alternativ zum Inhalt wäre eine dringend nötige Erweiterung.
Eine Verkettenfunktion von Texten mehrerer Zellen. Warum gibt es das nicht. Ich kann auch SUMME sowohl über einzelne Werte als auch über Bereiche verwenden.
Matrixformeln transparent, eventuell mit einem eigenen Debugwerkzeug: warum immer alles so abstrakt im Kopf konstruieren müssen?
Erstmal danke für die Antwort.
Das ist jedoch nicht die Lösung meines Problems, da ja nur die zwei fälle WAHR oder FALSCH ausgegeben werden. Mein Ziel ist jedoch das man gar nicht erst eine Zahl eingeben kann als ersten Buchstaben.
Das machst du mit einer Datenüberprüfung. Halte dich an Oubys Anleitung:
Markiere z.B. A1 und gehe dann auf:
Daten/ Datentools/Datenüberprüfung/
Dort trägst Du ein:
Einstellungen--> Zulassen: Benutzerdefiniert
Formel:...
Sorry muss mich korrigieren, es funktioniert. Aber immernoch nicht so wie es soll. Und zwar liegt das Problem ein bisschen in der Funktionssyntax.
=ISTZAHL(FINDEN(GROSS(LINKS(A1;1));"ABCDEFGHIJKLMNOPQRSTUVWXYZÄÜÖß"))
Es lässt sich zwar auf eine Zelle oder eine größere Zellauswahl anwenden, jedoch nicht auf die Verkettung von Zellauswahlen, sprich wenn die Syntax dann z.B. so aussieht:
=ISTZAHL(FINDEN(GROSS(LINKS(A4:14;A8:A18;A12:A22;1));"ABCDEFGHIJKLMNOPQRSTUVWXYZÄÜÖß"))
Gibt es da eine Lösung für ?
Du bist mit der Syntax von Excel nicht vertraut. Zwischenschieben möchte ich die Anmerkung, dass von Verkettungen in der Frage nicht die Rede war.
A4:14;A8:A18;A12:A22;1
A4:14 ist ungültig. Hinter dem Doppelpunkt muss eine Spalte folgen.
Der Befehl Links nimmt zwei Parameter auf: 1 Zelle und Anzahl an Zeichen.
Verkettest du mehrere Zellen, A4&A5&A6&... ist das vorderste Zeichen immer noch dasselbe.
Wenn du zum Beispiel eine Datenüberprüfung auf den Bereich A1:A10 legst mit der Formel =LINKS(A1;1)<>"a" zieht Excel die Formelbezüge relativ herunter. Soll heißen, dass wenn du in A2 ein a eingibst, dieselbe Meldung erscheint, als hättest du separat eine Datenüberprüfung auf A2 mit der Formel =LINKS(A2;1)<>"a" gelegt.
ich hätte das wieder mal fälschlicherweise auf nur einen bestimmten Buchstaben hin verstanden!
zur Lösung: schön, nur hast du dabei übersehen, dass zwischen den Groß- und den Kleinbuchstaben noch die Zeichen [\]^_` sind, ausserdem werden ß, ä ö ü (und fremdsprachige Zeichen, wie œ, é können so nicht integriert werden)