Google sheets 基于单独工作表中数据验证的单独列中的值的条件格式
我正在用:Google sheets 基于单独工作表中数据验证的单独列中的值的条件格式,google-sheets,formula,gs-conditional-formatting,Google Sheets,Formula,Gs Conditional Formatting,我正在用: -表1上的主要条目 -表2上名称和数据的静态列表 在sheet1中,我根据sheet2中的名称通过数据验证输入值。稍后,我在sheet1中添加一个值。需要将该值与表2中列出的最小值和最大值进行比较,然后根据与表2中值的%偏差通过条件格式进行颜色编码。例如: 在表1中,我有以下数据: A B 1 value OG 2 British Brown Ale
-表1上的主要条目
-表2上名称和数据的静态列表 在sheet1中,我根据sheet2中的名称通过数据验证输入值。稍后,我在sheet1中添加一个值。需要将该值与表2中列出的最小值和最大值进行比较,然后根据与表2中值的%偏差通过条件格式进行颜色编码。例如: 在表1中,我有以下数据:
A B
1 value OG
2 British Brown Ale 1.045
值British Brown Ale
通过从数据验证列表填充的下拉列表输入。在B2
中,“OG”的值为1.045
在表2中,数据如下所示:
A B C
1 value min OG max OG
2 British Brown Ale 1.040 1.052
在“英国棕色啤酒”一行中:
- 在第2列(“最小OG”)中,我的值为
1.040
- 在第3列(“最大OG”)中,我的值为
1.052
表1中的值!B2
例如,超出此范围的比例高达10%,颜色编码为黄色我需要脚本来实现这一点吗?可以只使用公式。最好的方法是只使用,以便使所有公式都自动生效 第2张 添加两列:“最小值-10%”和“最大值+10%” 在D2单元中:
=ArrayFormula(OFFSET(B2,,,COUNTA(A2:A))/1.1)
=ArrayFormula(VLOOKUP(OFFSET(A2,,,COUNTA(A2:A)),sheet1!A:E,3,0))
在E2单元中:
=ArrayFormula(OFFSET(C2,,,COUNTA(A2:A))*1.1)
=ArrayFormula(VLOOKUP(OFFSET(A2,,,COUNTA(A2:A)),sheet1!A:E,4,0))
结果是:
表1
获得“最小”、“最大”、“最小-10%”和“最大+10%”的4个公式
在单元格C2中:
=ArrayFormula(VLOOKUP(OFFSET(A2,,,COUNTA(A2:A)),sheet1!A:E,2,0))
在D2单元中:
=ArrayFormula(OFFSET(B2,,,COUNTA(A2:A))/1.1)
=ArrayFormula(VLOOKUP(OFFSET(A2,,,COUNTA(A2:A)),sheet1!A:E,3,0))
在E2单元中:
=ArrayFormula(OFFSET(C2,,,COUNTA(A2:A))*1.1)
=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")))
接下来,涂上黄色:
=$G1="yellow"
接下来,涂上红色:
=$G1="red"
然后我们可以隐藏额外的列
结果是:
我认为,在CF中只使用3个巨大的ArrayFormula就可以做到这一点,而不需要做额外的列,但很难构建一个。我对ArrayFormula完全不熟悉,我不完全确定我是否完全理解它在何处设置的方式,但我将尝试完成这项工作并在这里报告。在你发布这篇文章之前,我设计了一个在单元格中使用时会触发绿色的工作公式,但是我无法让它与条件格式一起工作,因为我引用的是不同的工作表,这显然是不可能的<代码>=如果(和(H4*1000>索引(样式!M:M,匹配(F4,样式!C:C,0)),H4*1000无法在一条消息中回复所有内容。若要清除;
F4
是经过验证的数据“英国布朗啤酒”
Styles!
成为sheet2。H4
成为sheet1中的OG
。ColumnStyles!M
作为参考minog
Styles!N作为参考max OG
。是否有任何方法可以使用ArrayFormula方法而不必编辑sheet2?它是一个o的直接1:1副本官方数据表,不希望对其进行任何更改。最终,将有3个最小/最大范围根据此进行颜色编码,因此额外列越少越好。参考表不是很大-只有119种样式-因此“很重”算法应该是有效的。是的,你需要将sheet2中的公式替换为Sheet1。自从我设法了解不同公式的工作原理后,这实际上很快就可以实现到我的工作表中——尽管占用了大量的空间。我使用了超过一个完整字母表的偏移量
范围,但另一种方法是我需要添加的信息越多,它就变得非常复杂。这非常有效,谢谢!