|
▼kanabun さん
有難うございました
以下の方法で試算しました
Sub 検索Test()
ThisWorkbook.Activate
With Worksheets("条件").Range("D2").CurrentRegion
.ClearContents
.Offset(0).Value = "住所"
.Offset(0, 1).Value = "日時"
.Offset(1).Formula = "=OR(COUNTIF(ADDRESS!F3,""*南*"")>0," _
& "COUNTIF(ADDRESS!F3,""*湖*"")>0)"
.Offset(1, 1).Formula = "=OR(YEAR(ADDRESS!H3)=2012," _
& "LEFT(ADDRESS!H3,4)=""2012"")"
End With
Sheets("ADDRESS").Range("D2").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Worksheets("条件").Range("D3").CurrentRegion, _
CopytoRange:=Sheets("検索結果").Range("D2"), _
Unique:=True
End Sub
Sheet[ADDRESS]
1行 D E F G H
2行 1 氏名 住所 TEL 期日
3行 2 abc 東京都文京区 123-4567 2010/11/2
4行 3 efg 大阪市浪速区 234-5678 2011/2/12
5行 4 hij 南京市太平区 345-6789 2012/10/23
6行 5 xyz 北京市東西区 456-7890 2011/12/23
7行 6 abb 伊東市西町 567-8901 2013/1/5
8行 7 cdd 湖東市柱町 678-9010 2012/9/20
9行 8 nnn 西大路市北町 789-0123 2010/11/15
10行 9 kkk 東京都三宅島 890-1234 2010/9/23
Sheet[条件]
D E
2 住所 日時
3 FALSE #VALUE!
Sheet[検索結果]
D E F G H
4 hij 南京市太平区 345-6789 2012/10/23
7 cdd 湖東市柱町 678-9010 2012/9/20
いろいろ試した結果それなりの結果はでました
Sheet[条件]で住所 がFALSE
日時が#VALUE!
ですが 結果は正しく検索されています
Trueのみが検索されると理解していました
この点が気になりまして質問させていただきました
度々で申し訳ありません
>▼masami さん:
>
>"*南*" のような すでに "・" があるばあいは それをダブルにした
>""・"" とするのが正解です。
>
>あと
>>> With Worksheets("条件").Range("F3")
>>> .ClearContents
>>> .Offset(0).Formula = "住所"
>>> .Offset(1).ClearContents
>>> .Offset(1).Formula = "=OR(COUNTIF(ADDRESS!F4," & "*南*)>0," _
>>> & "COUNTIF(ADDRESS!F4," & "*湖*)>0)"
>>> End With
>はそこのところを直しただけではうまくないと思います。
>
> With Worksheets("条件").Range("F3").CurrentRegion
> .ClearContents
> .Range("A1").Value = "条件1"
> .Range("B1").Value = "条件2"
> .Range("A2").Formula = "=OR(COUNTIF(ADDRESS!F4,""*南*"")>0," _
> & "COUNTIF(ADDRESS!F4,""*湖*"")>0)"
> .Range("B2").Formula = "=OR(YEAR(ADDRESS!H4)=2012," _
> & "LEFT(ADDRESS!H4,4)=""2012"")"
> End With
>
>こんなふうに書かないと。
>(もちろん、F2 F3 は空白だと仮定しています)
|
|