我正在制作电子表格日志:
- 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
在"英国布朗啤酒"
的行中1.040
1.052
期望的结果
我需要做:
sheet1!B2
中的值例如超出此范围的10%,则会将颜色编码为黄色,如何使用可以比较上述值的条件格式?
我需要脚本来实现这一目标吗?
答案 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)
结果:
<强> 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")))
结果:
Sheet1的条件格式规则
选择B列,添加3个新的条件格式(CF)规则,自定义公式:
首先,涂成绿色:
=$G1="green"
接下来,涂成黄色:
=$G1="yellow"
接下来,涂成红色:
=$G1="red"
然后你可以隐藏额外的列。
结果:
我认为,在CF内部只有3个巨大的阵列公式可以做到这一点,而不需要额外的列,但是很难建立一个。