excel - una - Usar el formato condicional para alternar el formateo de datos por categoría
formato condicional excel ejemplos (3)
Deberá configurar dos reglas de Formato condicional basadas en un tipo único de fórmula como la siguiente.
=MOD(INT(SUMPRODUCT(1/COUNTIF($C$2:$C2, $C$2:$C2))), 2)
=NOT(MOD(INT(SUMPRODUCT(1/COUNTIF($C$2:$C2, $C$2:$C2))), 2))
El problema es que no desea ampliarlo con referencias de columna completas, ya que utiliza la función SUMPRODUCT para proporcionar un procesamiento de tipo array (o cíclico ). Hacer un seguimiento del rango que cubre si las filas y / o columnas se agregan o eliminan se convierte en un problema.
La solución es tener listo un subprocedimiento que pueda crear o renovar rápidamente las dos reglas de FC basadas en la propiedad Range.CurrentRegion . Esa es la ''isla'' de datos que se extiende hasta que se encuentra con una fila o columna completamente vacía.
Sub Set_CF_rules()
With Worksheets("Sheet1")
With .Cells(1, 1).CurrentRegion
With .Resize(.Rows.Count - 1, .Columns.Count).Offset(1, 0)
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MOD(INT(SUMPRODUCT(1/COUNTIF($C$2:$C2, $C$2:$C2))), 2)"
With .FormatConditions(.FormatConditions.Count).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = -0.249946592608417
.Parent.StopIfTrue = True
End With
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=NOT(MOD(INT(SUMPRODUCT(1/COUNTIF($C$2:$C2, $C$2:$C2))), 2))"
With .FormatConditions(.FormatConditions.Count).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.799981688894314
.Parent.StopIfTrue = True
End With
End With
End With
End With
End Sub
Configuré un rojo oscuro y un rojo pálido para el experimento de "rayas" más destacado con el grabador de macros mientras relleno celdas con colores, sombras y patrones variables hasta que encuentre algo que desee y reemplace los valores apropiados en el código anterior.
Tengo una hoja de cálculo con varias filas como esta:
Name | ID | Category | Attributes...
--------------------------------------------------------
name0 | 753 | cat1 | ...
name1 | 724 | cat1 | ...
name2 | 149 | cat1 | ...
name3 | 265 | cat1 | ...
name4 | 032 | cat2 | ...
name5 | 991 | cat2 | ...
name6 | 238 | cat2 | ...
name7 | 005 | cat3 | ...
name8 | 632 | cat3 | ...
name9 | 393 | cat3 | ...
Y me gustaría formatearlo para que sea un poco más fácil distinguir las filas de categorías separadas. Por lo tanto, me gustaría alternar sombreado y no sombreado en función de los valores en la columna Category
. En otras palabras, en el ejemplo anterior, me gustaría que las filas con cat1
sean oscuras, luego cat2
sea liviana, luego cat3
esté oscuro nuevamente en toda la hoja.
es posible?
No creo que esto se haga fácilmente con las herramientas integradas, sin embargo, puede agregar una columna calculada y luego aplicar un formato condicional basado en ella.
Este ejemplo asume que tus datos están ordenados por la columna de categoría. Si no está ordenando la tabla por la columna de categoría, necesitará un paso más, que es crear una tabla de búsqueda donde se calcule el valor TRUE / FALSE COL_STRIPE, luego en su columna COL_STRIPE, realice una VLOOKUP de la misma.
Aquí hay un ejemplo de trabajo
- Agregue la columna calculada
- Agregue una nueva columna llamada COL_STRIPE, en mi ejemplo esta es la columna E.
- Agregue la siguiente fórmula a la columna:
=IF(C2<>C1,IFERROR(NOT(E1),FALSE),E1)
. - Esta columna tiene el valor verdadero o falso.
- Si la categoría es la misma que la fila anterior, el valor COL_STRIPE permanece igual, de lo contrario es negado.
- En el caso de la primera fila, la
IFERROR()
lo configurará en falso. - Copie esta fórmula en la columna.
- Aplicar el formato condicional
- Resalta tu mesa
- Vaya a la Cinta de inicio> Formato condicional> Reglas de resaltar celdas> Más reglas
- Utilice una fórmula para determinar qué celdas formatear:
=NOT($E2)
, esto aplicará el formato a todas las filas para las cuales la columna E (COL_STRIPE) esFALSE
- Haga clic en el botón de formato para establecer el color de fondo deseado.
Seleccione Columnas A: D y INICIO> Estilos - Formato condicional, Nueva regla ..., use una fórmula para determinar qué celdas formatear y Dar formato a los valores donde esta fórmula es verdadera :
=ISEVEN(SUMPRODUCT(1/COUNTIF($C$1:$C1,$C$1:$C1)))
Formato ... , seleccione el formato que prefiera (¿oscuro?), OK, OK.
Para ''luz'' he supuesto que o bien el relleno no es lo suficientemente ligero o, de lo contrario, aplica relleno estándar para adaptarse (CF, donde se desencadena, lo anulará).