在Excel中search具有相同数据的两个连续行

我有一个大约100列的数据库,其数据类似于COL A到COL H.

我使用COL J中的公式在“ – ”列中search两个连续的行,并将第二行标记为double,如您在J16和J32上所看到的。 这种方法非常耗时,因为我经常search不同的列,每次都必须更改公式。

我想要像N3的东西。 input列ID,当我打进入时,我会自动获得连续两个“ – ”的行数,我也想增加search三倍和四倍。

任何帮助将不胜感激。

J2上的公式:

=IF(AND(OR(F2=F1,F1="-"),F2="-"),"double","") 

图像在这里

在N5来数双打的时候,

 =COUNTIFS(INDEX(A:H, 2, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64)), CODE(UPPER(N3))-64), "-", INDEX(A:H, 3, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64))+1, CODE(UPPER(N3))-64), "-") 

这是使用的dynamic等价物,

 =COUNTIFS(G2:G20, "-", G3:G21, "-") 

在N6中计算三倍,

 =COUNTIFS(INDEX(A:H, 2, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64)), CODE(UPPER(N3))-64), "-", INDEX(A:H, 3, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64))+1, CODE(UPPER(N3))-64), "-", INDEX(A:H, 4, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64))+2, CODE(UPPER(N3))-64), "-") 

在N7中计算四边形,

 =COUNTIFS(INDEX(A:H, 2, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64)), CODE(UPPER(N3))-64), "-", INDEX(A:H, 3, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64))+1, CODE(UPPER(N3))-64), "-", INDEX(A:H, 4, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64))+2, CODE(UPPER(N3))-64), "-", INDEX(A:H, 5, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64))+3, CODE(UPPER(N3))-64), "-") 

如果你需要quints,你应该能够从这些想法。

在这里输入图像说明

您想要在单元格N3中使用您的列条目。 你可以使用间接函数来做到这一点。 只需更改单元格J2中的公式即可:

 =IF(AND(OR(F2=F1,F1="-"),F2="-"),"double","") 

对此:

 =IF(AND(INDIRECT(N$3&ROW())="-",INDIRECT(N$3&ROW()-1)="-"),"double","") 

你可以用相同的方法捕获三元组和四元组,尝试这个公式…它只会从第4行开始工作,结果可能会感到混乱,这取决于你需要什么:

 =IF(AND(INDIRECT(N$3&ROW()-1)="-",INDIRECT(N$3&ROW())="-"),IF(AND(INDIRECT(N$3&ROW()-2)="-",INDIRECT(N$3&ROW()-1)="-",INDIRECT(N$3&ROW())="-"),IF(AND(INDIRECT(N$3&ROW()-3)="-",INDIRECT(N$3&ROW()-2)="-",INDIRECT(N$3&ROW()-1)="-",INDIRECT(N$3&ROW())="-"),"quadruple","triple"),"double"),"") 

参照底部的数字,有:

  1. 辅助细胞 N1:N2N9:N19 ,其内容有助于您需要的配方更加简洁。 请参阅下面的解释和公式。

  2. 单元格与您需要的公式 ,使用SUMPRODUCT结合一些forms的dynamic参考。

    1. 单元格N5:N7给出你想要的结果,但是有固定的引用。 这些是
      N5=SUMPRODUCT(($G$2:$G$21="-")*($G$3:$G$22="-"))
      N6=SUMPRODUCT(($G$2:$G$20="-")*($G$3:$G$21="-")*($G$4:$G$22="-"))
      N7=SUMPRODUCT(($G$2:$G$19="-")*($G$3:$G$20="-")*($G$4:$G$21="-")*($G$5:$G$22="-"))
      你可以掌握系统。

    2. 单元格O5:O7给出了相同的结果,使用INDIRECT而不是固定的引用( 选项#1为你所需要的 ,看到这个 )。 这些是
      O5=SUMPRODUCT( (INDIRECT($N$3&$N$9):INDIRECT($N$3&($N$10-1))="-") *(INDIRECT($N$3&($N$9+1)):INDIRECT($N$3&$N$10)="-") )
      O6=SUMPRODUCT( (INDIRECT($N$3&$N$9):INDIRECT($N$3&($N$10-2))="-") *(INDIRECT($N$3&($N$9+1)):INDIRECT($N$3&($N$10-1))="-") *(INDIRECT($N$3&($N$9+2)):INDIRECT($N$3&$N$10)="-") )
      你可以掌握系统并写出单元格O7的公式。

    3. 单元格P5:P7给出了相同的结果,使用OFFSET而不是固定的引用( 选项#2为你所需要的 ,看到这个 , 这个或这个 )。 这些是
      P5=SUMPRODUCT( (OFFSET($A$1,$N$12,$N$14):OFFSET($A$1,$N$13-1,$N$14)="-") *(OFFSET($A$1,$N$12+1,$N$14):OFFSET($A$1,$N$13,$N$14)="-") )
      P6=SUMPRODUCT( (OFFSET($A$1,$N$12,$N$14):OFFSET($A$1,$N$13-2,$N$14)="-") *(OFFSET($A$1,$N$12+1,$N$14):OFFSET($A$1,$N$13-1,$N$14)="-") *(OFFSET($A$1,$N$12+2,$N$14):OFFSET($A$1,$N$13,$N$14)="-") )
      您可以掌握系统并为单元格P7编写公式。

    4. 有可能其他选项结合INDIRECTOFFSET (见本 )。 使用INDEX的选项(尽pipe可能不是唯一的变体)被Jeeped覆盖。


关于助手单元格的注意事项:我build议使用助手单元格,这也适用于这里发布的其他答案。 当然,你可以移动这些单元格,调整相应的公式。 这里唯一不平凡的公式是单元格N11=COLUMN(INDIRECT($N$3&"1")) (见这个或这个 )。 如果您要使用INDEX单元格N19可能会很有用。

在这里输入图像说明