
Aquí hay un ejemplo de 4 celdas en mi libro de trabajo.
26 99
2 1
El libro se colorea según las reglas 100=rojo 0=amarillo, donde las cosas más cercanas a 0 son más amarillas y las cosas más cercanas a 100 son más rojas (esto se define mediante una regla de formato condicional que asigna colores según el valor).
En este ejemplo, 99 sería muy rojo, 1 y 2 serían muy amarillos y 26 tendría un tinte naranja.
Quiero mantener el mismo color de las celdas pero cambiar los valores en las celdas. En este ejemplo quiero que sean
E=0.0,Q=26 E=0.0,Q=99
E=2.10e-11,Q=2 E=1.02e-08,Q=1
(Observe cómo los valores en el lado derecho de q son los mismos que los de la primera matriz)
Debido a la regla de formato condicional, mis colores desaparecen cuando pego nuevos valores en ellos.
Respuesta1
Siempre puedes agregar 100 condiciones de formato según el valor después de Q=
in E=0.0,Q=99
. Aquí hay una macro que hará eso por usted con cualquier celda que haya seleccionado, comparando cada valor de celda simple con 1 a 100 directamente, o comparándolo con el valor después de Q=
si esa primera comparación produce un error.
Puede eliminar la macro después de ejecutarla para no tener que guardar el archivo como XLSM. Descomente la Selection.FormatConditions.Delete
línea eliminando el apóstrofe si también desea eliminar las condiciones de formato actuales.
Esto supone que su número es siempre un número entero entre 1 y 100 (ya sea como valor de celda simple o después de Q=
). No funcionará para valores decimales.
Sub FormatMe()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
'Selection.FormatConditions.Delete
Dim addr As String
addr = Replace(Selection.Cells(1).Address, "$", "")
For i = 1 To 100
With Selection.FormatConditions.Add(xlExpression, Formula1:= _
"=OR(" & addr & " = " & i & ", IFERROR(RIGHT(" & addr & _
", LEN(" & addr & ") - FIND(""Q"", " & addr & ", 2) - 1) = """ & i & """, FALSE))")
.Interior.Color = RGB(255, 255 - Int(i / 100 * 255), 0)
End With
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Respuesta2
- Suposición: desea utilizar formato condicional (y no VBA)
Suposición: La celda que desea colorear contiene valores 'complejos' como "E=0.0,Q=26"
Respuesta: elija uno: el formato condicional de Excel no es lo suficientemente inteligente como para 'leer' el valor "E=0.0,Q=26" y encontrar el número 26.
- Usar su propia fórmula de formato podría funcionar, pero no puede aplicar un degradado ya que solo aplica un color por condición, también conocido como "si el número es 29, hágalo exactamente de este color". (Hasta donde yo sé, corríjame)
- Excel podría extraer automáticamente el número 26 de su celda y esa celda (vecina) podría formatearse (usando la celda F4
=NUMBERVALUE(RIGHT(F4,LEN(F4)-FIND(",",F4)-2))
).
Mi sugerenciapresente sus datos de una manera diferente, use E y Q como encabezados o algo así y simplemente mantenga cada número en una celda separada.
Respuesta3
Utilice valores de pegado para que solo se peguen los números; de lo contrario, también se pegue el formato.