使用 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,则必须将列作为一个整体来引用。有人有什么想法吗?
实现预期结果的一种方法:
要根据参与者的编号交替显示灰色和白色阴影的行,请执行以下操作:
- 在
Format
菜单下选择 conditional formatting
Conditional format rules
对话框的条目
- 在
apply to range
select范围内 例如A2:A16(可能包含空白单元格)
- 对于
Format cell if
选择Custom formula is
- 在下面的文本框中键入
=isodd(A2:A16)
- 对于
Formatting style
选择Custom
- 从
fill
按钮中选择 gray color
- 终于打到了
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))
在 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,则必须将列作为一个整体来引用。有人有什么想法吗?
实现预期结果的一种方法:
要根据参与者的编号交替显示灰色和白色阴影的行,请执行以下操作:
- 在
Format
菜单下选择conditional formatting
Conditional format rules
对话框的条目
- 在
apply to range
select范围内 例如A2:A16(可能包含空白单元格) - 对于
Format cell if
选择Custom formula is
- 在下面的文本框中键入
=isodd(A2:A16)
- 对于
Formatting style
选择Custom
- 从
fill
按钮中选择gray color
- 终于打到了
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))