Die bedingte Formatierung von Excel 2007 verwendet nicht ordnungsgemäß die benutzerdefinierte Formel

1840
Charles

In Excel 2007 möchte ich eine Zeile unter bestimmten Umständen farblich kennzeichnen, wenn sie ungerade nummeriert ist, und dann die Farbe variieren, je nachdem, ob eine bestimmte Zelle (in Spalte E) in dieser Zeile eine Zahl (grün) oder leer (rot) enthält. Wenn E15 beispielsweise einen Wert von 2 hat und E13 keinen Eintrag hat, würde ich erwarten, dass Zeile 15 grün und Zeile 13 rot ist.

Meine zwei Formeln sind:
Rot
=IF((MOD(ROW(),2) = 1),NOT(ISNUMBER(INDIRECT("$E$"&ROW()))), FALSE)
färben: Grün färben:
=IF((MOD(ROW(),2) = 1),ISNUMBER(INDIRECT("E"&ROW())), FALSE)

Wenn ich diese Formeln in Zellen in das Arbeitsblatt einfügen, erhalte ich die erwarteten Werte. Für Zeile 15 ist die "rote" Gleichung falsch und die "grüne" Gleichung ist wahr. Für Zeile 13 ist die "rote" Gleichung wahr und die "grüne Gleichung" ist falsch. Wenn ich jedoch diese Formeln im bedingenden Formatierungsformel verwenden, sind alle meine Zeilen rot, irgendwelche Gedanken?

1

1 Antwort auf die Frage

2
Rhys Gibson

Dein Problem ist INDIRECT. Es spielt nicht gut mit Ihren bedingten Formeln, was eine Art Einschränkung zu sein scheint INDIRECT.

Ich glaube jedoch nicht, dass Sie es brauchen. Wenn ich Ihre Anforderung richtig verstanden habe, können Sie einfach die grüne Bedingungsformel in ändern =IF((MOD(ROW(),2) = 1),ISNUMBER($E1), FALSE). Die Verwendung von $E1bewirkt, dass die Formel für jede Zeile neu bewertet wird.

  • =IF((MOD(ROW(),2) = 1), ISNUMBER($E1), FALSE) für E1
  • =IF((MOD(ROW(),2) = 1), ISNUMBER($E2), FALSE) für E2
  • =IF((MOD(ROW(),2) = 1), ISNUMBER($E3), FALSE) für R3
  • usw.

Ebenso können Sie Ihre rote Formel durch ersetzen =IF(MOD(ROW(),2) = 1,NOT(ISNUMBER("$E1)), FALSE)

Ich werde deinen Vorschlag ausprobieren Charles vor 14 Jahren 0
Persönlich würde ich einfach alle alternativen Zeilen mit dem MOD-Bedingungsformat ausmalen und dann die mit Zahlen neu einfärben. Die erste Bedingung ist also viel einfacher und färbt jede ungerade Reihe rot, z. B. die zweite Formel eine mit einer Zahl in Spalte E grün. Dies funktioniert nicht, wenn Sie mit älteren Versionen vor 2007 abwärtskompatibel sein müssen, da es darauf angewiesen ist, dass Sie nicht die alten "Stop if True" -Bewegungsregeln verwenden müssen. AdamV vor 14 Jahren 0
Wow das funktioniert eigentlich! Wie kommt es, dass Zeilennummern neu berechnet werden? Robert Koritnik vor 14 Jahren 0
Es ist nicht so, dass die Zeilennummern berechnet werden, es ist nur so, dass Sie nur herausfinden können, in welcher Zeile sich eine Zelle befindet, indem Sie ROW () verwenden. Rhys Gibson vor 14 Jahren 0
@ Rhys: Was ich meinte war: Wie kommt es, dass $ E1 die Formel zwingt, sich selbst neu zu bewerten? Und woher weiß es, dass es zu einer anderen Zeilennummer wechseln muss? Robert Koritnik vor 14 Jahren 0
@Robert. Ich habe Schwierigkeiten, das einfach zu erklären. Es funktioniert genau wie eine normale Formel. Wenn Sie eine Formel zwischen Zellen kopieren, werden die Zeilen- / Spaltennummern automatisch aktualisiert, um sicherzustellen, dass sie synchron bleiben. Verwenden Sie das $ -Zeichen, um sicherzustellen, dass sich die Komponente nicht ändert. Wenn Sie $ E1 nach unten ziehen, wird $ E1 in $ E2 geändert. Wenn Sie es jedoch nach unten ziehen, bleibt es bei $ E1. Das gleiche gilt für E $ 1, wenn Sie es nach unten ziehen. Wenn Sie es nach unten ziehen, ändern Sie den Wert in F $ 1. Gleiches gilt für bedingte Formatierungsformeln, bei denen dieselbe Formel auf mehrere Zellen angewendet werden soll. Rhys Gibson vor 14 Jahren 0