Hallo,
ich bin nicht so gut im Excel, und habe hier eine Herausforderung, die
ich selbst nicht lösen kann. Eventuell kann mir hier jemand von euch
weiterhelfen, vermutlich ist es für euch nur eine kleinigkeit ;)
Ich habe hier eine Excel Tabelle, in der in einem Feld folgende Formel
bereits vorhanden ist (wurde nicht von mir erstellt, deswegen kenn ich
mich her auch nicht aus):
=WENN(D30="";"";WENNFEHLER(WENN(D30=$C30;3;WENN(LINKS($C30;1)-RECHTS($C3
0;1)=LINKS(D30;1)-RECHTS(D30;1);2;WENN(UND(LINKS($C30;1)<RECHTS($C30;1);
LINKS(D30;1)<RECHTS(D30;1));1;WENN(UND(LINKS($C30;1)>RECHTS($C30;1);LINK
S(D30;1)>RECHTS(D30;1));1;0))));""))
Es geht hier darum, dass abhängig vom Inhalt eines Feldes C30 im Feld
D30 die Nummer 0, 1,2 oder 3 automatisch eingetragen wird. Das
funktioniert auch.
Nun soll diese Formel so erweitert werden, dass wenn in D30 eine 3 steht
(als Ergebnis der oberen Formal) und zusätzlich in anderen Feldern (F30,
H30, J30) KEINE 3 steht, in D30 statt der 3 eine 6 eingetragen werden
soll.
Kann mir hier jemand weiterhelfen?
Danke!
Wenn der ganze Formelschmotz als ein Block aufgefaßt werden kann, dann
vielleicht:
Zelle_D30:
(if (Formelschmotz=3 undzugleich (Zelleliste ungleich 3), then D30=6,
else D30=Formelschmotz)
dani1632 schrieb:> Nun soll diese Formel so erweitert werden, dass wenn in D30 eine 3 steht> (als Ergebnis der oberen Formal) und zusätzlich in anderen Feldern (F30,> H30, J30) KEINE 3 steht, in D30 statt der 3 eine 6 eingetragen werden> soll.
Die Formel wird im folgenden als "Wurst" bezeichnet. Nachdem es bei
dieser Wurst schon wurst ist:
=WENN(UND(Wurst=3;F30<>3;...);"6";Wurst)
oder so
dani1632 schrieb:> wenn in D30 eine 3 steht (als Ergebnis der oberen Formal) und> zusätzlich in anderen Feldern (F30, H30, J30) KEINE 3 steht,> in D30 statt der 3 eine 6 eingetragen werden soll
ich habe verstanden:
wenn eines der Felder (F30, H30, J30) keine 3 enthält,
soll die Formel 6 ergeben,
ansonsten 3. (also ODER-Verknüpfung)
diesen Abschnitt
;3;
durch diesen ersetzen
;WENN(ODER(F30<>3;H30<>3;J30<>3);3;6);
Dieter M. schrieb:> ich habe verstanden:> wenn eines der Felder (F30, H30, J30) keine 3 enthält,> soll die Formel 6 ergeben,> ansonsten 3. (also ODER-Verknüpfung)>> diesen Abschnitt> ;3;>> durch diesen ersetzen> ;WENN(ODER(F30<>3;H30<>3;J30<>3);3;6);
Hallo Dieter,
danke für den Vorschlag - es funktioniert nur leider nicht, weil ich es
nicht eindeutig erklärt habe. Die Bedingung sollte wie folgt lauten:
es soll nur dann eine 6 dort stehen, wenn in KEINEM der Felder eine 3
steht. Du schreibst oben "wenn eines der Felder keine 3 enthält..." das
ist so nicht korrekt.
Beispiel: es geht um das Feld A30:
F30 = 3
H30 = 1
J30 = 2
In A30 würde durch die im Anfangsbeitrag erwähnt Formel eine 3 stehen.
Dann soll hier die 3 bleiben, weil in mindestens einem Feld (nämlich
F30) bereits eine 3 steht.
Wären die Werte so:
F30 = 0
H30 = 1
J30 = 2
dann sollte in A30 eine 6 stehen, weil in KEINEM Feld eine 3 ist.
=WENN(D30="";"";WENNFEHLER(WENN(D30=$C30
;3;
WENN(LINKS($C30;1)-RECHTS($C3
0;1)=LINKS(D30;1)-RECHTS(D30;1);2;WENN(UND(LINKS($C30;1)<RECHTS($C30;1);
LINKS(D30;1)<RECHTS(D30;1));1;WENN(UND(LINKS($C30;1)>RECHTS($C30;1);LINK
S(D30;1)>RECHTS(D30;1));1;0))));""))
> diesen Abschnitt> ;3;>> durch diesen ersetzen
;WENN(ODER(F30=3;H30=3;J30=3);3;6);
Umgangssprachlich hast Du es doch schon passend formuliert, warum baust
Du den Vorschlag von Dieter nicht einfach entsprechend um?
1
WENN(UND(F30<>3;H30<>3;J30<>3);6;3)
bzw.
1
WENN(ODER(F30=3;H30=3;J30=3);3;6)
Ersteres entspricht: Wenn alle 3 Felder keine 3 enthalten, dann nimm 6,
sonst 3.
Zweiteres: Wenn eines der Felder 3 ist, dann 3 sonst 6
Beide Aussagen sind äquivalent, ist also egal welche Variante Du
benutzt.
Leider gibt es hier noch ein Problem, ich bekomme Zirkelbezüge;
z.B. ist in einer Zelle folgende Formel nun:
=WENN(D30="";"";WENNFEHLER(WENN(D30=$C30;WENN(ODER(G30=3;I30=3;K30=3;M30
=3;O30=3;Q30=3;S30=3;U30=3;W30=3;Y30=3);3;6);WENN(LINKS($C30;1)-RECHTS($
C30;1)=LINKS(D30;1)-RECHTS(D30;1);2;WENN(UND(LINKS($C30;1)<RECHTS($C30;1
);LINKS(D30;1)<RECHTS(D30;1));1;WENN(UND(LINKS($C30;1)>RECHTS($C30;1);LI
NKS(D30;1)>RECHTS(D30;1));1;0))));""))
in einer anderen ist:
=WENN(F30="";"";WENNFEHLER(WENN(F30=$C30;WENN(ODER(K30=3;M30=3;O30=3;Q30
=3;S30=3;U30=3;W30=3;Y30=3;I30=3;E30=3);3;6);WENN(LINKS($C30;1)-RECHTS($
C30;1)=LINKS(F30;1)-RECHTS(F30;1);2;WENN(UND(LINKS($C30;1)<RECHTS($C30;1
);LINKS(F30;1)<RECHTS(F30;1));1;WENN(UND(LINKS($C30;1)>RECHTS($C30;1);LI
NKS(F30;1)>RECHTS(F30;1));1;0))));""))
in einer weiteren:
=WENN(H30="";"";WENNFEHLER(WENN(H30=$C30;WENN(ODER(K30=3;M30=3;O30=3;Q30
=3;S30=3;U30=3;W30=3;Y30=3;E30=3;G30=3);3;6);WENN(LINKS($C30;1)-RECHTS($
C30;1)=LINKS(H30;1)-RECHTS(H30;1);2;WENN(UND(LINKS($C30;1)<RECHTS($C30;1
);LINKS(H30;1)<RECHTS(H30;1));1;WENN(UND(LINKS($C30;1)>RECHTS($C30;1);LI
NKS(H30;1)>RECHTS(H30;1));1;0))));""))
und so weiter....
Kann mir jemand sagen wo hier das Problem liegt?
Ich habe die Datei, um die es geht, angehängt; es geht hier z.B. um die
Zelle 30: Es gibt hier in den Spalten E, S und Y einen Zirkelbezug; kann
mir hier jemand weiterhelfen, wie kann ich das sonst lösen? Ich nehme
mal an dass tritt deshalb auf, weil sich die Felder gegenseitig
verweisen.
Vielen Dank!!
dani1632 schrieb:> Kann mir jemand sagen wo hier das Problem liegt?
Daran, das du Zirkelbezüge hergestellt hast, indem du diese Formel auf
eine Zelle angewandt hast, die (direkt oder indirekt) in der Formel
vorkommt.
Kompliziert wird es dadurch, dass die Formel relative Bezüge enthält.
Diese Bezüge ändern sich nämlich, wenn man die Formal durch Kopieren
oder Ausfüllen an andere Zellen weitergibt.
Der Zirkelbezug kommt hier glaube ich dadurch zustande, dass die Zellen
gegenseitig von sich anhängig sind. Das ist hier kein Kopierfehler oder
so, das ist tatsächlich so gewollt. Die Zellen E30, S30 und Y30 müssten
in diesem Fall alle eine 3 bekommen. E30 z.B. ist aber von S30 und Y30
abhängig, und umgekehrt auch...
Hm, ich habe keine Idee... :(
Wenn R30 und X30 anders eingetragen werden, sodass die Zellen Y30 und
S30 keine 3 oder 6 bekommen sollen, dann funktioniert es; dann hat
nämlich nur E30 das korrekte Ergebnis und dadurch eine 6, und nicht eine
3; sobald aber mehrere das korrekte Ergebnis haben, und dadurch eine 3
haben sollten, kommt es zum Problem.
dani1632 schrieb:> Der Zirkelbezug kommt hier glaube ich dadurch zustande, dass die Zellen> gegenseitig von sich anhängig sind.
Natürlich.
> Das ist hier kein Kopierfehler
Wenn kein Kopierfehler, dann ist es ein Design- bzw. Konzeptfehler. Das
ist viel schlimmer. Da muss man nämlich das Design bzw. das Konzept
ÄNDERN.
Änderungen der Formel können das Problem nicht lösen!
Ja, da gebe ich Dir recht, es handelt sich um einen Designfehler.
Hat denn jemand eine andere Idee, wie ich das lösen könnte? Die Excel
Tabelle habe ich ja oben angehängt, da wird das Problem direkt
ersichtlich. In den Punktefeldern jedes Teilnehmers werden die Punkte
0,1,2 oder 3 automatisch berechnet, je nach dem Ergebnis. Wenn nun in
einer Zeile in den 11 Punktefeldern nur genau EINE 3 steht, sollte dort
eine 6 stehen. Im Prinzip ist genau das die Anforderung, mehr nicht :)
Kann ich hier irgendwo etwas programmieren, das erst nachdem die Formeln
fertig angewendet sind, über die Felder geht und ev eine 3 gegen eine 6
korrigiert?
Danke!
Dass ich für so'n Mist wie das Ballgeschubse mal helfe - unglaublich.
Also:
Statt das Ergebnis der Formel aus dem Top-Post in die einzelnen Zellen
E30, G30, I30, etc. einzutragen, stehen die Ergebnisse in den
Hilfszellen AA-AK.
Die Hilfszellen AM-AW prüfen AA-AK auf 3, ist dies der Fall, so ist das
Ergebnis 1, ansonsten 0.
AX bildet die Summe aus AM-AW und prüft auf 1, nur bei 1 ist AX = Wahr.
Bei WAHR gibt es einen einzigen Teilnehmer, der 3 Punkte tippte.
In E30 z.B. wird dann geprüft, ob das zugehörige AM auf 1 gesetzt ist
und AX = WAHR ist. Ist dies der Fall, wird E30 = 6, im anderen Fall wird
E30 = AA.
Mit Hilfszellen kann man eine Formel aufsplitten und so gestalten, wie
es in einer einzigen Formel kaum möglich ist. Die Hilfszellen kann man
durch "ausblenden" verstecken.
Formeln: