Тепловая карта 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

Вот результат для пары комбинаций:

Другие вопросы по тегам