Wie kann ich eine Zelle basierend auf unterschiedlichen Zellenergebnissen bedingt formatieren?

433
Simon Stevens

Wie kann ich eine Zelle basierend auf unterschiedlichen Zellenergebnissen bedingt formatieren?

Ich erstelle eine Tabelle, in der Barcodes gelesen werden, um ein Objekt ein- oder auszulesen. Ich habe VB dazu jedes Mal verwendet, wenn ich einen Barcode scanne, so dass jedes Mal, wenn der Barcode gescannt wird, ein Datum und eine Uhrzeit horizontal in einer Zeile eingefügt werden, sodass abwechselnde Zellen als 'in' und 'out' angezeigt werden und dann eine Zeit und ein Datum lesen.

Was ich suche, ist die Zelle zu formatieren, die den Barcode enthält, um grün hervorzuheben, wenn der Artikel eingelegt ist, und rot, wenn der Artikel nicht vorhanden ist. Dies wäre dann eine schnelle Referenz, wenn Sie auf das Blatt aller Artikel blicken.

Gibt es eine Möglichkeit, dies zu tun ?! Meine exzellenten Fähigkeiten sind nicht sehr stark, so dass Sie jetzt ein bisschen kämpfen müssen!

2

1 Antwort auf die Frage

1
JG7

Es kann hilfreich sein, wenn Sie eine Spalte haben, die "Out" oder "In" basierend auf der Anzahl der Scans enthält. Der Code kann für jede Zeile in eine neue Spalte eingefügt werden und sollte Sie über diese Informationen informieren. Ich gehe davon aus, dass eine ungerade Anzahl von Scans den Status "Out" angibt und eine gerade Anzahl der Scans den Status "In".

Fügen Sie dies einer neuen Spalte hinzu:

=IF(MOD(COUNTA($B2:$ZZ2),2)=0,"In", "Out") 

Wo B die erste Spalte mit Zeitstempeln ist und ZZ der weiteste ist, den Sie sich vorstellen können, gehen Scans aus.

COUNTA () zählt die Anzahl der nicht leeren Zellen. MOD () führt den Modulo-Operator aus, der den Rest nach der Division angibt. IF () legt einen Wert fest, der auf einem tatsächlichen oder falschen Testergebnis basiert.

Von hier aus können Sie die bedingte Formatierung verwenden, um die Spalte "IN / OUT" als die entsprechende Farbe basierend auf ihrem eigenen Wert einzufärben.

Wenn Sie keine Spalte hinzufügen können, da der VBA-Code geändert werden müsste und dies nicht akzeptabel ist, können Sie diese Formel anstelle der unten angegebenen Formel für Ihre bedingte Formatierung verwenden:

=MOD(COUNTA(C1:ZZ1),2)>0 

Diese Formel prüft, ob der Artikel verfügbar ist. Verwenden Sie diese Formel, um zu prüfen, ob es in

=MOD(COUNTA(C1:ZZ1),2)<1 

Ich denke, das ist eine großartige Verwendung der bedingten Formatierung!

Beginnen Sie mit der Auswahl der Barcode-Spalte und gehen Sie zur bedingten Formatierung im oberen Bereich der Multifunktionsleiste.

Wähle "Neue Regel"

Wählen Sie die letzte Option in der Liste Regeltyp aus: "Verwenden Sie eine Formel, um die zu formatierenden Zellen zu bestimmen."

Verwenden Sie in der Formelleiste diesen Codetyp

=ISNUMBER(FIND("Out",$A2)) 

Dabei steht A2 für die Spalte In / Out. Beachten Sie, dass das Dollarzeichen die Spalte A enthält, die Regel jedoch für jede Zeile nach unten korrigiert.

Wählen Sie nun die gewünschte Formatierung (dh den farbigen Hintergrund für die Barcode-Zelle).

Sie werden dann diese Schritte für die Formatierung mit grünem Hintergrund wiederholen, wenn das Element "In" ist.

Bearbeiten: Nur zur Information versucht die Funktion FIND (), den angegebenen Text an einem angegebenen Ort zu finden. Wenn er den gesuchten Text findet, gibt er die Stelle in der Zeichenfolge zurück, an der der Text begonnen hat. Andernfalls wird ein Fehler ausgegeben. Dann können wir ISNUMBER () verwenden, um zu überprüfen, ob der zurückgegebene Wert eine Zahl war und sich daher in der angegebenen Zelle befunden hat.

Hallo Joey, Vielen Dank für Ihre Hilfe, die Zellen sagen jedoch nicht In oder Out, sie haben nur einen Zeitstempel und werden dann beim nächsten Scannen in die nächste Zelle geschrieben, sodass ich mit einer Reihe von Zeitstempeln enden kann Ich bin nicht sicher, wie ich es aussagen soll, als ich den VB-Code aus einem Forum kopiert habe! Gibt es eine Möglichkeit, die Formatierung noch mit einem Zeitstempel durchzuführen? Simon Stevens vor 6 Jahren 0
Könnten Sie Ihren ursprünglichen Beitrag mit einem Beispiel bearbeiten? Wenn ich es richtig verstanden habe, wird Ihre Zeile jedes Mal, wenn der Artikel gescannt wird, immer länger. Ist das richtig? Wenn ja, kann man mit Recht sagen, dass bei einer ungeraden Anzahl von Zeitstempeln diese ausgecheckt werden und eine gerade Zahl bedeutet, dass eingecheckt wird? JG7 vor 6 Jahren 0
Ich habe meinem ursprünglichen Beitrag einen Screenshot hinzugefügt. Ja, ich hätte eine ständig wachsende Linie, je nachdem, wie oft der Barcode gescannt wird. Sorry, es ist ein bisschen schwer zu erklären! Simon Stevens vor 6 Jahren 0
Ich verstehe. Gib mir einen Moment, um meine Antwort zu bearbeiten. JG7 vor 6 Jahren 0
Das hat einen Zauber gewirkt! Ich habe es geschafft, die VB zu modifizieren, also ging es mit Ihrer ersten Formel. Vielen Dank für deine Hilfe. Simon Stevens vor 6 Jahren 0
Kein Problem. Ich wünsche ihnen einen wunderbaren Tag! JG7 vor 6 Jahren 0