比较两行中的每个单元格,但有一个例外
Compare each cell in two rows, but with an exception
我有一个 table 可以跟踪测试分数。它将行与某人对具有正确数据的行的答案进行比较:
A B C D E
+--------------+-----+-----+-----+-------+
1 | | Q1 | Q2 | Q3 | Score |
+--------------+-----+-----+-----+-------+
2 | Answers | C | B | A | |
+--------------+-----+-----+-----+-------+
3 | George | C | A | B | 1 |
4 | Judith | C | C | A | 2 |
5 | James | A | B | C | 1 |
+--------------+-----+-----+-----+-------+
得分列后面的公式是:
=arrayformula(sumproduct(($B:$D=B3:D3)))
sumproduct
的第一部分是对答案行的静态引用。第二部分是将它与它所在的行进行比较。但是我想添加一个例外:如果答案行包含星号,它应该认为所有答案都是正确的:
A B C D E
+--------------+-----+-----+-----+-------+
1 | | Q1 | Q2 | Q3 | Score |
+--------------+-----+-----+-----+-------+
2 | Answers | C | * | A | |
+--------------+-----+-----+-----+-------+
3 | George | C | A | B | 2 |
4 | Judith | C | C | A | 3 |
5 | James | A | B | C | 1 |
+--------------+-----+-----+-----+-------+
我怎样才能做到这一点?
请尝试:
=arrayformula(sumproduct(($B:$D=B3:D3)+($B:$D="*")))
=IF(OR($B=B3, $B="*"), 1, )+
IF(OR($C=C3, $C="*"), 1, )+
IF(OR($D=D3, $D="*"), 1, )
这将涵盖多达 51 个问题(B:AZ 的列/范围)
=IF(LEN($B),IF(OR($B=B3,$B="*"),1,),)+
IF(LEN($C),IF(OR($C=C3,$C="*"),1,),)+
IF(LEN($D),IF(OR($D=D3,$D="*"),1,),)+
IF(LEN($E),IF(OR($E=E3,$E="*"),1,),)+
IF(LEN($F),IF(OR($F=F3,$F="*"),1,),)+
IF(LEN($G),IF(OR($G=G3,$G="*"),1,),)+
IF(LEN($H),IF(OR($H=H3,$H="*"),1,),)+
IF(LEN($I),IF(OR($I=I3,$I="*"),1,),)+
IF(LEN($J),IF(OR($J=J3,$J="*"),1,),)+
IF(LEN($K),IF(OR($K=K3,$K="*"),1,),)+
IF(LEN($L),IF(OR($L=L3,$L="*"),1,),)+
IF(LEN($M),IF(OR($M=M3,$M="*"),1,),)+
IF(LEN($N),IF(OR($N=N3,$N="*"),1,),)+
IF(LEN($O),IF(OR($O=O3,$O="*"),1,),)+
IF(LEN($P),IF(OR($P=P3,$P="*"),1,),)+
IF(LEN($Q),IF(OR($Q=Q3,$Q="*"),1,),)+
IF(LEN($R),IF(OR($R=R3,$R="*"),1,),)+
IF(LEN($S),IF(OR($S=S3,$S="*"),1,),)+
IF(LEN($T),IF(OR($T=T3,$T="*"),1,),)+
IF(LEN($U),IF(OR($U=U3,$U="*"),1,),)+
IF(LEN($V),IF(OR($V=V3,$V="*"),1,),)+
IF(LEN($W),IF(OR($W=W3,$W="*"),1,),)+
IF(LEN($X),IF(OR($X=X3,$X="*"),1,),)+
IF(LEN($Y),IF(OR($Y=Y3,$Y="*"),1,),)+
IF(LEN($Z),IF(OR($Z=Z3,$Z="*"),1,),)+
IF(LEN($AA),IF(OR($AA=AA3,$AA="*"),1,),)+
IF(LEN($AB),IF(OR($AB=AB3,$AB="*"),1,),)+
IF(LEN($AC),IF(OR($AC=AC3,$AC="*"),1,),)+
IF(LEN($AD),IF(OR($AD=AD3,$AD="*"),1,),)+
IF(LEN($AE),IF(OR($AE=AE3,$AE="*"),1,),)+
IF(LEN($AF),IF(OR($AF=AF3,$AF="*"),1,),)+
IF(LEN($AG),IF(OR($AG=AG3,$AG="*"),1,),)+
IF(LEN($AH),IF(OR($AH=AH3,$AH="*"),1,),)+
IF(LEN($AI),IF(OR($AI=AI3,$AI="*"),1,),)+
IF(LEN($AJ),IF(OR($AJ=AJ3,$AJ="*"),1,),)+
IF(LEN($AK),IF(OR($AK=AK3,$AK="*"),1,),)+
IF(LEN($AL),IF(OR($AL=AL3,$AL="*"),1,),)+
IF(LEN($AM),IF(OR($AM=AM3,$AM="*"),1,),)+
IF(LEN($AN),IF(OR($AN=AN3,$AN="*"),1,),)+
IF(LEN($AO),IF(OR($AO=AO3,$AO="*"),1,),)+
IF(LEN($AP),IF(OR($AP=AP3,$AP="*"),1,),)+
IF(LEN($AQ),IF(OR($AQ=AQ3,$AQ="*"),1,),)+
IF(LEN($AR),IF(OR($AR=AR3,$AR="*"),1,),)+
IF(LEN($AS),IF(OR($AS=AS3,$AS="*"),1,),)+
IF(LEN($AT),IF(OR($AT=AT3,$AT="*"),1,),)+
IF(LEN($AU),IF(OR($AU=AU3,$AU="*"),1,),)+
IF(LEN($AV),IF(OR($AV=AV3,$AV="*"),1,),)+
IF(LEN($AW),IF(OR($AW=AW3,$AW="*"),1,),)+
IF(LEN($AX),IF(OR($AX=AX3,$AX="*"),1,),)+
IF(LEN($AY),IF(OR($AY=AY3,$AY="*"),1,),)+
IF(LEN($AZ),IF(OR($AZ=AZ3,$AZ="*"),1,),)
这里是 "Formula Generator" sheet
我有一个 table 可以跟踪测试分数。它将行与某人对具有正确数据的行的答案进行比较:
A B C D E
+--------------+-----+-----+-----+-------+
1 | | Q1 | Q2 | Q3 | Score |
+--------------+-----+-----+-----+-------+
2 | Answers | C | B | A | |
+--------------+-----+-----+-----+-------+
3 | George | C | A | B | 1 |
4 | Judith | C | C | A | 2 |
5 | James | A | B | C | 1 |
+--------------+-----+-----+-----+-------+
得分列后面的公式是:
=arrayformula(sumproduct(($B:$D=B3:D3)))
sumproduct
的第一部分是对答案行的静态引用。第二部分是将它与它所在的行进行比较。但是我想添加一个例外:如果答案行包含星号,它应该认为所有答案都是正确的:
A B C D E
+--------------+-----+-----+-----+-------+
1 | | Q1 | Q2 | Q3 | Score |
+--------------+-----+-----+-----+-------+
2 | Answers | C | * | A | |
+--------------+-----+-----+-----+-------+
3 | George | C | A | B | 2 |
4 | Judith | C | C | A | 3 |
5 | James | A | B | C | 1 |
+--------------+-----+-----+-----+-------+
我怎样才能做到这一点?
请尝试:
=arrayformula(sumproduct(($B:$D=B3:D3)+($B:$D="*")))
=IF(OR($B=B3, $B="*"), 1, )+
IF(OR($C=C3, $C="*"), 1, )+
IF(OR($D=D3, $D="*"), 1, )
这将涵盖多达 51 个问题(B:AZ 的列/范围)
=IF(LEN($B),IF(OR($B=B3,$B="*"),1,),)+
IF(LEN($C),IF(OR($C=C3,$C="*"),1,),)+
IF(LEN($D),IF(OR($D=D3,$D="*"),1,),)+
IF(LEN($E),IF(OR($E=E3,$E="*"),1,),)+
IF(LEN($F),IF(OR($F=F3,$F="*"),1,),)+
IF(LEN($G),IF(OR($G=G3,$G="*"),1,),)+
IF(LEN($H),IF(OR($H=H3,$H="*"),1,),)+
IF(LEN($I),IF(OR($I=I3,$I="*"),1,),)+
IF(LEN($J),IF(OR($J=J3,$J="*"),1,),)+
IF(LEN($K),IF(OR($K=K3,$K="*"),1,),)+
IF(LEN($L),IF(OR($L=L3,$L="*"),1,),)+
IF(LEN($M),IF(OR($M=M3,$M="*"),1,),)+
IF(LEN($N),IF(OR($N=N3,$N="*"),1,),)+
IF(LEN($O),IF(OR($O=O3,$O="*"),1,),)+
IF(LEN($P),IF(OR($P=P3,$P="*"),1,),)+
IF(LEN($Q),IF(OR($Q=Q3,$Q="*"),1,),)+
IF(LEN($R),IF(OR($R=R3,$R="*"),1,),)+
IF(LEN($S),IF(OR($S=S3,$S="*"),1,),)+
IF(LEN($T),IF(OR($T=T3,$T="*"),1,),)+
IF(LEN($U),IF(OR($U=U3,$U="*"),1,),)+
IF(LEN($V),IF(OR($V=V3,$V="*"),1,),)+
IF(LEN($W),IF(OR($W=W3,$W="*"),1,),)+
IF(LEN($X),IF(OR($X=X3,$X="*"),1,),)+
IF(LEN($Y),IF(OR($Y=Y3,$Y="*"),1,),)+
IF(LEN($Z),IF(OR($Z=Z3,$Z="*"),1,),)+
IF(LEN($AA),IF(OR($AA=AA3,$AA="*"),1,),)+
IF(LEN($AB),IF(OR($AB=AB3,$AB="*"),1,),)+
IF(LEN($AC),IF(OR($AC=AC3,$AC="*"),1,),)+
IF(LEN($AD),IF(OR($AD=AD3,$AD="*"),1,),)+
IF(LEN($AE),IF(OR($AE=AE3,$AE="*"),1,),)+
IF(LEN($AF),IF(OR($AF=AF3,$AF="*"),1,),)+
IF(LEN($AG),IF(OR($AG=AG3,$AG="*"),1,),)+
IF(LEN($AH),IF(OR($AH=AH3,$AH="*"),1,),)+
IF(LEN($AI),IF(OR($AI=AI3,$AI="*"),1,),)+
IF(LEN($AJ),IF(OR($AJ=AJ3,$AJ="*"),1,),)+
IF(LEN($AK),IF(OR($AK=AK3,$AK="*"),1,),)+
IF(LEN($AL),IF(OR($AL=AL3,$AL="*"),1,),)+
IF(LEN($AM),IF(OR($AM=AM3,$AM="*"),1,),)+
IF(LEN($AN),IF(OR($AN=AN3,$AN="*"),1,),)+
IF(LEN($AO),IF(OR($AO=AO3,$AO="*"),1,),)+
IF(LEN($AP),IF(OR($AP=AP3,$AP="*"),1,),)+
IF(LEN($AQ),IF(OR($AQ=AQ3,$AQ="*"),1,),)+
IF(LEN($AR),IF(OR($AR=AR3,$AR="*"),1,),)+
IF(LEN($AS),IF(OR($AS=AS3,$AS="*"),1,),)+
IF(LEN($AT),IF(OR($AT=AT3,$AT="*"),1,),)+
IF(LEN($AU),IF(OR($AU=AU3,$AU="*"),1,),)+
IF(LEN($AV),IF(OR($AV=AV3,$AV="*"),1,),)+
IF(LEN($AW),IF(OR($AW=AW3,$AW="*"),1,),)+
IF(LEN($AX),IF(OR($AX=AX3,$AX="*"),1,),)+
IF(LEN($AY),IF(OR($AY=AY3,$AY="*"),1,),)+
IF(LEN($AZ),IF(OR($AZ=AZ3,$AZ="*"),1,),)
这里是 "Formula Generator" sheet