我有一个大约100列的数据库,其数据类似于从COL A到COL H。
我使用COL J中的公式在列中搜索带有“ - ”的两个连续行,并将第二行标记为双,如J16和J32所示。 这种方法很耗时,因为我经常搜索不同的列,每次都必须更改公式。
我想要像N3这样的东西。输入列ID,当我按Enter键时,我将自动获得连续两个“ - ”的行数,并且我想增加搜索三元组和四元组。
任何帮助都将受到赞赏。
J2上的公式:
=IF(AND(OR(F2=F1,F1="-"),F2="-"),"double","")
答案 0 :(得分:1)
在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), "-")
如果你需要提问,你应该能够从中得到这个想法。
答案 1 :(得分:1)
您想在单元格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"),"")
答案 2 :(得分:0)
参考底部的图,有:
辅助细胞 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
使用INDIRECT
代替固定引用(选项#1代表您需要的内容),给出相同的结果,请参阅this)。这些是
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
的公式。
单元格P5:P7
使用OFFSET
代替固定引用(选项#2代表您需要的内容),请参阅this,this或this,以获得相同的结果)。这些是
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
的公式。
可能有其他选项合并INDIRECT
和OFFSET
(请参阅this)。 Jeeped涵盖了使用INDEX
的选项(虽然可能不是唯一的变体)。
关于辅助细胞的注意事项:
我建议有辅助细胞,这也适用于此处发布的其他答案。
当然,您可以移动这些单元格,调整相应的公式。
这里唯一的非平凡公式是单元格N11
,=COLUMN(INDIRECT($N$3&"1"))
(请参阅this或this)。
如果您要使用N19
,则单元格INDEX
可能很有用。