|
▼masui さん:
>よく理解することができました
>再度次の2点確認をお願いします
>
>1)ここでの TRUE FALSE #VALUE!の意味は比較判定の結果がFALSEであっても
> 条件式で検索されるため
> あくまで[A2]の値と検索文字を比較している結果の判定と考えてよろしいので しょうか
う〜ん、またもや質問が分かりませ〜〜ん (ToT)
> ここでの TRUE FALSE #VALUE!の意味は
B列 C列の数式の結果です。
> 比較判定の結果がFALSEであっても
> 条件式で検索されるため
そこの例は セルに書いた普通の数式であり、
| A | B C | D
1 日付 | |
2 2010/10/25| FALSE FALSE | 40476
3 2012/10/10 | TRUE TRUE | 41192
4 2012/10/20 12:00 AM| TRUE TRUE | 41192
5 2012/11/10| TRUE FALSE | 41238
6 2012/10/10 AM | #VALUE! TRUE | #VALUE!
ここで、
[B2] =YEAR(A2)=2012
[C2] =LEFT(A2,4)="2012"
[D2]=VALUE(A2)
フィルタオプションの「条件式」ではありません。
(もっとも、フィルターオプションの抽出条件式の形をしていますので、
B列 C列のどちらかが True になっている行は もしA列に対し
B列 C列の条件式を書いてフィルタオプションを実行すれば、
B列 OR C列の少なくともどちらかがTRUE になっている行、
すなわち、3,4,5,6 が抽出されることになります。---という意味では
式は条件式です。)
この表をつくるとき
> [B2:B6]を選択して 数式ボックスに =YEAR(A2)=2012 と打ち込んでから
> Ctrl+[Enter] で確定してください。
> 同じように [C2:C6]範囲を選択して数式ボックスに =LEFT(A2,4)="2012" と
> 打ち込んで Ctrl+[Enter] で確定してください。
と書きましたが、
フィルタオプションの条件式を書くときも同じで、条件式(数式)は抽出対象
範囲のいちばん上のデータ行を使ってすべてのデータ行を代表します。
たとえば [E2]に =YEAR(A2)=2012 と書いて、
[E3]に =LEFT(A2,4)="2012" と書いてフィルタオプションをかけて A3〜A6
までの行が抽出されるのは、6行目のときには =YEAR(A6)=2012 条件式と
=LEFT(A6)="2012" 条件式とでOR判定しているからです。2行目は 2つの条件式
のどちらも FALSEを返してますから 抽出されません。
>2)| A | B C
> [6] 2012/10/10 AM | #VALUE! TRUE
>
> =YEAR(輸送手配一覧!H4)=2012
> =LEFT(輸送手配一覧!H4,4)="2012"
> この場合 [2012/10/10 AM]が検索されません
> その他の行の日付データーは検索されます
> どのように処理をするのでしょうか
これも残念ながら、ご質問の主旨が不明です。
そこのB,C列の数式は
> | A | B C
[6] 2012/10/10 AM | =YEAR(A6)=2012 =LEFT(A6)="2012"
となっているとしたら、
[A6]が "2012/10/10 AM" (←これは日付ではありませんから、単なる
文字列です) という値は YEAR関数適用不可で B列数式の結果は「#VALUE!」と
なり、C列数式の結果は(文字列の左4文字が "2012" なので)「TRUE」という
結果を返します。
|
|