我有两个表格,显示同一样本中化合物 A 和化合物 B 的含量。例如:
化合物A
示例 1 | 示例 2 | |
---|---|---|
条件 x | 0.5 | 0.01 |
条件 y | 0.05 | 0 |
化合物B
示例 1 | 示例 2 | |
---|---|---|
条件 x | 0.03 | 0.01 |
条件 y | 0.3 | 0.6 |
我想构建一个表格/热图,以便通过条件格式以可视方式查看上述两个表格中的信息。这个想法是重叠两个条件格式单元格着色规则(我不知道这是否可行)。例如,如果 A 的最大值标记为红色,B 的最大值标记为蓝色,两者的最小值标记为白色,那么只有 A 的东西看起来会是粉红色,只有 B 的东西看起来会是蓝色,而同时包含 A 和 B 的东西会呈现各种深浅不一的紫色。
我最初的想法是首先将两个表中的信息合并到一个新表中,例如,化合物 A 的信息将在小数点前编码,化合物 B 的信息将在小数点后编码。如下所示:
化合物A*100+化合物B
示例 1 | 示例 2 | |
---|---|---|
条件 x | 50.03 | 1.01 |
条件 y | 5.3 | 0.6 |
然后我考虑使用 TRUNC 来获取不带小数的值(从那里,我可以轻松获得小数)。例如,对于两种颜色格式,我有以下公式:
最小值:
=MIN(TRUNC($A$1:$B$2))
最大值:
=MAX(TRUNC($A$1:$B$2))
但是,这会导致没有彩色单元格。如果我删除 TRUNC,它就会起作用,但这违背了我的目的。
如果有人能看看并告诉我我的计划是否可行,如果可行,我做错了什么,我将不胜感激。
当尝试获取有关版本的信息时,我得到了“Microsoft Office LTSC Professional Plus 2021”。
答案1
您不能在同一个单元格中使用两个色标。原因有两个:第一,单元格必须包含作为格式基础的值;第二,如果颜色与同一个对象(在本例中为单元格内部填充)相关,则不能混合或添加颜色。
因此,如果您想使用色标,您可以使用两个相邻的单元格。
另一种可能性是使用单元格的两个不同属性:内部填充和具有不同颜色的内部图案。单元格可能包含 1 个值的数据,例如指化合物 B,化合物 A 的内部颜色可以用公式定义。
但是在这种情况下,您应该为每种颜色定义单独的规则。通常,这是一项相当复杂的任务。
答案2
您可以通过 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