条件格式基于单独列中的值,基于单独工作表中的数据验证

时间:2016-10-04 14:36:11

标签: google-sheets formula gs-conditional-formatting

我正在制作电子表格日志:
  - sheet1上的主要条目   - sheet2上的名称和数据的静态列表

在sheet1中,我根据sheet2中的名称通过数据验证输入值。稍后我在sheet1中添加一个值。需要将此值与sheet2中列出的最小值和最大值进行比较,然后根据与sheet2中的值的%偏差通过条件格式进行颜色编码。例如:

在sheet1中我有数据:

     A                          B
1    value                      OG 
2    British Brown Ale          1.045 

British Brown Ale通过从“数据验证”列表填充的下拉列表输入。在B2我有" OG"是1.045

在sheet2中,数据如下所示:

     A                          B          C
1    value                      min OG     max OG 
2    British Brown Ale          1.040      1.052 

在"英国布朗啤酒"

的行中
    第2栏中的
  • (" Min OG")我的值为1.040
  • 第3栏中的
  • (" Max OG")我的值为1.052

期望的结果

我需要做:

  1. 范围内的范围为1.040至1.052 100%,颜色代码为绿色,
  2. 如果sheet1!B2中的值例如超出此范围的10%,则会将颜色编码为黄色,
  3. 超过10%的颜色为红色。
  4. 如何使用可以比较上述值的条件格式?

    我需要脚本来实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

可以只使用公式。最好的方法是仅使用ArrayFormula以自动生成所有公式。

<强> Sheet 2中

添加两列:“min - 10%”和“max + 10%”

单元格D2中的

=ArrayFormula(OFFSET(B2,,,COUNTA(A2:A))/1.1)
单元格E2中的

=ArrayFormula(OFFSET(C2,,,COUNTA(A2:A))*1.1)

结果:

enter image description here

<强> Sheet 1中

获得“min”,“max”,“min-10%”,“max + 10%”的4个公式

单元格C2中的

=ArrayFormula(VLOOKUP(OFFSET(A2,,,COUNTA(A2:A)),sheet1!A:E,2,0))
单元格D2中的

=ArrayFormula(VLOOKUP(OFFSET(A2,,,COUNTA(A2:A)),sheet1!A:E,3,0))
单元格E2中的

=ArrayFormula(VLOOKUP(OFFSET(A2,,,COUNTA(A2:A)),sheet1!A:E,4,0))
单元格F2中的

=ArrayFormula(VLOOKUP(OFFSET(A2,,,COUNTA(A2:A)),sheet1!A:E,5,0))

一个有颜色的公式:

=ArrayFormula(if(--(OFFSET(B2,,,COUNTA(A2:A))<OFFSET(E2,,,COUNTA(A2:A)))+B2>F2,"red",if((OFFSET(B2,,,COUNTA(A2:A))>=OFFSET(C2,,,COUNTA(A2:A)))*(+OFFSET(B2,,,COUNTA(A2:A))<=OFFSET(D2,,,COUNTA(A2:A))),"green","yellow")))

结果:

enter image description here

Sheet1的条件格式规则

选择B列,添加3个新的条件格式(CF)规则,自定义公式:

首先,涂成绿色:

=$G1="green"

接下来,涂成黄色:

=$G1="yellow"

接下来,涂成红色:

=$G1="red"

然后你可以隐藏额外的列。

结果:

enter image description here

我认为,在CF内部只有3个巨大的阵列公式可以做到这一点,而不需要额外的列,但是很难建立一个。