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

在Excel中搜索具有相同数据的两个连续行,excel,excel-formula,Excel,Excel Formula,我有一个大约100列的数据库,其中包含从a列到H列的类似数据 我使用第J列中的公式在列中搜索带“-”的两个连续行,并将第二行标记为双精度,如J16和J32所示。 这种方法非常耗时,因为我经常搜索不同的列,每次都必须更改公式 我想要N3之类的。输入列ID,当我按enter键时,我将自动获得两个连续“-”的行数,并且我希望增加搜索三倍和四倍 任何帮助都将不胜感激 J2上的公式: =IF(AND(OR(F2=F1,F1="-"),F2="-"),"double","") 在N5中计算双倍 =COUN

我有一个大约100列的数据库,其中包含从a列到H列的类似数据

我使用第J列中的公式在列中搜索带“-”的两个连续行,并将第二行标记为双精度,如J16和J32所示。 这种方法非常耗时,因为我经常搜索不同的列,每次都必须更改公式

我想要N3之类的。输入列ID,当我按enter键时,我将自动获得两个连续“-”的行数,并且我希望增加搜索三倍和四倍

任何帮助都将不胜感激

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), "-")
这是使用

=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), "-")
如果你需要五分之一,你应该能够从中得到想法


在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), "-")
这是使用

=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), "-")
如果你需要五分之一,你应该能够从中得到想法


您想使用单元格N3中的列条目。您可以使用间接函数来执行此操作。只需将单元格J2中的公式更改为:

=IF(AND(OR(F2=F1,F1="-"),F2="-"),"double","")
=IF(AND(INDIRECT(N$3&ROW())="-",INDIRECT(N$3&ROW()-1)="-"),"double","")
此:

=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"),"")

您想在单元格N3中使用列条目。您可以使用间接函数来执行此操作。只需将单元格J2中的公式更改为:

=IF(AND(OR(F2=F1,F1="-"),F2="-"),"double","")
=IF(AND(INDIRECT(N$3&ROW())="-",INDIRECT(N$3&ROW()-1)="-"),"double","")
此:

=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"),"")

参考底部的图,有:

  • 辅助单元格
    N1:N2
    N9:N19
    ,其内容有助于使所需公式更加简洁。 请参见下面的解释和公式

  • 包含所需公式的单元格,使用
    SUMPRODUCT
    并结合某种形式的动态引用

  • 单元格
    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=“-”)

    你可以掌握系统学

  • 单元格
    O5:O7
    使用
    间接的
    而不是固定的引用,给出相同的结果(选项#1了解您需要的,请参阅)。这些是
    O5
    =SUMPRODUCT(
    (间接($3和$9):间接($3和($10-1))=“-”)
    *(间接($3和($9+1)):间接($3和$10)=“-”)
    )

    O6
    =SUMPRODUCT(
    (间接($3和$9):间接($3和($10-2))=“-”)
    *(间接($3&($9+1)):间接($3&($10-1))=“-”)
    *(间接($3和($9+2)):间接($3和$10)=“-”)
    )

    您可以掌握系统学,并编写单元格
    O7
    的公式

  • 单元格
    P5:P7
    使用
    偏移量
    而不是固定参考,给出相同的结果(选项#2了解所需内容,请参阅或)。这些是
    P5
    =SUMPRODUCT(
    (抵销($A$1,$N$12,$N$14):抵销($A$1,$N$13-1,$N$14)=“-”)
    *(抵销($A$1,$N$12+1,$N$14):抵销($A$1,$N$13,$N$14)=“-”)
    )

    P6
    =SUMPRODUCT(
    (抵销($A$1,$N$12,$N$14):抵销($A$1,$N$13-2,$N$14)=“-”)
    *(抵销($A$1,$N$12+1,$N$14):抵销($A$1,$N$13-1,$N$14)=“-”)
    *(抵销($A$1,$N$12+2,$N$14):抵销($A$1,$N$13,$N$14)=“-”)
    )

    您可以掌握系统学,并编写单元格
    P7
    的公式

  • 可能还有其他选项组合了
    间接
    偏移
    (请参阅)。使用
    索引
    (虽然可能不是唯一的变体)的选项由Jeeped提供


  • 关于辅助细胞的注意事项: 我建议使用辅助细胞,这也适用于这里发布的其他答案。 当然,您可以移动这些单元格,调整相应的公式。 这里唯一的非平凡公式是单元格
    N11
    =列(间接($N$3&“1”)
    (请参阅或)。 如果要使用
    索引,单元格
    N19
    可能会很有用


    参考底部的图,有:

  • 辅助单元格
    N1:N2
    N9:N19
    ,其内容有助于使所需公式更加简洁。 请参见下面的解释和公式

  • 包含所需公式的单元格,使用
    SUMPRODUCT
    并结合某种形式的动态引用

  • 单元格
    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=“-”)

    你可以掌握系统学

  • 单元格
    O5:O7
    使用
    间接的
    而不是固定的引用,给出相同的结果(选项#1了解您需要的,请参阅)。这些是
    O5
    =SUMPRODUCT(
    (间接($3和$9):间接($3和($10-1))=“-”)
    *(间接($3和($9+1)):间接($3和$10)=“-”)
    )

    O6
    =SUMPRODUCT(
    (间接($3和$9):间接($3和($10-2))=“-”)
    *(间接($3&($9+1)):间接($3&($10-1))=“-”)
    *(间接($3和($9+2)