Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 基于单独工作表中数据验证的单独列中的值的条件格式_Google Sheets_Formula_Gs Conditional Formatting - Fatal编程技术网

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.040到1.052 100%的范围内,颜色代码为绿色
  • 如果
    表1中的值!B2
    例如,超出此范围的比例高达10%,颜色编码为黄色
  • 超过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
    。Column
    Styles!M
    作为参考
    minog
    Styles!N作为参考
    max OG
    。是否有任何方法可以使用ArrayFormula方法而不必编辑sheet2?它是一个o的直接1:1副本官方数据表,不希望对其进行任何更改。最终,将有3个最小/最大范围根据此进行颜色编码,因此额外列越少越好。参考表不是很大-只有119种样式-因此“很重”算法应该是有效的。是的,你需要将sheet2中的公式替换为Sheet1。自从我设法了解不同公式的工作原理后,这实际上很快就可以实现到我的工作表中——尽管占用了大量的空间。我使用了超过一个完整字母表的
    偏移量
    范围,但另一种方法是我需要添加的信息越多,它就变得非常复杂。这非常有效,谢谢!