提取含有文本15的数字组-vba+函数
来源:百度文库 编辑:神马文学网 时间:2024/04/28 07:36:34
用函数解决:(数组)
=OFFSET($A$2,SMALL(IF(OFFSET($A$2,1,,21,7)="15",ROW($A$3:$A$23),65536),ROW()-3)-2,COLUMN()-9,,)
I 4 单元格 输入 下拉 右拉即可:
效果如下
*******************************************************************************
$A$3:$G$23="15"-------》{FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE}
*-*-*-*-*-*-*-*-*-*-*-*--*-*-*-*-*-*--*-*-*-
MMULT({0,0,0,0,0,0,0;0,0,0,1,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,1,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,0,1,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,1;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,1,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0},{1;1;1;1;1;1;1})------》{0;1;0;0;0;1;0;0;0;1;0;0;0;0;1;0;0;1;0;0;0}
提取含有文本15所在行的下一行数字组
=INDEX(A:A,SMALL(IF(MMULT(($A$3:$G$23="15")*1,{1;1;1;1;1;1;1})>0,ROW($3:$23),""),ROW(1:1))+1)
***********************************************************************************************
提取同行时含有文本15和07的数字组
=INDEX(A:A,SMALL(IF(MMULT(($A$3:$G$23="07")+($A$3:$G$23="15"),{1;1;1;1;1;1;1})=2,ROW($3:$23),""),ROW(1:1)))
******************************************************************************************
提取同行时含有文本15和07所在行的下一行数字组
=INDEX(A:A,SMALL(IF(MMULT(($A$3:$G$23="07")+($A$3:$G$23="15"),{1;1;1;1;1;1;1})=2,ROW($3:$23),""),ROW(1:1))+1)
vba解决:
Dim endrow, R15ow
Sub 提取含有文本15的数字组()
Range("I4:o100").Clear
共有多少行
Range("A3:G" & endrow).Select
B = 2
DanQrow = 4
查找15的行
100: If R15ow > B Then
Range("A" & R15ow & ":G" & R15ow).Copy Range("I" & DanQrow)
DanQrow = DanQrow + 1
B = R15ow
查找15的行
GoTo 100
Else
Exit Sub
End If
End Sub
Sub 共有多少行()
endrow = Range("a65536").End(xlUp).Row
End Sub
Sub 查找15的行()
Selection.Find(What:="15", After:=ActiveCell, LookIn:=xlFormulas).Activate
R15ow = ActiveCell.Row
End Sub
Sub 提取含有文本15所在行的下一行数字组()
Range("Q4:W100").Clear
共有多少行
Range("A3:G" & endrow).Select
B = 2
DanQrow = 4
查找15的行
100: If R15ow > B Then
Range("A" & R15ow + 1 & ":G" & R15ow + 1).Copy Range("Q" & DanQrow)
DanQrow = DanQrow + 1
B = R15ow
查找15的行
GoTo 100
Else
Exit Sub
End If
End Sub