如何将条件格式设置规则应用于除第一行之外的所有行?

时间:2017-01-08 02:57:50

标签: excel excel-formula conditional-formatting

我的问题是关于在Excel中编程(为条件格式规则创建一个公式)。

如果我在格式条件公式中使用以下公式:

=INDIRECT("A"&ROW())>1

并适用于所有行包含第一个行,Apply to字段中包含以下范围:

$A:$F

结果:效果很好。

但是我想将它应用于除之外的所有行 。所以我改成了:

=AND(INDIRECT("A"&ROW())>1;ROW()>1)

结果:现在它无法在任何行上运行。

上述公式中我的错误是什么?

2 个答案:

答案 0 :(得分:2)

起初你的问题很混乱。您可以将条件格式设置规则应用于除第一行以外的所有行"将其应用于$A:$F但不应用于$A$2:$F$1048576

但是我怀疑你想将它应用于列$A:$F中的所有行,但是在测试条件时它将排除第1行。

如果是这样,你的问题就是INDIRECT的不稳定行为。但是这里不需要INDIRECT。您的第一个条件也可以写成:

=($A1>1)

这是因为即使是条件格式也会使用$或省略$来区分固定和可变单元格引用之间的差异。因此,应用于$A:$F的此公式将检查第一行中是$A1>1,第二行中是$A2>1,第三行是$A3>1,依此类推。这是因为$A列是使用$修复的,因此绝对引用列A,但行号1不是固定的,因此是对$A:$F的相对引用实际行..

已应用于INDIRECT

enter image description here

这将与您的=AND($A1>1,ROW()>1) 公式具有相同的行为,即:如果此行中第一个单元格的值大于1,请格式化当前行:

enter image description here

然后使用以下方法排除第一行:

INDIRECT

在条件格式中使用相对单元格引用时的一个缺点是,如果应用它的范围发生更改,则必须更改它们。例如,在这种情况下,如果有人在第1行上方插入一行。

但即便如此,INDEX也没有必要。然后我们可以使用MATCH - =(INDEX($A:$A,ROW())>1)

=AND(INDEX($A:$A,ROW())>1,ROW()>1)

<?php

$json = '{"server_response":[{"id":"9","email":"test@gmail.com=","password":"test"},{"id":"5","email":"json@gmail.com","password":"json"},{"id":"14","email":"wrong@gmail.com","password":"test"},{"id":"13","email":"mail@gmail.com=","password":"mail"}]}
';
$arr = json_decode($json,true); //Converts your json into array

$main = $arr['server_response']; // your array for sorting

$list = array_sort($main, 'id', SORT_ASC); //makes function call
print_r($list);  //desired result

function array_sort($array, $on, $order=SORT_ASC){

    $new_array = array();
    $sortable_array = array();

    if (count($array) > 0) {
        foreach ($array as $k => $v) {
            if (is_array($v)) {
                foreach ($v as $k2 => $v2) {
                    if ($k2 == $on) {
                        $sortable_array[$k] = $v2;
                    }
                }
            } else {
                $sortable_array[$k] = $v;
            }
        }

        switch ($order) {
            case SORT_ASC:
                asort($sortable_array);
                break;
            case SORT_DESC:
                arsort($sortable_array);
                break;
        }

        foreach ($sortable_array as $k => $v) {
            $new_array[$k] = $array[$k];
        }
    }

    return $new_array;
}
?>

答案 1 :(得分:0)

只需向要排除的行添加一个额外的公式规则。 将公式设置为id Column_1 Column_2 1 [1,2,5,7,9] [1,2,5,7] 2 [4,8,2,7] [4,8,2,7] 3 [5,7,2,9] [9] 4 [4,7,2,9] [3] I want to result like id Column_1 Column_2 result 1 [1,2,7] [1,2,5,7,9] [5,9] 2 [4,8,2,7] [4,8,2,7] [] 3 [5,7,2,9] [9] [] 4 [4,7,2,9] [3] [3] 并勾选如果为真,则选择停止。 该规则应位于规则列表的顶部。

Exclude from conditional formatting