Autor: Peter Haserodt  --- Aus Excel Standard - Gruppe: Funktionen

!Gefährliche Funktionen

Autor: Peter Haserodt - Erstellt: ?      - Letzte Revision: ?

Gefährliche Funktionen

Diesen Artikel wollte ich schon lange schreiben, konnte mich aber nicht so richtig entschließen wie.
Heute habe ich einfach das Wie in den Wi(e)nd geschossen und mach einfach mal.

Trotzdem ein Hinweis:

Für den Excelanfänger ist dieser Artikel sicherlich nicht so verständlich.
Er richtet sich mehr an diejenigen, die mit Funktionen häufiger arbeiten.


So schön wie Excel ist, so gefährlich ist es auch. Also das nächste Raumfahrtprogramm würde ich nicht damit berechnen. Und viele andere Sachen auch nicht.

Weiterhin möchte ich ausdrücklich darauf hinweisen, dass ich hier nur einige der Tücken aufzähle.
Das liegt einfach daran, dass ich einmal ziemlich faul bin und zum zweiten nicht alle kenne.
Immer wieder werde ich überrascht, was Excel so alles in Petto hält in Bezug auf seltsame Auswertungen. Auch verhalten sich Funktionen sehr unterschiedlich.
Manche Funktionen arbeiten mit manchen Sachen anders.
Viel Spass beim herausfinden welche wie wo was machen.

Ich möchte Sie einfach ein wenig sensiblisieren, wie man das heute unter uns Superhypermanagern so nennt.
(Früher hätte ich einfach gesagt: Eijjjj pass uff)

Braves > (<) und böse > (<)
Wir fangen ganz einfach an!

Ein von jedermann geliebtes Element ist das Untersuchen auf Zahlengrößen.
Bsp.:
 ABCDE
1     
2 5 42
3 3   
4 4   
5 2   
6 1   
7 9   

Formeln der Tabelle
ZelleFormel
E2=ZÄHLENWENN(B2:B7;">" & D2)


Dies ist schön und wunderbar und funktioniert genau so wie gewünscht.

Nehmen wir aber an, wir bekommen Texte von irgendwoher und wollen dort ein wenig zählen.
Und nehmen wir weiter an, dass diese mit < > versehen sind und schon:
 ABCDEFGH
1        
2 >Ast>Ast0 <Ast<Ast4
3 >Baum   <Baum  
4 >Aber   <Aber  
5 >Zaun   <Zaun  
6        
8 >Ast>Ast2 <Baum><Baum>4
9 Baum   <Ast>  
10 Aber   <Aber>  
11 Zaun   <Zaun>  
12        
13 ZeichenAscii     
14 A65     
15 >62     

Formeln der Tabelle
ZelleFormel
D2=ZÄHLENWENN(B2:B5;C2)
H2=ZÄHLENWENN($F$2:$F$5;G2)
D8=ZÄHLENWENN(B8:B11;C8)
H8=ZÄHLENWENN($F$8:$F$11;G8)
C14=CODE(B14)
C15=CODE(B15)


Wie wir sehen, gibt unsere geliebte ZählenWenn Funktion alles mögliche zurück, nur nicht was wir glauben wollen zu können selbst gezählt zu haben ...

Dies was uns oben gefallen hat, schlägt hier zurück.
Tatsächlich werden hier die Vergleiche genau so durchgeführt.
Als Hilfe habe ich Ihnen die Zeichencodes für A und > ausgegeben.
In C2 untersuchen wir >Ast was für Excel heißt: größer Ast. Yep
Da aber A als Zeichencode (65) größer als >(62) bekommen wir alles gezählt.

Gerade das hellblaue Beispiel kann durchaus z.B. über Barcodes vorkommen.

Hier haben wir den Fall <
< hat den Ascii (Zeichencode) von 60.
Wir vergleich kleiner Baum, Baum fängt mit B (66) an.
Wuuuuuuuuupppps und Wooonnnnnnnnnnnnnnnnng

Während man bei ZählenWenn noch schnell drüber stolpert, kann dies bei SummeWenn leicht übersehen werden, weil man Excel einfach glaubt:

 ABCDEF
1      
2 <Baum>3 <Baum>17
3 <Ast>2   
4 <Aber>1   
5 <Zaun>5   
6 <Baum>6   

Formeln der Tabelle
ZelleFormel
F2=SUMMEWENN(B2:B6;E2;C2:C6)


Fazit 1

Hüten Sie sich vor Ausdrücken, in welchen Vergleichsoperatoren vorkommen können.


Ich sehe Sternchen und mehr

Ein weiteres Problem sind Suchmuster.
Suchmuster die uns normalerweise helfen, sind in manchen Funktionen Gift, wenn diese in den Suchbegriffen vorkommen:

 ABCDE
1     
2 Ha* Ha*4
3 Hans Hans1
4 Ha?s Ha?s2
5 Hammer Hammer1

Formeln der Tabelle
ZelleFormel
E2=ZÄHLENWENN($B$2:$B$5;D2)
E3=ZÄHLENWENN($B$2:$B$5;D3)
E4=ZÄHLENWENN($B$2:$B$5;D4)
E5=ZÄHLENWENN($B$2:$B$5;D5)


Dies ist nun für den erfahrenen Suchmusteranwender leicht zu verstehen was passiert.
Mit Ha* suchen wir alle Begriffe, die mit Ha beginnen.

