我的问题是关于在Excel中编程(为条件格式规则创建一个公式)。
如果我在格式条件公式中使用以下公式:
=INDIRECT("A"&ROW())>1
并适用于所有行包含第一个行,Apply to
字段中包含以下范围:
$A:$F
结果:效果很好。
但是我想将它应用于除
=AND(INDIRECT("A"&ROW())>1;ROW()>1)
结果:现在它无法在任何行上运行。
上述公式中我的错误是什么?
答案 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
这将与您的=AND($A1>1,ROW()>1)
公式具有相同的行为,即:如果此行中第一个单元格的值大于1,请格式化当前行:
然后使用以下方法排除第一行:
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)