Arrays 在单元格范围上使用数组公式,并向两个方向扩展

Arrays 在单元格范围上使用数组公式,并向两个方向扩展,arrays,google-sheets,spreadsheet,array-formulas,Arrays,Google Sheets,Spreadsheet,Array Formulas,我有一个电子表格,跟踪一系列正在进行的研究的参与者。单页数据是我手工输入每项研究参与者姓名的地方。另一张研究历史记录表应自动填写每个参与者的历史记录和总研究 每周,随着群体的增长,新的参与者将被添加到研究历史的A列,新的研究将被添加到数据表中 如果将研究历史B-G列中的公式无限向下扩展,合并新加入的参与者,以及将E-G列中的公式向右扩展,合并新研究,效果更好,我想使用数组公式或其他方法。但是,由于公式已经包含范围,例如在COUNTIF函数中,我无法使数组公式正常工作。我也不知道如何在两个方向上扩

我有一个电子表格,跟踪一系列正在进行的研究的参与者。单页数据是我手工输入每项研究参与者姓名的地方。另一张研究历史记录表应自动填写每个参与者的历史记录和总研究

每周,随着群体的增长,新的参与者将被添加到研究历史的A列,新的研究将被添加到数据表中

如果将研究历史B-G列中的公式无限向下扩展,合并新加入的参与者,以及将E-G列中的公式向右扩展,合并新研究,效果更好,我想使用数组公式或其他方法。但是,由于公式已经包含范围,例如在COUNTIF函数中,我无法使数组公式正常工作。我也不知道如何在两个方向上扩展一个数组,但可能我太笨了


电子表格。

您的目标可以通过多种方式实现,关键问题始终是波动性

例如:可以使用动态定义的名称从定义为=OFFSETData!的图纸数据中获取数据范围$A$1,0,0,伯爵$A:$A,伯爵$1:$1. 然而,使用OFFSET函数会使动态定义的名称变得易变,并且通过扩展,工作表研究历史中的所有公式都指向它

该解决方案建议使用指数函数,以避免波动:

假设图纸数据中的数据范围从A1开始,并且是一个连续的数据范围,即中间没有空白行或空白列

在E1中输入此公式,然后复制到E2:E3,直到最后一列有记录

= T( Data!A1 )
= IF( E$1 = "", "",
COUNTIF( E$8  : INDEX(E:E, 1 + ROW( E$7 ) + COUNTA($A:$A ) - COUNTA( A$1:A$7 ) ), E$3 ) )
= IF( E$1 = "", "", IF( E$5 = "", "Enter Invited", E$4 / E$5 ) )
=COUNTIF( $E8 : INDEX(8:8, - 1 + COLUMN( $E8 ) + COUNTA( Data!$1:$1 ) ), B$7 )
=SUM( $B8:$C8 )
=IF( OR( E$1 = "", $A8 = "" ), "",
IFERROR( CHOOSE( 1 + COUNTIF( Data!A:A, $A8 ), "", E$3 ), "!Err" ) )
在E4中输入此公式,然后复制到带有记录的最后一列

= T( Data!A1 )
= IF( E$1 = "", "",
COUNTIF( E$8  : INDEX(E:E, 1 + ROW( E$7 ) + COUNTA($A:$A ) - COUNTA( A$1:A$7 ) ), E$3 ) )
= IF( E$1 = "", "", IF( E$5 = "", "Enter Invited", E$4 / E$5 ) )
=COUNTIF( $E8 : INDEX(8:8, - 1 + COLUMN( $E8 ) + COUNTA( Data!$1:$1 ) ), B$7 )
=SUM( $B8:$C8 )
=IF( OR( E$1 = "", $A8 = "" ), "",
IFERROR( CHOOSE( 1 + COUNTIF( Data!A:A, $A8 ), "", E$3 ), "!Err" ) )
在E5中输入此公式,然后复制到带有记录的最后一列

= T( Data!A1 )
= IF( E$1 = "", "",
COUNTIF( E$8  : INDEX(E:E, 1 + ROW( E$7 ) + COUNTA($A:$A ) - COUNTA( A$1:A$7 ) ), E$3 ) )
= IF( E$1 = "", "", IF( E$5 = "", "Enter Invited", E$4 / E$5 ) )
=COUNTIF( $E8 : INDEX(8:8, - 1 + COLUMN( $E8 ) + COUNTA( Data!$1:$1 ) ), B$7 )
=SUM( $B8:$C8 )
=IF( OR( E$1 = "", $A8 = "" ), "",
IFERROR( CHOOSE( 1 + COUNTIF( Data!A:A, $A8 ), "", E$3 ), "!Err" ) )
在B8中输入此公式,然后复制到C8,直到最后一行记录

= T( Data!A1 )
= IF( E$1 = "", "",
COUNTIF( E$8  : INDEX(E:E, 1 + ROW( E$7 ) + COUNTA($A:$A ) - COUNTA( A$1:A$7 ) ), E$3 ) )
= IF( E$1 = "", "", IF( E$5 = "", "Enter Invited", E$4 / E$5 ) )
=COUNTIF( $E8 : INDEX(8:8, - 1 + COLUMN( $E8 ) + COUNTA( Data!$1:$1 ) ), B$7 )
=SUM( $B8:$C8 )
=IF( OR( E$1 = "", $A8 = "" ), "",
IFERROR( CHOOSE( 1 + COUNTIF( Data!A:A, $A8 ), "", E$3 ), "!Err" ) )
在D5中输入此公式,然后复制到带有记录的最后一行

= T( Data!A1 )
= IF( E$1 = "", "",
COUNTIF( E$8  : INDEX(E:E, 1 + ROW( E$7 ) + COUNTA($A:$A ) - COUNTA( A$1:A$7 ) ), E$3 ) )
= IF( E$1 = "", "", IF( E$5 = "", "Enter Invited", E$4 / E$5 ) )
=COUNTIF( $E8 : INDEX(8:8, - 1 + COLUMN( $E8 ) + COUNTA( Data!$1:$1 ) ), B$7 )
=SUM( $B8:$C8 )
=IF( OR( E$1 = "", $A8 = "" ), "",
IFERROR( CHOOSE( 1 + COUNTIF( Data!A:A, $A8 ), "", E$3 ), "!Err" ) )
在E8中输入此公式,然后复制到带有记录的最后一行和最后一列

= T( Data!A1 )
= IF( E$1 = "", "",
COUNTIF( E$8  : INDEX(E:E, 1 + ROW( E$7 ) + COUNTA($A:$A ) - COUNTA( A$1:A$7 ) ), E$3 ) )
= IF( E$1 = "", "", IF( E$5 = "", "Enter Invited", E$4 / E$5 ) )
=COUNTIF( $E8 : INDEX(8:8, - 1 + COLUMN( $E8 ) + COUNTA( Data!$1:$1 ) ), B$7 )
=SUM( $B8:$C8 )
=IF( OR( E$1 = "", $A8 = "" ), "",
IFERROR( CHOOSE( 1 + COUNTIF( Data!A:A, $A8 ), "", E$3 ), "!Err" ) )

欢迎来到SO。你问问题的方式让帮助你有点困难,因为基本上没有什么具体的事情要做/帮助。你能发布你尝试过的吗?那么,关于倒计时单元格的扩展,B8当前是=COUNTIFE8:8,未降额通常对于数组公式,我会使它=ARRAYFORMULACOUNTIFE8:8,未降额,但是它在原始公式中已经有范围E8:8,所以它不起作用。不确定如何将范围应用于范围。