|
▼kanabun さん masui です:>
以前下記の解答をいただきましたものです
これで全て解決したのですが
一点疑問が出ましたので再度質問させてください
1)A4セルには "2012/10/20 AM"のような文字列が代入されていれば
> [E2] FALSE
> [E3] TRUE
となるはずなのですが
[E2] #VALUE
[E3] TRUE
となります しかし 検索はちゃんと抽出されています
[E2] がなぜFALSEにならないのでしょうか
2)A4セルに 2010/10/15 のような2012年でない日付(数値)が入っていれば
[E2] FALSE
[E3] FALSE
となりますが TRUEでなくても "2012"の行が抽出されます
[E2] =YEAR(一覧!A4)=2012
[E3] =LEFT(一覧!A4,4)="2012"
となっていればよいのでしようか
よろしくお願いします
>たとえば 年が2012 文字列のときは "2012" の行を抽出したいとして、
>変数を使わずに [E1:E3]の条件範囲の内容を記述すると、
>
>[E1] (ここは空白にします)
>[E2] =YEAR(一覧!A4)=2012 ← 一覧!A4(最初のデータセル)の年が2012
>[E3] =LEFT(一覧!A4,4)="2012" ← 一覧!A4 の前4文字が "2012" である
>
>と、このように書きます。
>E2とE3 の条件式は 検索対象範囲の「代表として」A4セルを対象とする式を
>書いておきます。数式で条件を書いていますから、「たまたま」A4セルが
>2012/10/20 のような日付型(数値)が代入されていれば
> [E2] TRUE
> [E3] FALSE
>となりますし、「たまたま」A4セルには "2012/10/20 AM"のような文字列が
>代入されていれば、
> [E2] FALSE
> [E3] TRUE
>となりますし、A4セルに 2010/10/15 のような2012年でない日付(数値)が
>入っていれば
>
>> [E2] FALSE
>> [E3] FALSE
>
>となりますが、それでかまいません。AdvancedFilterで [E2]の条件式と
>[E3]の条件式が書いてあるときは、[E2]条件 または(OR) [E3] 条件 の
>かたちで検索が実行されます。もちろん
> =YEAR(一覧!A4)=2012
>と書いてあっても、A4以下すべてのA列該当セル にたいして条件が適用
>されます。
>
>なお、
>> [E2] =YEAR(一覧!A4)=2012
>> [E3] =LEFT(一覧!A4,4)="2012" ← 一覧!A4 の前4文字が "2012" である
>
>の[E3]のほうですが、「文字列の先頭4文字が "2012"という文字である」と
>いう式なので、マクロで書き込むときは 式全体を "" で囲みますから、
> [E3] "=LEFT(一覧!A4,4)=""2012"""
>のように "2012" を ""2012"" となるようにします。
>
>
>補足
>[E1]には文字を入れることもできます。ただし、[A3]の列見出しと
>同じ文字列ではダメです。どうしても何か文字列を入れておきたいのなら
>[A3]の文字列とは異なる文字列にしてください。
|
|