Mit Ha?s alle, die mit Ha beginnen, ein beliebiges Zeichen haben und dann ein s.


Erhalten wir aber Daten mit Suchmustern, kann das sehr unangenehm sein, ein mögliches Szenario:

 ABCD
1    
2 *ABC**ABC*2
3 *ABCD*  

Formeln der Tabelle
ZelleFormel
D2=ZÄHLENWENN(B2:B3;C2)


Auch dieses ist ein Problem, welches leicht aus Datenbanken oder Produktschlüsselnummern entstehen kann.

Fazit 2:

Tauchen Suchmuster in Begriffen auf, ist äußerste Vorsicht geboten.


Ein kleines Schmankerl zwischendurch

Sind Sie schon ein wenig gestählt?
Sind Sie bereit für den ultimativen Test?

Dann bitte ich Sie um eines: Schauen Sie sich erst das Problem an und versuchen Sie es selbst zu erklären, warum das Ergebnis so lautet und lesen Sie dann weiter.
Ich versichere Ihnen, dass hier kein doppelter Boden drin ist. Ganz einfach Excel.
Bilden Sie folgendes nach in Excel und fragen Sie sich, warum hier 0 dabei herauskommt:

 ABCD
1    
2 ABC~*DABC~*D0

Formeln der Tabelle
ZelleFormel
D2=ZÄHLENWENN(B2;C2)


Hey hey,
ich sagte erst nachbauen und denken, bevor weiterlesen !!!



Lösung und Lösung

Tatsächlich führt uns dieses kleine und gemeine Beispiel zu einem Ansatz einer Lösung zumindest für Suchmuster.
Die Ursache ist, dass die Tilde (~) eine Maskierung für Suchzeichen ist.
In unserm Beispiel haben wir dadurch nach ABC*D gesucht aber nicht nach ABC~*D

Mit diesem Wissen, könnten wir zumindest versuchen, für Suchmuster eine Lösung kreieren, in welcher wir im Suchmuster Tilde durch TildeTilde (~~) ersetzen und dann die Suchmuster duch ~Suchmuster.
Oh Oh, ob ich den Satz selbst verstehen würde, wenn ich ihn nicht selbst geschrieben hätte ???

So in der Art:
 ABCD
1    
2 ABC~*DABC~*D1

Formeln der Tabelle
ZelleFormel
D2=ZÄHLENWENN($B$2:$B$2;WECHSELN(WECHSELN(WECHSELN(C2;"~";"~~");"*";"~*");"?";"~?"))


Aber ich will Ihnen nicht verschweigen, dass bei doppel ~~ dies auch zu Problemen führen kann und was weiß ich noch wann sonst.

Zumindest ist es testenswert.


Ein wahrhafter Schuss in den Ofen

In einem Forumsbeitrag wurde folgendes Szenario dargestellt:
(Achtung, dieser Beitrag wurde im Jahre 2008 geschrieben, sollten Sie diesen Beitrag später lesen, ersetzen Sie bitte die 8 durch die Jahreszahl, also z.B. 3.1.9 oder 3.1.10)

Das Problem wie es geschildert wurde im Jahr 2008:
Die Spalte A ist als Text formatiert!
Folgende Werte (hier verkürzt zur Darstellung) wurden eingetragen und die Formel eingegeben:

 AB
13.12
23.1.8 

Formeln der Tabelle
ZelleFormel
B1=ZÄHLENWENN($A$1:$A$2;A1)


Auf den ersten Blick ist diese völlig unverständlich, was hier passiert.

Als DatumsvölligirritierterundgrumpfelmumpfelExcelWürg
kam mir dies sofort spanisch (ne, excellianisch) vor.

Ein typisches Möchtegern Excel Verhalten, welches sich hier extrem Negativ auswirkt.

Bei der Eingabe von scheinbaren Datumcodes reagiert Excel und sagt:
Eine Ziffer + Punkt + Ziffer sollte ein Datum sein. Wenn hinter der der zweiten Ziffer nichts folgt, ist es das aktuelle Jahr.
Wissen wir alle, dass wir so ein Datum eingeben können.

Richtig pervers ist aber, dass ZählenWenn und SummeWenn zumindest, dies genauso auswerten, obwohl wir die Zellen als Text formatiert haben und sagten:
Liebes Excel, das ist ein TEXT - hallo, das ist ein TEXT.
Den genannten Funktionen ist dies vollkommen Wurscht.
Sie machen aus beiden Eingaben einfach den 3.1.2008 und die sind nunmal gleich.

Fazit 3

Genau aus diesem Beispiel heraus kann man sehen, dass man zumindest bei Textvergleichen (oder scheinbaren Textvergleichen) sich auf Excel überhaupt nicht verlassen kann.
Was einen wo wie warum erwartet, ist eine Frage, die niemand beantworten kann.



Zusammenfassung

Extrem anfällig sind ZählenWenn und SummeWenn.
Ich liebe Excel aber da Excel einen solchen Spagat macht, zwischen Anwenderfreundlichkeit und Möglichkeiten, muss man ganz einfach sagen:

Hier fehlt in den anfälligen Funktionen ein Zusatzparameter in der Art:
Vergleiche den genauen Inhalt.

Und ich hoffe, dass ich Sie einigermaßen darauf eingestellt habe:

Aufpassen, nicht alles ist so , wie man glaubt zu denken und wie es dann wirklich ist.




Weitere Artikel der Gruppe: Funktionen Aus Excel Standard
Nach oben
rechte seite