Formateo condicional en la cuarta entrada?

0

Sé cómo cambiar el color de la celda para una entrada duplicada, pero ¿cómo / puedo cambiar el color en cada cuarta entrada? El valor será un combo de letras y números desconocidos, que desea resaltar cada 4ta vez que se ingresa el mismo combo.

Hola a todos, gracias por ayudarme, he subido un ejemplo de cómo me gustaría que se viera la hoja terminada, enlace a continuación.

He resaltado manualmente la cuarta repetición de la combinación de letra / número C020, G020, B004 y F028

Como puede ver, las repeticiones no necesariamente sucederán en la misma fila o después de 4 columnas.

http://s000.tinyupload.com/?file_id=56226468952646159686

James
fuente
¿Significa que la quinta repetición no debe resaltarse? Debe resaltar 4 repeticiones, luego 8 repeticiones, etc.
patkim
¿Puede proporcionar datos de ejemplo? Eche un vistazo a Cómo preguntar y realice nuestro recorrido para aprender a mejorar su pregunta.
Burgi
Gracias pat2015, eso es correcto, del 5 al 7 no estaría resaltado, el 8 estaría y así sucesivamente
James
que programa estas usando? ¿Has mirado probar el número de fila para ver si es un múltiplo de 4?
Fixer1234
Hola, Fixer1234 Estoy usando Excel 2016, los datos relevantes están en la columna en gris, la repetición podría no ocurrir durante 15 días / columnas, podría ocurrir el 7 o 10, etc. no es uniforme. En este momento estamos usando 2 hojas de Excel abiertas una al lado de la otra y verificando manualmente cada entrada para resaltar el 4to evento de los mismos datos.
James

Respuestas:

0

No entiendo exactamente lo que quieres, porque la hoja de cálculo de muestra que has proporcionado no parece tener nada que ver con tu pregunta. Usted dice "los datos relevantes están en la columna atenuada", pero no veo ningún valor repetido en las columnas atenuadas. ¿Te refieres a "RETURN", "RETURN / DC", "TOTAL" y "TOTAL / DC", que se repiten exclusivamente en las columnas no atenuadas?

Pero los datos que presenta en forma narrativa (confusa / poco clara) me dan algo con lo que trabajar. Asumiré que los números están en la fila 1. Comience con la técnica para detectar entradas duplicadas:

=COUNTIF($A1:B1,B1)

que cuenta el número de veces que el valor en esta celda ha aparecido hasta ahora en la fila, hasta la celda actual incluida . Será 1 para la primera aparición de un valor y 2 o más para duplicados. Pero no desea probar si este recuento es mayor que 1; quieres probar si es un múltiplo de 4. Entonces prueba

=MOD(COUNTIF($A1:B1,B1),4)=0

Simplemente use la fórmula anterior para su formato condicional, comenzando con la segunda celda .

En el siguiente,

  • La fila 1 son sus datos (de la pregunta), con formato condicional basado en la segunda fórmula anterior,
  • La fila 2 es la primera fórmula anterior, y
  • La fila 3 es la segunda fórmula anterior.

hoja de cálculo con datos de OP

Entonces, la fila 2 muestra el número de repeticiones en la fila 1, y la fila 3 muestra las columnas donde la fila 2 es un múltiplo de 4 (y esas son las columnas donde se colorea la fila 1).

Scott
fuente
Hola Scott, gracias por tu ayuda, la fila uno de arriba se parece más a lo que busco. He publicado un enlace en la pregunta original anterior con el resultado deseado.
James
0

Según mi entendimiento, sugiero una solución que use un poco de VBA UDF y una columna auxiliar.

Un pequeño ejemplo de hoja simplificada se da a continuación. Los datos relevantes están en las columnas C, E, G e I. A la derecha de cada una de estas columnas hay una columna auxiliar que puede ocultar si lo desea.

ingrese la descripción de la imagen aquí

En primer lugar, en su hoja de trabajo, presione ALT+ F11para acceder al Editor VBA. Inserte un módulo desde el menú Insertar y pegue el siguiente código UDF (función definida por el usuario) en él.

