Тепловая карта Excel с двумя цветовыми правилами – возможно? Используете trunc?
У меня есть две таблицы, показывающие количество соединения A и соединения B в одних и тех же образцах. Например:
Соединение А
Затем я подумал об использовании TRUNC для получения значений без десятичных дробей (отсюда я мог легко получить только десятичные дроби). Например, для двух цветового форматирования у меня были формулы:
Минимум:
=MIN(TRUNC($A$1:$B$2))
Максимум:
=MAX(TRUNC($A$1:$B$2))
Однако это приводит к отсутствию цветных клеток. Если я удалю TRUNC, это сработает, но это противоречит моей цели.
Я был бы признателен, если бы кто-нибудь посмотрел и сказал мне, возможно ли то, что я планирую, и если да, то что я делаю неправильно.
При попытке получить информацию о версии я получаю «Microsoft Office LTSC Professional Plus 2021».
2 ответа
Вы не можете использовать две цветовые шкалы в одной ячейке. Для этого есть две причины: первая – ячейка должна содержать значение, которое является основой форматирования, вторая – цвета нельзя смешивать или добавлять, если они относятся к одному и тому же объекту – в этом случае внутренняя заливка ячейки.
Поэтому, если вы хотите использовать цветовые шкалы — вы можете использовать две соседние ячейки.
Другая возможность — использовать два разных свойства ячейки: внутреннюю заливку и внутренний узор разных цветов. Ячейка может содержать данные для 1 значения, которое относится, например, к соединению B, а внутренний цвет соединения A может быть определен с помощью формулы.
Однако в этом случае вам следует определить отдельные правила для каждого оттенка цвета. Вообще это довольно сложная задача.
Вы можете сделать это через VBA. Вот пример; вы можете настроить цвета в соответствии с вашими потребностями:
Function myColour(compoundA As Double, compoundB As Double)
' takes two concentrations (0-1) and converts to RGB
Dim myRed, myGreen, myBlue As Integer
If (compoundA >= 0 And compoundB >= 0 And compoundA <= 1 And compoundB <= 1) Then
myGreen = 255 - compoundA * 127 - compoundB * 127
myRed = 255 - compoundA * 127
myBlue = 255 - compoundB * 127
Else ' no valid values, make it grey
myGreen = 127
myRed = 127
myBlue = 127
End If
myColour = RGB(myRed, myGreen, myBlue)
End Function
Sub colourMe()
' select a range of two columns (compound A, compound B) before running this macro
Dim rng As Range
For Each rng In Selection.Rows
rng.Interior.Color = myColour(rng.Cells(1).Value, rng.Cells(2).Value)
Next rng
End Sub