Erstes Zeichen einer Excel-Eingabe in einer Zelle soll nur ein Buchstabe sein dürfen . Wie lautet die Funktion/Syntax?

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?

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)
Iamiam  05.10.2015, 13:22

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)

1
Oubyi, UserMod Light  06.10.2015, 10:25
@Iamiam

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.

0

Das ist (relativ) simpel:

=ISTZAHL(FINDEN(LINKS(A1;1);"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZäüöÄÜÖß"))

Jackie251  05.10.2015, 11:56

geniale Idee :-D

2
Iamiam  05.10.2015, 14:28
@Jackie251

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

1
Oubyi, UserMod Light  06.10.2015, 10:47
@Iamiam DH!

Diese Formel kann auch - statt meiner - in die Datengültigkeit eingegeben werden.
Tolle Idee, das "quasi verkehrt herum" aufzubauen!

0
Suboptimierer  06.10.2015, 10:57
@Oubyi, UserMod Light

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ÄÜÖß"))

2
Iamiam  06.10.2015, 10:59
@Oubyi, UserMod Light

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!

2
Suboptimierer  06.10.2015, 11:02
@Iamiam

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.

1
Iamiam  06.10.2015, 17:29
@Suboptimierer Reguläre Ausdrücke:

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!

0
Suboptimierer  06.10.2015, 17:50
@Iamiam

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?

2
neulandr 
Fragesteller
 07.10.2015, 10:50

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. 

0
Suboptimierer  07.10.2015, 10:53
@neulandr

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:...

0
neulandr 
Fragesteller
 07.10.2015, 11:03
@neulandr

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 ?

0
Suboptimierer  07.10.2015, 11:19
@neulandr

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.

0