¿Cómo formateo condicionalmente una celda en función de diferentes resultados de celda?


2

ingrese la descripción de la imagen aquí

Estoy haciendo una hoja de cálculo que lee códigos de barras para escanear un elemento dentro o fuera. He usado VB para hacer esto cada vez que escaneo un código de barras, por lo que agrega una fecha y hora horizontalmente en una fila cada vez que se escanea el código de barras para que las celdas alternativas se dirijan como 'adentro' y 'afuera' y luego lee una hora y fecha.

Lo que estoy buscando hacer es formatear la celda que contiene el código de barras para resaltar en verde si el elemento está dentro y rojo si el elemento está fuera. Esto sería una referencia rápida al mirar la hoja de todos los elementos.

¡¿Hay alguna forma de hacer esto?! ¡Mis habilidades de excelencia no son muy fuertes, así que ahora estoy luchando un poco!

Respuestas:


1

Puede ser útil para usted tener una columna que indique claramente "Fuera" o "Dentro" en función del número de escaneos. El código se puede colocar en una nueva columna para cada fila y debe informarle esta información. Tenga en cuenta que supongo que un número impar de escaneos indica el estado "Fuera" y un número par de escaneos representa el estado "En".

Agregue esto a una nueva columna:

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

Donde B es la primera columna de marcas de tiempo y ZZ es el más alejado que puedas imaginar que salgan los escaneos.

COUNTA () cuenta el número de celdas que no están en blanco. MOD () realiza el operador de módulo que indica el resto después de la división. IF () establece un valor basado en un resultado verdadero o falso de una prueba.

Desde allí, puede usar el formato condicional para colorear la columna "IN / OUT" como el color apropiado en función de su propio valor.

Si no puede agregar una columna, ya que el código VBA necesitaría ser cambiado y eso no es aceptable, entonces puede usar esta fórmula en lugar de la fórmula que le di a continuación para su formato condicional:

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

Esta fórmula verificará si el artículo está fuera. Use esta fórmula para verificar si está en:

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

¡Creo que este es un gran uso del formato condicional!

Comience seleccionando la columna del código de barras y vaya al formato condicional en la cinta en la parte superior.

Seleccione "Nueva regla"

Elija la última opción en la lista Tipo de regla: "Use una fórmula para determinar qué celdas formatear".

En la barra de fórmulas, use este código, escriba esto

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

Donde A2 representa dónde está la columna de Entrada / Salida. Tenga en cuenta que el signo de dólar mantiene la columna A pero ajusta la regla para cada fila hacia abajo.

Ahora elija el formato que desee (es decir, el fondo de color para la celda del código de barras).

Luego, repetirá estos pasos para formatear con un fondo verde cuando el elemento esté "En".

Editar: solo por el bien de la información, la función ENCONTRAR () intenta encontrar el texto dado en una ubicación específica. Si encuentra el texto que está buscando, devuelve el lugar en la cadena donde comenzó el texto; de lo contrario, devuelve un error. Entonces podemos usar ISNUMBER () para verificar si el valor devuelto era un número y, por lo tanto, se encontraba en la celda especificada.


Hola Joey, gracias por tu ayuda, sin embargo, las celdas no dicen Entrada o Salida, solo tienen una marca de tiempo y luego se publica en la siguiente celda cuando se escanea de nuevo, así que termino con una fila de marcas de tiempo: estoy ¡No estoy seguro de cómo decirlo dentro o fuera cuando copié el código VB de un foro! ¿Hay alguna manera de seguir formateando en una marca de tiempo?
Simon Stevens

¿Podrías editar tu publicación original con un ejemplo? Si lo entiendo correctamente, su fila crecerá continuamente en longitud cada vez que se escanea el elemento. ¿Es esto correcto? En caso afirmativo, ¿es justo decir que si hay un número impar de marcas de tiempo, entonces está desprotegido y un número par significa registrado?
JG7

Agregué una captura de pantalla a mi publicación original. Sí, tendría una línea en continuo crecimiento dependiendo de la cantidad de veces que se escanee el código de barras. Lo siento, es un poco difícil de explicar!
Simon Stevens

Entiendo. Dame un momento para editar mi respuesta.
JG7

Eso funcionó un encanto! Logré modificar el VB, así que fui con su primera fórmula. Muchas gracias por tu ayuda.
Simon Stevens
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.