按 ID 交替行底纹 - OpenOffice 中的条件格式

按 ID 交替行底纹 - OpenOffice 中的条件格式
02902982085   4   a   ?  <-- yellow
02902982085   #   1   r  <-- yellow
02902982085   b   $   0  <-- yellow
01395235224   w   z   [  <-- blue
01395235224   a   -   5  <-- blue
10352351342   r   .   r  <-- yellow
10352351342   z   2   -  <-- yellow
10352351342   2   x   0  <-- yellow
10352351342   q   ]   /  <-- yellow

我想根据第一列交替显示浅黄色和浅蓝色。数据按 ID(即第一列)分组。可以有 10+ 组或只有 1 组。如何实现?


(*) 我目前正在使用的方法是使用这个 ruby​​ 脚本来生成数字,然后将其输入到列中并计算 =ISEVEN(),然后在 OpenOffice 中进行条件格式设置(参见下图):

f = File.readlines("shading.txt") #<-- I just copy and paste a column from spreadsheet to here

$i = 0
$switch = 0

open('shading_out.txt','a'){|g|
while $i < f.size do
    if f[$i] == f[$i+1]
        g.puts ($switch).to_s + "    " + ($switch).even?.to_s
    else
        if $i == (f.size-1)
            $switch-=1
            g.puts ($switch).to_s + "    " + ($switch).even?.to_s
        else
            g.puts ($switch).to_s + "    " + ($switch).even?.to_s
            $switch+=1
        end
    end
    $i += 1 
end
}

这简直太荒谬了...这是上述程序的输入(实际上我只是将电子表格中的一列复制并粘贴到文本文件中):

02902982085
02902982085
02902982085
01395235224
01395235224
10352351342
10352351342
10352351342
10352351342

这将给出以下输出:

0    true
0    true
0    true
1    false
1    false
2    true
2    true
2    true
2    true

但我只会生成数字并将列复制到我正在处理的电子表格中,我包含了布尔值来帮助解释我在 (*) 中的方法。

我本质上需要一种方法来获取像这样的 TRUE FALSE 列(不使用其他程序而仅使用 OpenOffice 公式/技术):

02902982085   4   a   ?  TRUE  <-- true's would be blue
02902982085   #   1   r  TRUE
02902982085   b   $   0  TRUE
01395235224   w   z   [  FALSE <-- false's would be yellow, i.e., =NOT($E1) would be true for second conditional (see image below)
01395235224   a   -   5  FALSE
10352351342   r   .   r  TRUE
10352351342   z   2   -  TRUE
10352351342   2   x   0  TRUE
10352351342   q   ]   /  TRUE

这样我就可以根据“forumla is”选项执行条件格式,在本例中为 E 列。这样,所有 TRUE 条目都将变为蓝色,第二个条件将是 =NOT($E1),这将使所有 FALSE 条目变为黄色。据我所知,OpenOffice calc 无法在 ID 切换时切换虚拟变量的值,即两个 FALSE 实例,这就是我使用 ruby​​ 的原因……


在此处输入图片描述

相关内容