Function prmarr(ParamArray arg()) As Variant

Dim arr1
cnt = 0

For i = LBound(arg) To UBound(arg)

cnt = cnt + arg(i).Rows.Count ' get total rows from all ranges

Next i

ReDim arr1(cnt)  ' re dim the array for those many total rows

cnt = 0  ' reuse the counter now

'create a one dimentional list of array from all of the above ranges
For i = LBound(arg) To UBound(arg)
    For Each cell In arg(i)
        arr1(cnt) = cell.Value
        cnt = cnt + 1
    Next cell
Next i

prmarr = arr1  ' pass this array as return parameter
End Function

Tenga en cuenta que es un código VBA muy básico y que no hay ninguna validación o verificación de errores en el código. Si pasa una matriz horizontal o matrices superpuestas o matrices multidimensionales, podría fallar. Se supone que solo le pasará una matriz de columnas para que funcione correctamente.

Esta función toma un número variable de rangos de matriz de columnas y devuelve una matriz unidimensional que contiene todos los valores de celda que utilizaremos para contar el número total de ocurrencias del valor actual desde la celda inicial desde la primera columna de datos.

Como hay un código VBA en su Excel, debe guardar el archivo como una hoja de trabajo de Excel habilitada para macros .XLSM.

En D1, coloque la siguiente fórmula y arrástrela hacia las filas deseadas.

=COUNTIF($C$1:C1,C1)

Ahora a medida que avanzas a través de las siguientes columnas de ayuda. Cada columna de ayuda requiere una ligera modificación de la fórmula. Aunque la estructura sigue siendo la misma, el número de argumentos aumenta.

En F2, coloque la siguiente fórmula y presione CTRL+ SHIFT+ ENTERdentro de la barra de fórmulas para crear una fórmula de matriz. Excel ahora incluirá la fórmula entre llaves para indicar que es una fórmula de matriz. Este paso, la creación de una fórmula de matriz es necesaria, de lo contrario, dará un resultado incorrecto.

=SUM(IF(prmarr(C$1:C$9,E$1:E1)=E1,1,0))

Comprende esta fórmula. Está pasando C1: C9 y E $ 1: E1 como parámetros a UDF, es decir, columnas anteriores + primer valor de la columna actual hasta el valor de la condición de prueba y verifique si hay una coincidencia con la celda actual. En caso afirmativo, SUM producirá el recuento total de ese valor desde el inicio de la primera columna. Arrástrelo hacia abajo hasta las filas deseadas.

Del mismo modo, ahora la fórmula de la fórmula de matriz en H1 se convierte

=SUM(IF(prmarr(C$1:C$9,E$1:E$9,G$1:G1)=G1,1,0))

Y así.

Complete esto para todas las columnas.

Ahora viene la parte de Formato condicional.

Seleccione la primera celda, es decir, C1 en este caso. Vaya a Formato condicional -> Nueva regla -> Usar una fórmula para determinar qué celdas formatear.

Ahora en la Regla pon la siguiente fórmula

=MOD(D1,4)=0

Seleccione el color de fondo de su elección y haga clic en Aceptar para aplicar el formato a la celda C1.

Ahora, mientras C1 está seleccionado, haga doble clic en Copiar formato y pinte este formato en todas las columnas de datos aplicables.

ingrese la descripción de la imagen aquí

Tenga en cuenta que.

  • Excel podría tener un límite en la cantidad de parámetros que se pueden pasar a un UDF. No estoy muy seguro de si se aplicará y cómo se aplicará si se declara comoParamArray as Variant
  • Sugiero que primero lo pruebe en una hoja de trabajo de prueba con datos de muestra que simulen varias condiciones para obtener una confirmación de que esto funciona como se esperaba antes de aplicarlo a su hoja de producción.
  • Si aún enfrenta algún problema o si hay algún error, actualice aquí e intentaré solucionarlo si el tiempo lo permite.
Patkim
fuente