我正在处理 Excel 中的一个数据集,其中包含重复值和非重复值(数字)。如果可能的话,我希望每个重复值组都通过条件格式交替显示阴影。我尝试创建一个“辅助”单元格来为每个重复组增加值,但似乎无法找到方法。
这是数据集的一部分(位于 A2 行至 A30 行)
1
1
1
2
3
6
8
9
10
11
12
15
15
17
18
18
19
20
20
20
20
20
21
21
24
25
25
25
25
预期结果是 1 为红色,15 为绿色,18 为红色,20 为绿色,21 为红色,25 为绿色,等等......
答案1
设置B2
=IF(A2=A3, 1, -2)
并设置B3
为
=IF($A2=$A3, B2, IF($A3=$A4, IF(B2>0,3-B2,B2+3), IF(B2>0,-B2,B2)))
并将其拖到B30
(或包含数据的最后一行,无论它是什么)。如果此行是重复值组的一部分,则计算结果为正数,如果不是(即,如果 ColumnA
包含唯一值),则计算结果为负值。在第一个重复值组中,ColumnB
将为 1;在第二个重复值组中,Column 将为 2;在第三个重复值组中,Column 将再次为 1,依此类推(交替)。在具有唯一值的行上,ColumnB
将包含最近重复值组的值的负数。
一步步:
第一排:
- 如果
A2=A3
,则行2
和3
属于同一重复值组,因此B
应为 1,因为我们希望第一个组编号为 1。否则(如果A2
≠A3
),行2
是不是重复值组的一部分(我们还不知道 Row3
),所以它应该有一个负值。我们将其设为 -2,这样第一个重复值组(当我们找到它时)将被编号为 1。
后续行:
- 如果
A2=A3
,那么这一行和前一行是同一个重复值组的一部分,因此B
应该与前一行相同。 - 否则(若
A2
≠A3
),如果A3=A4
,则该行和下一行是新的重复值组的前两行,B
因此IF(B2>0,3-B2,B2+3)
:- 如果
B2>0
,则前一行是另一个重复值组的最后一行。因此,我们希望在 1 和 2 之间交替值 — 如果前一行是 1,我们希望这一行是 2,反之亦然。表达式3-B2
实现了这种交替行为:3-1
是 2 并且3-2
是 1。 - 否则(如果
B2
≤0
),则前一行在 Column 中具有唯一值A
,并且 ColumnB
具有最新组的值的负值B
。同样,我们希望在 1 和 2 之间交替值 — 如果前一行是 -1,我们希望这一行是 2,反之亦然。我们用 得到这个B2+3
:-1+3
是 2 并且-2+3
是 1。
- 如果
否则(如果
A3
≠A4
),则此行是一个唯一值行,因此B
也是IF(B2>0,-B2,B2)
:- 如果
B2>0
,那么前一行是不同重复值组的最后一行,我们希望这一行的B
值是该值的负数。 - 否则(如果
B2
≤0
),前一行也是唯一值行,因此我们希望保留相同的B
值。
我想我可以
-ABS(B2)
在这里说。- 如果
所以现在,显然,如果列中的值为 1,则使用条件格式将单元格颜色设为红色,如果列中的值为B
2,则将单元格颜色设为绿色。