我有一个电子表格,可以跟踪一系列正在进行的研究中的参与者。一张(数据)是我手动放入每个研究中参与者姓名的地方。另一张表(研究历史记录)应自动填充每位参与者的历史和总体研究。
每周,随着小组的成长,新参与者将被添加到研究历史中的A栏,新的研究将被添加到数据表中。
我想使用一个数组公式(或者如果能更好地工作的其他东西),可以无限扩展Study History DOWN的BG列中的公式,以合并新添加的参与者,AS WELL AS扩展EG列中的公式为了正确,纳入新的研究。但是,由于公式已经包含范围(例如在COUNTIF函数中),我无法使数组公式正常运行。我也无法弄清楚如何在两个方向上扩展数组,但也许我正在变暗。
电子表格here。
答案 0 :(得分:0)
您的目标可以通过多种方式实现,关键问题始终是波动性。
例如:动态定义名称可用于从工作表DATA
(定义为=OFFSET(Data!$A$1,0,0,COUNTA(Data!$A:$A),COUNTA(Data!$1:$1))
)获取数据范围。然而,使用OFFSET
函数会使动态定义名称变为不稳定,并且扩展名为Study History
的所有公式都指向它。
该解决方案提出使用INDEX函数,以避免波动:
假设工作表DATA
中的数据范围从A1
开始,并且连续数据范围(即中间没有空白行或空白列)
在E1
中输入此公式,然后复制到E2:E3
,直到带有记录的最后一列
= T( Data!A1 )
在E4
中输入此公式,然后复制到包含记录的最后一列
= IF( E$1 = "", "",
COUNTIF( E$8 : INDEX(E:E, 1 + ROW( E$7 ) + COUNTA($A:$A ) - COUNTA( A$1:A$7 ) ), E$3 ) )
在E5
中输入此公式,然后复制到包含记录的最后一列
= IF( E$1 = "", "", IF( E$5 = "", "Enter Invited", E$4 / E$5 ) )
在B8
中输入此公式,然后复制到C8
,直到带记录的最后一行
=COUNTIF( $E8 : INDEX(8:8, - 1 + COLUMN( $E8 ) + COUNTA( Data!$1:$1 ) ), B$7 )
在D5
中输入此公式,然后复制到包含记录的最后一行
=SUM( $B8:$C8 )
在E8
中输入此公式,然后复制到包含记录的最后一行和列
=IF( OR( E$1 = "", $A8 = "" ), "",
IFERROR( CHOOSE( 1 + COUNTIF( Data!A:A, $A8 ), "", E$3 ), "!Err" ) )