Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Berechnung und Wertanzeige nur unter bestimmten Bedingungen
#1
Guten Morgen allerseits,

ich stoße in einem Excel Sheet auf ein kleines Problem und bräuchte mal bitte Unterstützung. 

Folgendes Szenario:

In den Feldern C5:AP5 werden verschiedene Zahlenwerte eingetragen, wobei die Zeile immer für ein Datum steht. Ich beschreibe es hier mal für Zeile 5, tatsächlich wiederholt sich das ja 365 mal für ein ganzes Jahr. Zeile 5 ist quasi bei mir der 1.1. eines jeden Jahres. 

In AQ5 wird dann eine Summe aus bestimmten Eingabefeldern dieser Zeile berechnet, wobei hier nur ein Wert eingetragen werden soll, wenn in dem angegebenen Bereich auch eine Eintragung vorgenommen wurde. Ich wollte damit verhindern, daß in noch unausgefüllten Zeilen dennoch eine "0" steht. Hierfür habe ich folgende Formel verwendet:

=WENN((ANZAHL2(C5:AP5)>0);C5+E5+G5+I5+K5+M5+O5+Q5+S5+U5+W5+Y5+AA5+AC5+AE5+AG5+AI5+AK5+AM5+AO5;"")

Soweit, so gut...jetzt zum eigentlichen Problem.  
Ab Zeile 9 möchte ich in Spalte AU eine Berechnung durchführen und anzeigen lassen, allerdings NUR, wenn inklusive des Tages, an dem berechnet werden soll, an 5 aufeinanderfolgenden Tagen Zahlenwerte für Ereignisse eingetragen wurden. Es ist nämlich auch möglich daß eine Zeile mal komplett leer bleibt, weil es an dem Tag eben keine Werte zum eintragen gibt. Ich möchte das entsprechende Ergebnis in AU9 aber nur dann anzeigen lassen, wenn in AU5:AU9 auch 5 Tageswerte eingetragen wurden. Wenn es beispielweise nur 4 Werte wären, soll die Zelle leer bleiben. Hierfür habe ich folgende Formel verwendet:

=WENN(UND((ANZAHL2(C9:AP9)>0); (ANZAHL2(AQ5:AQ9)=5));(SUMME(AQ5:AQ9)*AQ3/100);"")

Diese Formel funktioniert soweit auch (fast), allerdings wird in der jeweiligen Zelle in AU auch dann ein Ergebnis angezeigt, wenn weniger als 5 Tageswerte in AQ vorhanden sind. Aber genau das wollte ich ja verhindern.
Meine erste Vermutung war, daß die Formel in AQ9 möglicherweise auch als Zellinhalt gesehen, und deshalb gerechnet wird - ich weiß aber nicht ob das auch wirklich so ist. 


Habt Ihr eine Idee, woran das liegen könnte oder was an der Formel falsch, nicht eindeutig oder einfach nicht vorhanden ist, damit es wie gewünscht funktionieren kann ?? Irgendwo muss ich da einen "Bock" eingebaut haben, aber je länger ich drauf kucke, umso weniger komm ich dahinter. Das is glaub das mit dem "den Wald vor lauter Bäumen nicht sehen"...  Huh

Wäre cool, wenn Ihr weiterhelfen könntet  21
Danke schonmal im Voraus  19
Antworten Top
#2
Hallo S...,

1. zu
Zitat:Meine erste Vermutung war, daß die Formel in AQ9 möglicherweise auch als Zellinhalt gesehen, und deshalb gerechnet wird - ich weiß aber nicht ob das auch wirklich so ist. 
Wie kann man das wohl herausfinden?


2. Nimm für Spalte AG die Funktion ANZAHL anstelle von ANZAHL2.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#3
Hallo,

die Funktion =ANZAHL2(Bereich) zählt die Anzahl nicht-leerer Zellen im Bereich,
die Funktion =ANZAHL(Bereich) zählt die Anzahl Zellen mit Zahlen im Bereich.

Wenn du also per Formel in eine Zelle die Zeichenkonstante "" stellst, so ist diese Zelle nicht leer, auch wenn sie leer erscheint - sie wird daher von ANZAHL2(...) mitgezählt. Dagegen wird eine solche Zelle von ANZAHL(...) nicht mitgezählt, weil es sich um eine Zeichenkonstante handelt und somit um keine Zahl.
Daher in diesem Fall Funktion ANZAHL(...) verwenden.
Mit lieben Grüßen
Anton.

Windows 10 64bit
Office365 32bit
[-] Folgende(r) 1 Nutzer sagt Danke an EA1950 für diesen Beitrag:
  • Schnurbsel
Antworten Top
#4
Hallo S...,

1. zu
Zitat:Meine erste Vermutung war, daß die Formel in AQ9 möglicherweise auch als Zellinhalt gesehen, und deshalb gerechnet wird - ich weiß aber nicht ob das auch wirklich so ist. 
Wie kann man das wohl herausfinden?


2. Nimm für Spalte AG die Funktion ANZAHL anstelle von ANZAHL2.

3. Die erste Und-Bedingung muss nicht abgefragt werden, da ja in AQ9 nur eine Zahl vorhanden sein kann (was in der zweiten Und-Bedingung abgefragt wird), wenn sie erfüllt ist.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#5
(12.03.2021, 08:50)Ego schrieb: 3. Die erste Und-Bedingung muss nicht abgefragt werden, da ja in AQ9 nur eine Zahl vorhanden sein kann (was in der zweiten Und-Bedingung abgefragt wird), wenn sie erfüllt ist.

Stimmt, aber wenn ich dies so abändere, dann befüllt mir Excel leider alle anderen Felder, in denen nicht gerechnet wird, mit einer "0"...und das wollte ich vermeiden.


Dankeschön allen für die schnelle Hilfe. Die Änderung von ANZAHL2 auf ANZAHL hat den gewünschten Erfolg gebracht. Da lag also mein Denkfehler  Blush

Vielen Dank.
Antworten Top
#6
Moin!
Ich würde ja statt
C5+E5+G5+I5+K5+M5+O5+Q5+S5+U5+W5+Y5+AA5+AC5+AE5+AG5+AI5+AK5+AM5+AO5
folgendes schreiben
SUMMENPRODUKT(C5:AO5*REST(SPALTE(C5:AO5);2))

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste