使用 arrayformula 为新条目自动填充公式 - 比较同一列中的单元格

Using arrayformula to autofill formulas for new entries- comparing cells in the same column

在 excel/google 工作表中使用公式的相对初学者,我在弄清楚如何使用数组公式来比较 google 中不同行但同一列的单元格时遇到了一些麻烦工作表(在我的例子中,我如何做 =IF(A3=A2,dothis,elsedothis) 作为数组公式。如果有人有除了数组公式以外的不同解决方案来自动填充公式,我也会感兴趣。

具体情况:

我有一份做过实验的参与者名单,其中一些人做过多次。由于参与者名单很长,一些参与者有多个条目,因此很难看出一个参与者的信息在哪里结束,下一个参与者的信息从哪里开始。所以我想要的是根据参与者的编号交替使用灰色和白色阴影的行(即 001 的所有条目为灰色,002 的所有条目为白色,003 为灰色,等等)。为此,我在右侧的一列中使用了一个公式,该公式检查其上方行中的参与者编号是否相同,如果不相同,则添加一个(我想用它来获取参与者计数稍后的)。这是数据集的样子,我在右边包含了公式。

A       B      ...  ...  X

001   9/1/16   ...  ...  1  (1)  
001   10/1/16  ...  ...  1  (=IF(A3=A2,X2,X2+1))
001   11/1/16  ...  ...  1  (=IF(A4=A3,X3,X3+1))
002   9/2/16   ...  ...  2  (=IF(A5=A4,X4,X4+1))
002   10/2/16  ...  ...  2  (=IF(A6=A5,X5,X5+1))
003   10/5/16  ...  ...  3  (=IF(A7=A6,X6,X6+1))
...

所有这一切都工作得很好,但问题是,当我输入一个新行时,它不会自动填写公式,因此阴影不会调整。我想我每次输入新的参与者信息时都可以重新拖动公式,但这很乏味而且我不是唯一一个使用它的人,所以它很快就会变得一团糟。从我查找的内容来看,arrayformula 是我应该使用的。但是如果使用 arrayformula,则必须将列作为一个整体来引用。有人有什么想法吗?

实现预期结果的一种方法:

要根据参与者的编号交替显示灰色和白色阴影的行,请执行以下操作:

  1. Format 菜单下选择 conditional formatting

Conditional format rules 对话框的条目

  1. apply to range select范围内 例如A2:A16(可能包含空白单元格)
  2. 对于Format cell if选择Custom formula is
  3. 在下面的文本框中键入 =isodd(A2:A16)
  4. 对于Formatting style选择Custom
  5. fill 按钮中选择 gray color
  6. 终于打到了Done

要获得参与者人数,您可以使用公式=countunique(A2:A16)

假设您已经涵盖了条件格式,我相信您使用的公式可以变成一个单一的数组公式,以便在添加新行时输出自动扩展。示例:

={1; ArrayFormula(IF(LEN(A3:A), offset(A2,0,0,ROWS(A3:A),1) + IF(A3:A = offset(A2,0,0,ROWS(A3:A),1), 0, 1),))}

看看这对你有用吗?

注意:电子表格中使用的条件格式自定义公式是

=AND($X1<>"", ISODD($X1)) 

你完全可以做到这一点,根本不需要额外的帮助列,只需要使用条件格式:

要添加到条件格式选项中的自定义函数是:

=isodd($A:$A)=TRUE

最后如果你还想知道你的参与者人数,你可以使用这个:

=COUNTA(UNIQUE(A:A))