excel 最小降雨量的条件格式
excel conditional formatting for minimum rainfall
如您所知,如果下雨,则有 "trace" 降雨,但量小于 0.1 毫米,因此我们有 0.0 毫米 < 痕迹 < 0.1 毫米。
现在例如,我有一个 table 的降雨数据如下:
Year Jan Feb Mar Apr
2011 24.0 0.0 9.4 57.8
2012 Tr 6.8 29.3 109.2
2013 Tr 46.1 49.3 71.0
2014 0.1 7.9 0.1 14.6
2015 15.4 Tr 25.3 (blank)
如果我想突出最大。每个月的降雨量用黄色填充。这很简单,只需设置一个规则,突出显示前 1 项。
但问题是突出了最小值。每个月的降雨量用绿色填充。
如果我简单地设置一个规则来突出显示底部的 1 项,那么 2 月、3 月和 4 月就可以了。(2011 年 2 月、2014 年 3 月和 2014 年 4 月将被突出显示。)
但是,对于 2014 年 1 月,1 月将突出显示。但我预计 2012 年和 2013 年会突出显示为 Trace < 0.1 mm。
如果我添加一条规则,突出显示包含 "Tr" 的单元格以及底部 1 项规则:
1) January, 2012, 2013, 2014 都高亮了(我只想要2012&2013)
2)二月,2011年和2015年都被高亮显示(我只想要2011年)
我还尝试了以下方法:
第一条规则:公式:=AND(COUNTBLANK($B2)=0,$B2=0) --> Format Green Fill [Stop if true checked]
第二条规则:包含 "Tr" 的单元格 --> 设置绿色填充格式 [如果选中则停止]
第三条规则:底部 1 项 --> 格式化绿色填充 [如果未选中则停止]
逻辑是:
如果有 0.0(不是空白单元格),"Tr" & 0.1,只突出显示 0.0 而不是其他两个...
如果没有 0.0 但有 "Tr" 和 0.1,则仅突出显示 "Tr" 而不是 0.1
如果没有 0.0 和 "Tr" 但有 0.1,则突出显示 0.1
但是这种方法失败了......我认为这是因为 "Stop if true" 不是为了这个目的。
有什么方法可以按照我的意愿正确高亮单元格吗?
基本上,您的规则意味着这样的优先级(1 是最高优先级):
- 列中值为 0 的第一个单元格
- 列中值为 Tr 的第一个单元格
- 列中具有最小值的单元格
这可以通过多种方式完成,但我采用的方法是使用 MATCH
函数查找满足上述第一个条件的单元格行,然后如果返回错误,则执行第二个条件相同,然后如果再次出现错误,则对第三个条件执行相同的操作。
获得所需单元格的行后,只需使条件格式设置规则将当前单元格的行与该行号进行比较即可。
请注意,我从当前单元格中减去 1,因为我编写的数组不包括查看第一行(因为它们只是标签)。例如,当 MATCH
returns 值为 4 时,这意味着第 4 行从查找数组的顶部开始,而不是工作 sheet。由于我使用的查找数组是从工作的第2行开始的sheet,所以我们在做比较时需要减去1。
=(ROW(B2) -1) = IFERROR(MATCH(0,B:B,0),IFERROR(MATCH("Tr",B:B,0),MATCH(MIN(B:B),B:B,0)))
这样做的好处是条件格式可以全部在一个规则中完成。这是因为查找列的行保持不变,但会适当更改列字母。
成品如下:
这是整个sheet的规则视图:
刚刚意识到您可能想要这个:
请注意,它会突出显示当月出现的所有最小值,而不仅仅是第一个(这实际上在概念上更容易做到)。
我用了这个公式:
=AND(NOT(ISBLANK(B2)),OR(B2=0,AND(COUNTIF(B:B,0)=0,B2="Tr"),AND(COUNTIF(B:B,0)=0,COUNTIF(B:B,"Tr")=0,B2=MIN(B:B))))
基本上,对于每个单元格,条件公式:
- 如果为空则计算为 false
- 如果以下任一条件为真,则计算结果为真:
- 这是一个零
- 如果列中没有零并且它是 "Tr"
- 如果列中没有零也没有 "Tr" 并且它等于列的最小值
如您所知,如果下雨,则有 "trace" 降雨,但量小于 0.1 毫米,因此我们有 0.0 毫米 < 痕迹 < 0.1 毫米。
现在例如,我有一个 table 的降雨数据如下:
Year Jan Feb Mar Apr
2011 24.0 0.0 9.4 57.8
2012 Tr 6.8 29.3 109.2
2013 Tr 46.1 49.3 71.0
2014 0.1 7.9 0.1 14.6
2015 15.4 Tr 25.3 (blank)
如果我想突出最大。每个月的降雨量用黄色填充。这很简单,只需设置一个规则,突出显示前 1 项。
但问题是突出了最小值。每个月的降雨量用绿色填充。 如果我简单地设置一个规则来突出显示底部的 1 项,那么 2 月、3 月和 4 月就可以了。(2011 年 2 月、2014 年 3 月和 2014 年 4 月将被突出显示。)
但是,对于 2014 年 1 月,1 月将突出显示。但我预计 2012 年和 2013 年会突出显示为 Trace < 0.1 mm。
如果我添加一条规则,突出显示包含 "Tr" 的单元格以及底部 1 项规则:
1) January, 2012, 2013, 2014 都高亮了(我只想要2012&2013)
2)二月,2011年和2015年都被高亮显示(我只想要2011年)
我还尝试了以下方法:
第一条规则:公式:=AND(COUNTBLANK($B2)=0,$B2=0) --> Format Green Fill [Stop if true checked]
第二条规则:包含 "Tr" 的单元格 --> 设置绿色填充格式 [如果选中则停止]
第三条规则:底部 1 项 --> 格式化绿色填充 [如果未选中则停止]
逻辑是:
如果有 0.0(不是空白单元格),"Tr" & 0.1,只突出显示 0.0 而不是其他两个...
如果没有 0.0 但有 "Tr" 和 0.1,则仅突出显示 "Tr" 而不是 0.1
如果没有 0.0 和 "Tr" 但有 0.1,则突出显示 0.1
但是这种方法失败了......我认为这是因为 "Stop if true" 不是为了这个目的。
有什么方法可以按照我的意愿正确高亮单元格吗?
基本上,您的规则意味着这样的优先级(1 是最高优先级):
- 列中值为 0 的第一个单元格
- 列中值为 Tr 的第一个单元格
- 列中具有最小值的单元格
这可以通过多种方式完成,但我采用的方法是使用 MATCH
函数查找满足上述第一个条件的单元格行,然后如果返回错误,则执行第二个条件相同,然后如果再次出现错误,则对第三个条件执行相同的操作。
获得所需单元格的行后,只需使条件格式设置规则将当前单元格的行与该行号进行比较即可。
请注意,我从当前单元格中减去 1,因为我编写的数组不包括查看第一行(因为它们只是标签)。例如,当 MATCH
returns 值为 4 时,这意味着第 4 行从查找数组的顶部开始,而不是工作 sheet。由于我使用的查找数组是从工作的第2行开始的sheet,所以我们在做比较时需要减去1。
=(ROW(B2) -1) = IFERROR(MATCH(0,B:B,0),IFERROR(MATCH("Tr",B:B,0),MATCH(MIN(B:B),B:B,0)))
这样做的好处是条件格式可以全部在一个规则中完成。这是因为查找列的行保持不变,但会适当更改列字母。
成品如下:
这是整个sheet的规则视图:
刚刚意识到您可能想要这个:
请注意,它会突出显示当月出现的所有最小值,而不仅仅是第一个(这实际上在概念上更容易做到)。
我用了这个公式:
=AND(NOT(ISBLANK(B2)),OR(B2=0,AND(COUNTIF(B:B,0)=0,B2="Tr"),AND(COUNTIF(B:B,0)=0,COUNTIF(B:B,"Tr")=0,B2=MIN(B:B))))
基本上,对于每个单元格,条件公式:
- 如果为空则计算为 false
- 如果以下任一条件为真,则计算结果为真:
- 这是一个零
- 如果列中没有零并且它是 "Tr"
- 如果列中没有零也没有 "Tr" 并且它等于列的最小值