我正在Excel上建立积分系统。
我有一个孩子数据库,每个孩子都分配有条形码。 我有一个点数据库,每个点都分配有条形码。
我有一张纸,孩子们可以在其中扫描他们的私人条形码,然后扫描他们所获得的积分的条形码,并将积分记入他们的帐户。
我坚持将他们扫描的积分添加到他们的帐户中。
我尝试在ArrayFormula之后使用此方法,但是工作表变慢了
=ArrayFormula(iferror(index('kids Scanning Page'!$H:$H,small(if($A2='kids Scanning Page'!$C:$C,row('kids Scanning Page'!$C:$C),""),sum(1)))))
我尝试使用此索引并匹配公式
=INDEX('kids Scanning Page'!$I:$I,MATCH($A$2,'kids Scanning Page'!$D:$D,0))
但这只是给我第一场比赛
有人可以建议我可以解决我的问题吗?
以下是了解我的公式
kids Scanning Page'!$H:$H = the points the kid got for all transaction
$a2 = the database of the kid's barcode
kids Scanning Page'!$C:$C = unique id for each barcode transaction
kids Scanning Page'!$I:$I = the points the kid got for this transaction
kids Scanning Page'!$D:$D = the column were the kids can scan their barcodes
答案 0 :(得分:1)
我想的第一件事是帮助专栏,请参阅link
如果没有助手,那么至少不要在整个列中使用数组公式,这会显着降低速度。而是使用绝对范围,例如例如$A$2:$A$100
。或者,如果范围必须是动态的,则使用非易失性选项来获取最后使用的行而不是整个列。
所以不是
MATCH(criteria,A:A....
您可以使用例如:
MATCH(criteria,$A$1:INDEX(A:A,COUNTA(A:A))....
或者:
MATCH(criteria,$A$1:INDEX($A:$A,MATCH("ZZZ",$A:$A))....
创建较小的范围以通过数组公式进行计算。