如何根据单元格旁边的单元格值对单元格进行着色

时间:2016-08-12 14:55:45

标签: google-sheets

我有一个电子表格,我在一天内写下我的活动,并按照一个数字对该活动进行评级,如下所示:

    |Rating |Activity|
----------------------
1pm |   5   | Coding |
2pm |   3   | Shower |
3pm |   7   | Games  |

现在我希望这些细胞的背景根据评级而改变。对于实际的评级单元,我没有问题。

但是当我想为活动单元格着色时,我只能设法将它做成一行。

我有三个使用自定义公式的规则:

Green: F2>=7
Red  : F2<4
Yello: 7>F2>=4

这适用于那个单元格。

我的问题是如何使这些规则适用于一系列细胞。而不是仅将此规则应用于G2,我想将其应用于G2:G20。但是当我这样做时,自定义公式仍会说F2而我需要的基本上是&#34; F {CURRENT_ROW}&#34;。

我认为我需要的是获取当前行的行号而不是2的某种方式,所以我尝试了:

Green: F&ROW(F2:F20)>=7
Red  : F&ROW(F2:F20)<4
Yello: 7>F&ROW(F2:F20)>=4

以及其他一些变体&#34;在F和$周围而不是&amp; (我不知道我在做什么,或者我讨厌这些符号做什么)但我还没有发现任何有用的东西。

有办法做到这一点吗?我想避免为每一行添加特定的规则。

2 个答案:

答案 0 :(得分:0)

比我想象的更容易,只是将公式更改为:

>nul copy nul %OUTPUT_FILE%
echo HOSTNAME,LONGNAME,IPADDRESS,STATE >%OUTPUT_FILE%
for /f %%i in (testservers.txt) do (
    set SERVER_ADDRESS_I=UNRESOLVED
    set SERVER_ADDRESS_L=UNRESOLVED
    for /f "tokens=1,2,3" %%x in ('ping -n 1 -a %%i ^&^& echo SERVER_IS_UP') do (
    if %%x==Pinging set SERVER_ADDRESS_L=%%y
    if %%x==Pinging set SERVER_ADDRESS_I=%%z
        if %%x==SERVER_IS_UP (set SERVER_STATE=UP) else (set SERVER_STATE=DOWN)
    )
    echo %%i [!SERVER_ADDRESS_L::=!] !SERVER_ADDRESS_I::=! is !SERVER_STATE!
    echo %%i,!SERVER_ADDRESS_L::=!,!SERVER_ADDRESS_I::=!,!SERVER_STATE! >>%OUTPUT_FILE%
)

致力于解决我至少要解释的问题。我现在觉得自己像个白痴^^

答案 1 :(得分:0)

我认为可能会有一种稍微简单的方法来获得相同的结果,但主要的好处是如果你的名单是“无穷无尽” - 即不仅仅是F2:F20。

1]由于您几乎涵盖了三种条件的所有可能性,因此您可以跳过其中一种。例如, all Yello(使用标准格式实现)并且仅对GreenRed应用CF公式规则。 CF规则将覆盖“标准”格式。

2]在添加规则之前选择整个列F.那么你只需要定义F1的规则,所以少输入一点。不可否认,这意味着F1受CF限制,这可能不适合(虽然很容易通过以下方式处理:一个额外的规则,优先级,只针对那个单元格;通过更改应用于范围 {{1只有F1触发的规则才能F1;或者其他)。

3]您的F2似乎是整数,因此Ratings可能会简化为>=7(以及>6>=4)。

4]由于所有条件完全取决于“旁边单元格的值”,因此同时格式化触发器值可能更好。也就是说,如果基于>3Activity进行着色,则在您使用时给出Rating颜色。为此,只需将Rating扩展一列。